Submitted Case Study
Submitted Case Study
Operating System
Done by
Maha Mahmoud Ali
ABSTRACT
The operating system is as an interface between the user and the computer that allocate the
required resources such as memory, CPU, and I / O devices to perform multiple tasks by users
according to requirements. Without OS, applications could not be launched within the
computer. (Tutorials point, 2016)
Nowadays many people are using Linux which is currently the fastest commonly used operating
system. It applies to more border areas and it is an open source software that is freely available.
The concept of operations management in Linux is very easy. It has a simple methodology for
performing upgrading, updating and other system maintenance tasks. (Tutorials point, 2016)
Ubuntu is a very secure and reliable operating system. This case study is about why Ubuntu
released and the reasons why this operating system is very powerful and preferred by people.
Ubuntu has its unique design fundamentals that aid to make a suitable advanced user interface.
The process management is used to achieve multi-tasking and improve CPU utilization. In
addition, it allows the processes to interact with each other to share the required resources and
complete tasks. Dynamic memory allocation of processes is provided by the memory
management techniques to achieve quick access to increase the performance of the OS.
1
Content
s
ABSTRACT........................................................................................................................................1
Chapter 1. INTRODUCTION..............................................................................................................3
Chapter 2. OVERVIEW OF LINUX.....................................................................................................4
2.1. History of Ubuntu:....................................................................................................................4
2.2. Design Principles:......................................................................................................................8
2.3. USER and Programmer interface:...........................................................................................10
2.4. Process Management:............................................................................................................12
2.5. Memory Management:...........................................................................................................15
2.6. File system:.............................................................................................................................18
2.7. I/O Management:...................................................................................................................20
2.8. Inter Process Communication (IPC):.......................................................................................22
2.9. Ssecurity..................................................................................................................................24
Chapter 3. CONCLUSION................................................................................................................25
Chapter 4. REFERENCES.................................................................................................................26
2
CHAPTER 1. INTRODUCTION
The operating system is defined as an interface between a computer and a user that requires a
set of computer resources such as memory, RAM, CPU, and I / O devices to perform multiple
tasks by users according to requirements. A computer program manages computer resources
and software and provides shared services for computer programs. (Tutorials point, 2016)
Linux is a commonly known type of operating systems. It is developed with the lowest
operating system. This kernel controls all process strings, such as I / O management, hardware
interfaces, and the user interface. It offers a reliable platform for all Linux users, and its
database is powerfully designed for people working in businesses. It is an open source
operating system developed for use on personal computers but now widely used on
smartphones, servers, central computers, supercomputers, and so on. The open-source Linux
operating system has been developed to be used on private computers but is currently widely
used on smartphones, servers, central computers, supercomputers, and so on. (Tutorials point,
2016)
The evolution of the development of a new version can be adapted to any platform for
operating systems. Linux contains different types of user-based versions. These versions are
called distributions or distros. In this case study, one of these distros will be discussed in details
which is called Ubuntu Linux Operating System. Linux offers one of the easiest fixes for other
programs. The commercial and non-commercial source code can be modified under the terms
of the respective licenses. (Tutorials point, 2016)
Ubuntu is growing rapidly in comparison with other Linux-based operating system. It has huge
number of users and a worldwide active developer community. It is an absolutely free open
source operating system which helped to make it the most widely used computer operating
system. Nowadays, this version is used on different hardware devices such as tablets,
smartphones, and other devices that use Android, web servers, smart TVs, games, and more. It
is a fast, secure and open operating system. It can be run on desktops, servers and also in the
clouds. It is backed up by Canonical, the worldwide community of programmers as well as by
employees of Ubuntu's commercial sponsor.( Linuceum, 2010)
3
CHAPTER 2. OVERVIEW OF LINUX
Before the development of the Linux system in 1987, Andrew S.Tanenbaum, Professor of
Computer Science, has created the first open source software, based on UNIX-style MINIX
organizer. Torvalds focused on the source code and established the freely new operating
system called LINUX. Linus Torvalds, a Finnish computer science student at the University of
Helsinki, wrote the first Linux program in 1991. After a few years, most people contributed to
Linux development. As a result, Linux is redistributed again for performing various purposes.
Linux gained a good reputation rapidly since the source code is freely available, and the terms
of license for developers are flexible. (Linuceum, 2010)
The word "Ubuntu" is taken from an ancient Zulu and Xhosa (African) word, which means
"humanity to others". In addition, it means, "I am what I am because of who we all are". This
word was selected because these passions accurately represent the spirit of the Ubuntu Linux
distribution. (Techotopia, 2014)
As mentioned before, Ubuntu is one of the most common and used Linux distros. Ubuntu is
made up by a source code that originated from another earlier Linux version called Debian.
Although, Debian is a valuable operating system, it became unpreferred by some of Linux users
because of its irregular updates and its unfriendly user maintenance and installation.
(Techotopia, 2014)
Accordingly, a South African internet mogul called Mark Shuttleworth, decided to make some
modification on Debian distribution for a more user-friendly Linux distribution. He redistributes
a new Linux version and gives it the name "Ubuntu". Afterwards, he established a company
called Canonical Ltd to support and promote the Ubuntu Linux. Moreover, Shuttleworth has
taken the responsibility to form and fund a foundation for guaranteeing the future of Ubuntu.
(Techotopia, 2014)
4
Then, Ubuntu has since got strengthed rapidly. Some hardware vendors nowadays such as Dell
ship computers pre-loaded with Ubuntu Linux. Canonical Company publishes an interim release
of Ubuntu every six months between LTS versions. The production quality releases are
supported for their lifespan as shown in Table 1. (Canonical, 2018a)
5
Ubuntu has a number of different versions that either are using different desktops or distorted
towards a specific type of users. The desktop type and description of each version is shown in
Table 2.
One of the most attractive things about Ubuntu is the number of applications that are freely
available and can be installed with just a few clicks Most of the applications are available for
free. The following are examples of most used apps in Ubuntu:
Spotify, to play and stream songs, playlists and albums.
Skype, the direct messaging, video or voice calling free service.
VLC Player, the best compatible video player that supports various video formats.
Firefox, the best internet browser and 30% lighter than other browsers including
Chrome.
Slack, the team collaboration and communication.
Atom, A hackable text editor for the 21st Century.
PyCharm, which supports the user by all the tools needed for coding in python
productively.
Telegram, a secure and fast desktop messaging app that can be syncronized with the
user’s mobile phone perfectly. (Canonical, 2018c)
6
Ubuntu is generally known as the most commonly used version of Linux. Mark Shuttleworth,
the founder and CEO of Canonical, estimates that the number of Ubuntu users has reached
about eight million users over the world. The reason behind this number of users is because the
software is free to share, modify, redistribute and download. (Connecting Up, 2014)
Ubuntu has many strengths over the usual Linux distributions including:
It is debatably the most user-friendly Linux version as its whole philosophy is on the
basis of making it easy to use by hiding all unnecessary complexity behind the scenes.
It has the largest repository of free software available, in comparison with other Linux
versions.
It is the most common Linux version. Hence, there are a lot of people and websites out
there supporting it.
It is supported by Canonical. Hence, they have the important resources to announce the
six-monthly releases and bug-fixes. (Linuceum, 2010)
On the other side, Ubuntu has three main drawbacks which are:
It has a slightly conservative approach to new technologies. Hence, it is not the best
version to choose, if user needs to keep up with leading-edge technologies.
It is very sensitive to hardware and software errors. In other words, it is not suitable for
users who need resilience a stop of their requirements. Thus, it is less stable than, for
example, Fedora.
It is pretty large and demands a fairly capable machine to run efficiently on it.
(Linuceum, 2010)
The minimum hardware requirements for the latest release of Ubuntu are:
free disc space of 5 GB
1024x768 resolution capability of Graphics card
512 Mb RAM
700 MHz processor (Intel Celeron or better)
USB port or DVD drive (Linuceum, 2010)
7
2.2. DESIGN PRINCIPLES:
In the multiuser/multitasking operating system, multiple users can run multiple programs
simultaneously. Nowadays, it is used on terminal servers and mainframes. It gives each user a
complete environment on the server, which is separate from all other users. The connection to
the terminal server is established using a terminal client software that should be installed on
the user's computer. In this type of operating system, most of the computing takes place at the
server. On a single computer or a server, multiple users can have a number of accounts with a
different desktop for each. Hence, each user can access only to his files and installed programs
in his specific desktop. (Herdon, M., 2013)
Linux is a multiuser/multitasking OS with only one caveat, which means only one user can
interactively log into the server or the computer at the same time. On the other hand, it allows
multiple simultaneous users’ connections over a network. (Herdon, M., 2013)
Ubuntu has various important features that makes it preferred by users such as:
Portability - Ubuntu can work in the same way on different types of hardware. The
installation of Ubuntu operating system is supported on any kind of hardware platform.
Open Source - The source code is available freely for everyone and can be modified to
redistribute a new better version of Linux.
Multi-User - Multiple users can access the resources of the system including CPU,
memory and I/O devices at the same time.
Multiprogramming - Multiple programs can take place and run on Ubuntu at the same
time.
Hierarchical File System - Ubuntu supports a conventional file structure for arranging
user and system files.
Shell - A special interpreter program supported by Ubuntu, which used for executing
operating system commands. In addition, it can be used to perform different categories
of operations.
Security - Authentication features are used to provide user security using password
protection, access control and data encryption. (Tutorials point, 2016)
9
2.3. USER AND PROGRAMMER INTERFACE:
The most important part of a desktop distribution id its used desktop environment because the
usability, feel and look of the operating system depends on the desktop environment. Ubuntu
has several releases, flavours, desktop environments. Various desktop environments are there
to be used by Ubuntu Linux operating system including GNOME, Unity, LXDE, KDE, Xfce and
MATE. (This Hosting Rocks, 2018) At the past, Ubuntu’s default desktop environment was Unity,
which specially invented and designed for Ubuntu. But nowadays, Ubuntu ships with GNOME
by default. By choosing Ubuntu, there are more options for environments that work
outstanding. Some of Ubuntu releases like Lubuntu, Xubuntu, Ubuntu MATE come with pre-
installed environments. Because of Ubuntu’s friendly user interface, it is considered one of the
best suitable distribution for beginners. In addition, it is also very suitable for experienced users
because of its offered customized options. Hence, any level of users has the ability to log in
graphically and use all applications without a need of typing a single character, whereas expert
users still can access the core of the system when needed. (Garrels, M., 2008)
The latest version of Ubuntu uses the GNU Network Object Model Environment (GNOME)
graphical user interface which has the look and appeal of Windows Vista without many of the
problems. It also uses a command line interface to interact with the core of the system. ( Rouse,
M., 2006)
GNOME provides the user with various desktop appearances as shown in Fig2. With GNOME,
the user interface can be edited to look like other operating systems such as Windows 98 or
Mac OS. Also, GNOME provides programmers with a widget library that helps them in
developing applications which use the user interface of GNOME. (Rouse, M., 2006)
Moreover, GNOME provides a collection of applications of the same type that can be found in
the Windows Office 97 product such as the following:
Web browser.
10
Database manager.
Spreadsheet program.
Word processor.
E-mail program.
Presentation developer. (Rouse, M., 2006)
Ubuntu programs were developed using GNU compilers and assembly language in the earliest
versions, however some of the programs were still developed using low level language because
of the its fast execution time. Nowadays, high-level language, mainly c programming, is also
used since it is easy to understand and debug. Moreover, new advanced compilers are used by
programmers for developing complex programs such as hardware interaction, process
communication and Multithreading. (Garrels, M., 2008)
11
2.4. PROCESS MANAGEMENT:
Process management is an integral part of the Ubuntu operating system. It takes place in the
kernel space and provides the required tools to handle the processes which run in the terminal and the
graphical interface. A process is a program under execution, also it can be called as a task in Linux.
a single program can create many processes if it runs several times. The operating system is
responsible for allocating resources like memory, CPU, I/O devices to processes, enabling
processes to exchange and share the information, protecting the resources of each process
from other processes. As a result, the OS has to keep up with a data structure for each process,
in order to describe the resource and state of that process, which gives the OS the ability to
apply control over each process. (Geeks for Geeks, 2018)
12
Fig 3: Process States of Ubuntu OS.
The scheduler of Ubuntu OS is based on priority. It schedules the processes based upon their
dynamic and static priorities. It was designed and implemented by motivated developer called
Ingo Molnar. (Sarkar, C., 2014)
An extensible hierarchy of scheduler module called schedule class was introduced in 2.6.23.
Scheduling classes are implemented using thesched_class structure. This class contains tools to
functions that have to be called when an event occurs. (Sarkar, C., 2014) There are two
schedule classes, which are:
1. Completely Fair Schedule class: it schedules processes using Completely Fair Scheduler
(CFS) algorithm. The processes that have a policy set to SCHED_BATCH, SCHED_
NORMAL and SCHED_IDLE are scheduled by this scheduling class. The implementation
of this class can be found in kernel /sched_fai r.c.
13
The following are the most common used kernel 2.6 scheduler polices:
1. SCHED_NORMAL :
it can be also called SCHED_OTHER. It is A time-shared, conventional process. Each task
assigned a “Nice” value using this formula: PRIO = MAX_RT_PRIO + NICE + 20. A time
slice is assigned and the tasks which at the same priority are round-robined. (Hung, Y.,
2016)
2. SCHED_FIFO :
It is a First In First Out real-time policy. Using this policy, the process runs until they quit
the CPU voluntarily. The FIFO RT tasks have maintained priority levels and the cannot
be pre-empted. It is a simple scheduling algorithm that does not need time slicing.
(Hung, Y., 2016)
3. SCHED_RR :
It is a Round Robin real-time policy. Using this policy, the process is assigned with a
time quantum and runs till the time quantum is over. If all RR tasks of a specific priority
level consume their timeslices, then their time quantum is refilled again to continue
running. Equally important, The Priority levels of this tasks are maintained. (Hung, Y.,
2016)
The main goal of designing the new scheduler of Linux was to implement fully O(1) scheduling
that will make every algorithm in the scheduler finishes its execution in a constant time. Also, it
aims to provide a good interactive performance so the system must react and reschedule the
interactive tasks at the moment even during considerable system load. (Robert, 2003)
14
2.5. MEMORY MANAGEMENT:
The memory management subsystem is responsible, as the name suggests, for memory
management in the system. It is one of Linux's most complex activities and it has many
concepts that are associated with it. This includes virtual memory execution and migration in
demand, memory allocation for both the internal structure of programs and user programs, file
layout to the address space of operations and many other great things. (Arora, 2017)
There are two ways to allocate memory in Ubuntu, one of them is to do the allocation
statically, while it is the boot time for drivers that need contiguous memory areas, the other
method is to do the allocation dynamically with help of the page allocator. (Just more thoughts,
2011)
In order to allocate the kernel memory, two mechanisms can be used which are:
15
Fig 4: Slab allocator in Linux.
2. The Buddy Service Technique:
(Slab allocator in Linux, 2018)
This buddy system is used by the page allocator to keep track of available physical pages
in this schema, each two allocated buddy regions are combined to form a larger region
called a buddy heap, whenever they are freed up. Then, this body heap is divided into
two buddies to satisfy the request. As shown in Fig5, the 16KB region is divided
recursively until a piece of the required size is available. (Silberschatz, Galvin & Gagne,
2016)
17
Fig 6: Abstract model of Virtual to Physical address mapping.
(Abstract model of Virtual to Physical address mapping, 2008)
File systems are one of the things that a new Ubuntu user must become familiar with it. In
Microsoft, the default file system is NTFS. However, in Linux there are different opinions
because it is an open source OS, so the user should understand the background of what a file
system is and how it affects its computer. (Anthony J.S, 2015)
UNIX standard file system model is used by Ubuntu Operating system. In this model, everything
is shown to the user in the form of files. Although, a file can be stored in the disk in any form
like a stream of data, not only as an object. All types of files are handled by the kernel, which
hides all the implementation details of any type of file behind a layer of software called the
Virtual File System (VFS). (Silberschatz, Galvin & Gagne, 2016) For building an Ubuntu file
system on a device such as a partition of a hard disk, the parameter mkfs must be used.
(Anthony J.S, 2015)
In order to design the Virtual File System (VFS), the object-oriented principles are used. It
consists of two main components: a software layer for manipulating the objects and a collection
of definitions that specify the file system objects, which are allowed to look like. The structure
of the VFS is consists of a user space, a kernel space and the system calls are between them as
shown in Fig7.The following are the main four objects of the VFS:
1. The file object: used for representing open files.
2. The inode object: used for representing individual files.
3. The dentry object: used for representing individual directories entry.
18
4. The superblock object: used for representing the entire of a file system. (Silberschatz,
Galvin & Gagne, 2016)
19
2.7. I/O MANAGEMENT:
In the Ubuntu operating system, all device drivers are shown as normal files, hence users are
able to access the devices in the same way as they open any other file in the system. Equally
important, an access permission can be set for each device by the administrator. (Babu C.,
2012) All devices in Ubuntu are categorized into three classes as shown in Fig8, which are:
Block Devices:
It consists of all devices, which provide random access to entirely independent such as
flop and hard disks, Blu-ray discs, flash memory, and CD-ROMs.These devices are fixed-
sized and read-only blocks of data. In other words, they provide the main interface to all
disk devices in the system. There are two main goals of the block buffer cache, which
are:
o It behaves as a pool of buffers
o for the active I/Os.
o It acts as a cache for the completed I/Os.
In the block device, two issues can occur: starvation and deadline. Also, the block device
maintains three types of queues which are sorted queue, read queue and write queue.
(Babu C., 2012)
20
Character Devices:
It consists of all other devices including mouse and keyboard. The major difference
between the block and the character devices is the method of access, the block devices
are accessed randomly, but the character devices are accessed sequentially or serially.
Fig8: The device-driver block structure.
They read the data character by character. (Babu C., 2012)
(The device-driver block structure, 2012)
Network Devices:
These devices are handled in a different way. They cannot be accessed directly by users;
hence users are not able to transfer data directly to the network devices. They have
another way, which is communicating indirectly by establishing a connection to the
kernel’s networking sub-system. (Babu C., 2012
21
2.8. INTER PROCESS COMMUNICATION (IPC):
IPC is a contraction that stands for “Inter- process communication”. IPC Linux mechanisms are
derived from traditional UNIX. Allows processes to share information. Some are more suitable
for specific applications. For example, those that connects over a network or exchange SMS
messages with other local applications. (EmbLogic, 2014)
It implies a collection of system calls that enables the user mode process to send and receive
messages to other processes, semaphores and share a memory area with other processes. IPC
is needed because of many reasons including speedup, convenience, modularity and
information sharing. (EmbLogic, 2014) Three main methods are provided by Ubuntu, which are:
Pipes and FIFOs:
They are mainly used to implement the interactions between processes. The pipe may
be filled with a process or extracted by a process. (EmbLogic, 2014)
Message Queues:
It is the mechanism of setting up a message queue between processes to transfer and
exchange short blocks, which called messages in an asynchronous way (As shown in
Fig10). (EmbLogic, 2014)
22
Fig10: Message passing method.
Shared Memory:
In this mechanism, two processes share a common area of memory in order to share
their resources. It is used if processes have to share large amounts of data efficiently.
(EmbLogic, 2014)
23
Fig11: Shared memory method.
Key execution provides a greater degree of security for the security system itself, and generates
a security check code by an interpreter.
Since 2004, Ubuntu has been built on the basis of enterprise-wide security practices. From the
toolkit we use in the package of packages we use and from the update to the industry standard
certificate, Canonical never stops working to keep Ubuntu at the forefront of reliability and
safety.
All church products are built safely and unmatched - and are tested to ensure delivery. Your
Ubuntu software is safe from the moment it is installed and will remain as Canonical ensures
that security updates are always available on Ubuntu first.
Ubuntu is the foundation for the majority of cloud-based workloads today. With more than 450
million global cloud cases launched since the release of Ubuntu 16.04 LTS, an ever-increasing
number on a daily basis ever since, many of the largest online deployments use the Ubuntu
domain. This includes financial data, large data, the media and many other workloads and uses,
which depend on the stability and continuity of the underlying operating system to provide a
vital service to the mission upon which its clients depend.
Security maintenance for Ubuntu 12.04 LTS was provided as a way to extend the availability of
important and important security patches after Ubuntu's end-of-life date. Organizations use
security to address security compatibility issues during upgrade administration to later versions
of Ubuntu under full support. Under full support for newer versions of Ubuntu. However, it
refers to a plan to upgrade the capacity applications in a secure environment as a core value for
SM adoption. At the end of life in Ubuntu 14.04 LTS in April 2019, worldwide developers
planning efforts are supported; here Canonical SM is available for Ubuntu 14.04.
24
CHAPTER 3. CONCLUSION
To sum up, Ubuntu operating system is the most widely used distribution of Linux operating
system. It is a reliable and secure operating system. The history of Ubuntu is discussed and the
design principles is mentioned with the kernel components. The programmer and user interface
are explained with the help of pictures. Moreover, the process management is explained clearly
including the process states and the different types of the scheduler polices. In addition, the
memory management is mentioned with all mechanisms and subsystems. Equally important,
the file formats that is supported by Ubuntu are explained and the I/O system with all types of
devices is discussed. Also, the IPC methods are explained briefly and the security provided in
Ubuntu operating system is mentioned.
25
CHAPTER 4. REFERENCES
Anthony J.S, 2015. Linux File systems Explained - Community Help Wiki. [ONLINE]. Available
from: https://help.ubuntu.com/community/LinuxFilesystemsExplained?
_ga=2.233015326.1845672649.1544766582-1553649625.1544375033. [Accessed: 13
December 2018].
Arora, H., 2012. Linux Memory Management – Virtual Memory and Demand Paging. [Online].
Available from: https://www.thegeekstuff.com/2012/02/linux-memory-management/ .
[Accessed: 12 December 2018]
Brief Comparison of the File Systems in Ubuntu, 2015. [Online]. Available from:
https://help.ubuntu.com/community/LinuxFilesystemsExplained?
_ga=2.233015326.1845672649.1544766582-1553649625.1544375033. [Accessed: 14 December
2018]
26
Connecting Up, 2014. An Introduction to Ubuntu. [ONLINE]. Available
from: https://www.connectingup.org/learn/articles/introduction-ubuntu. [Accessed: 15
December 2018].
27