You are on page 1of 6

Assignment 3 – Operating Systems

Introduction and Overview of Arch Linux:


Arch Linux is a Linux distribution which began development in 2001 and experienced its first
release in 2002. It serves as an independently developed and incredibly versatile distribution
with a focus on simplicity and minimalism. Arch doesn’t come with any GUI features, which
requires that the end-user configure and build up the distribution in a way that suits them.
(Anon, 2019)

Arch utilises a custom-written package manager, Pacman. Through this software, Arch makes it
incredibly easy to manage and customize packages for the end-user. Pacman also allows for the
“rolling release” system employed by Arch, wherein the user installs a package once then is
given access to perpetual software upgrades. It is through this system that Arch is kept on the
bleeding edge of software (Anon, 2019).

Since Arch is heavily linked with pre-existing Linux distributions, it shares a lot of its sub-
systems and managers with other operating systems. Some systems, take for example file
management and memory management, are nearly uniform in their distributions throughout
the various distributions, while device management could potentially differ. This allows for an
extremely easy transition to Arch Linux if the user has any pre-existing familiarity with another
distribution.
The purpose of this report is to define and explain how some of the core systems of this
operating system work; those concerned are file management, memory management, process
management, and device management.
Process Management of Arch Linux:
As Arch Linux is based off Linux, it follows the same method of process management.

In this method, since Linux is a multi-user OS, many different users can be running the various
programs on the system, so each instance of each program must be uniquely identified by the
OS. These processes are identified by their PID (Process Identification Number) and their PPID
(Parent Process Identification Number). This shows that there are two types of process: a
parent process, which can create other processes, and a child process, which is created by
other processes.
With Linux systems, the process manager is the first process started up by the kernel. This is
known as the Init process, which possesses a PID of 1. It oversees managing all the other
processes on the system.
There are also two types of processes in Linux; foreground and background (daemons)
processes. To start a process in the foreground, you would only type the name of the process,
while to start a process in the background, you would follow the process name with a “ &”.
In Linux, a process can have the following states: running, waiting, stopped, or defunct.
Running:
If a process is in this state, it is either the current process in the system or is ready to run.

Waiting:
In this state, a process is waiting for another event to occur before it can continue. The kernel
can distinguish between types of waiting processes also; interruptible waiting processes can be
interrupted by other processes while uninterruptible waiting processes cannot be since they
are waiting directly on hardware.

Stopped:
In this state, a process is stopped after having received a signal.
Defunct:
In this state, a process is dead but still possesses an entry on the PID table.
(Kili and Posts, 2019)
Memory Management of Arch Linux:
As taken from kernel.org, “Linux memory management subsystem is responsible, as the name
implies, for managing the memory in the system. This includes implementation of virtual
memory and demand paging, memory allocation both for kernel internal structures and user
space programs, mapping of files into processes address space and many other cool things.”
(Kernel.org, 2019)
An important aspect of the memory management is the management of virtual memory. “The
virtual memory abstracts the details of physical memory from the application software, allows
to keep only needed information in the physical memory (demand paging) and provides a
mechanism for the protection and controlled sharing of data between processes.” (Anon, 2019)

Some other key aspects of the memory management system involve the protection of
processes through giving each process its own virtual address space, preventing these spaces
from interacting with each other. Arch also allows for certain areas in memory to be protected
from writing, which preserves sensitive processes and data from being maliciously overwritten.
In the case that multiple applications need to interact with each other, the shared virtual
memory system can be employed. The core idea is that instead of having multiple identical
processes stored in physical memory simultaneously, you have one copy of the process in
physical memory which is shared by the identical processes.
(Anon, 2019)
File Management of Arch Linux:
The Linux file system has remained nearly constant since the operating system’s inception.

The core structure should be consistent across distributions, as shown in Figure 1:

(linux-filesystem, 2019)

While the structure has remained identical over the years, the uses of some of these folders
have changed drastically. For example, /etc used to be used as a dumping ground for
miscellaneous files by developers, with its name being derived from ‘et cetera’, yet its usage
has evolved to become the main directory for the various configuration files used by Linux.
(Linux.com, 2019)

In addition, Linux employs a robust file permission system. To begin with, there are three
permission groups: owner, group, and all users. Also, each file or directory can have three
different types of permission: read, write, and execute.
The permissions on a file or directory can be checked using the “ls -l”, and they can be changed
using the “chmod” command. (Linux.com, 2019)
Device Management of Arch Linux:
The device manager used in Arch Linux is udev. Therefore, udev is responsible for loading
kernel modules for various devices that interface with the system. Udev loads these modules
asynchronously in place of loading them serially, allowing for a myriad of performance benefits
over the previous methods. (Wiki.archlinux.org, 2019)
Udev manages the devices by creating and removing nodes in the /dev directory contextually
for the user. Some improvements over udev’s predecessors include the fact that udev runs in
user space and can create persistent device names, utilising rule-based naming conventions.
Udev’s main function involves its daemon constantly listening to the netlink socket which is
used by the kernel to interact with user-space in Linux. The kernel sends data through this
socket whenever a device is added or removed, and udev subsequently parses this data,
matching it with its own directory of device rules. It then creates the device node and
corresponding symbolic link for the device concerned. (Linux.com, 2019)
References
Anon, (2019). [online] Available at: https://www.tldp.org/LDP/tlk/mm/memory.html
[Accessed 15 Nov. 2019].
Archlinux.org. (2019). Arch Linux - About. [online] Available at:
https://www.archlinux.org/about/ [Accessed 15 Nov. 2019].
Kernel.org. (2019). Memory Management — The Linux Kernel documentation.
[online] Available at: https://www.kernel.org/doc/html/latest/admin-
guide/mm/index.html [Accessed 15 Nov. 2019].
Kili, A. and Posts, V. (2019). All You Need To Know About Processes in Linux
[Comprehensive Guide]. [online] Tecmint.com. Available at:
https://www.tecmint.com/linux-process-management/ [Accessed 15 Nov. 2019].
Linux.com. (2019). The Linux Filesystem Explained - Linux.com. [online] Available
at: https://www.linux.com/tutorials/linux-filesystem-explained/ [Accessed 15
Nov. 2019].
Linux.com. (2019). Udev: Introduction to Device Management In Modern Linux
System - Linux.com. [online] Available at: https://www.linux.com/news/udev-
introduction-device-management-modern-linux-system/ [Accessed 15 Nov.
2019].
Linux.com. (2019). Understanding Linux File Permissions - Linux.com. [online]
Available at: https://www.linux.com/tutorials/understanding-linux-file-
permissions/ [Accessed 15 Nov. 2019].
linux-filesystem. (2019). [image] Available at: https://www.rs-
online.com/designspark/rel-assets/dsauto/temp/uploaded/linux-
filesystem.png?w=815 [Accessed 15 Nov. 2019].
Wiki.archlinux.org. (2019). udev - ArchWiki. [online] Available at:
https://wiki.archlinux.org/index.php/Udev [Accessed 15 Nov. 2019].

You might also like