Linux Operating System
COMP301 – Linux/UNIX Operating Systems
Objectives
History of Unix
High level architecture of Linux
Describe the UNIX/Linux operating systems
History of Operating System
1940-1950 (Vacuum Tube and Plugboards)
No OS’s
Each program had to include all the code needed to run on the computer,
communicate with the associated peripheral.
1955-1965 (Transistor and Batch Systems)
Single stream, batch processing systems.
A computer can only run one program at a time.
1965-1980 (IC and Multiprogramming)
Can perform multiple job simultaneously.
CPU can be used more efficiently.
Several jobs are in main memory at once, the processor switches from one job to
another.
1980-present day (Personal Computers)
DOS and Windows have brought computing to the masses
Introducing the UNIX and Linux
Operating Systems
UNIX/Linux is used on systems serves as:
Servers, clients, client/server workstations, and stand-alone
workstations
UNIX/Linux are multiuser/multitasking systems
Some characteristics of UNIX/Linux systems:
Portability.
Stable, reliable, and versatile.
Thousands of applications are written for them.
Many security options.
Well suited for networked environments.
A Brief History of UNIX
Originally developed at AT&T Bell Labs by Ken Thompson and Dennis Richie in the
late 1960s and early 1970s.
Was meant to be a convenient platform for programmer developing software.
It was portable and as such distributed in source code form.
Two standard versions evolved:
AT&T Bell Labs produced SystemV (SysV)
UC Berkeley developed BSD
Linux might be considered a more integrated version of UNIX than its predecessors
POSIX: effort of experts from industry, academia, and government to standardize
UNIX
Characteristics of Unix
Plain text for storing data.
Hierarchical files system.
All files and directory are organized under a single root directory.
Large number of software tools
The are small programs that does one low level task
The can be strung together via pipes.
ls | wc -l
Treating devices as files.
Linux and UNIX
Linux started out as an undergrad project by Linus Torvalds
is a UNIX-like operating system
Not written from the traditional UNIX code
Kernel created to look and act like UNIX
Enhancements include the POSIX standards
Linus Torvalds released it free of charge in 1991
Many distributions are available:
Debian GNU/Linux
Fedora
Red Hat Enterprise Linux
openSUSE Linux
Ubuntu
Linux and UNIX Distributions
Popular UNIX Distributions
IBM – AIX
Oracte – SunOS and SPARC
HP - HP-UX
Popular Linux Distros
RedHat
Ubuntu
Debian
Arch
Fedora
Distrowatch Website
Functionalities of an OS
Process Management.
I/O Device Management.
File Management.
Network Management.
Main Memory Management.
Secondary Storage Management.
Security Management.
Command Interpreter System.
Process Management
There are multiple processes running simultaneously on the OS. The execution
must eb efficient and seamless. This component is responsible for:
Creation and deletion of processes.
Suspending and resuming processes.
Synchronizing processes
Establishing communication with and between processes.
I/O Device Management
The component hides the variations of some hardware devices from the user.
Following are the features of I/O device management:
Buffers caching system
Provides general device driver code
Provides drivers for particular hardware devices.
Helps know the individualities of a device.
File Management
This component comprises of a set of related information that represents
programs, source forms, object forms, and data is called a file. A data file can
either be numeric, alphabetic, or alphanumeric. Following are the features of
file management:
Creation and deletion of files and directories.
Manipulation of files and directories.
Maps files onto secondary storage.
File backup on a stable storage media.
Network Management
Network management administers and manages computer networks. Its
services include performance management, fault analysis, network
provisioning, and service quality management.
It offers user access to the various resources that the network shares.
We can access shared resources. These help speed-up computation and offer
data availability and reliability.
We can access different computing resources that vary in size and function
like microprocessors, minicomputers, and many general-purpose computer
systems with the help of distributed systems.
Main memory management
Main Memory comprises large amounts of storage or byte where each storage and
byte has an address. In order to conduct the process of memory management a
sequence of reads or writes of specific memory addresses is used. We map it to
absolute addresses and load it inside the memory in order to execute a program.
Following are the features of memory management:
Keeps track of primary memory.
Determines what part of the memory is in use and by whom.
Decides which process should get the memory and what amount.
Allocates memory on the request of a process.
De-allocates memory when a process terminates.
Secondary-Storage Management
6. Programs help access data in the main memory during execution. The main
memory is too small and cannot store all the data and programs permanently.
Thus, secondary storage acts as a backup to the main memory. Assemblers
and compilers are stored on the disk until they are loaded into the memory
and use the disk for processing.
Following are the features of secondary-storage management:
Allocates storage
Manages free space
Disk scheduling
Security Management
7. It is necessary to protect the processes from each other’s activities.
Security management ensures that the operating files, memory, CPU, and
other hardware resources have proper authorization from the OS. No process
can do its own I/O, this maintains the integrity of peripheral devices.
Other Activities of Operating System
There are some other important activities that an OS performs:
User programs can’t execute I/O operations directly and the OS needs to
provide a medium for this.
The OS checks the capability of a program to perform file operations.
OS ensures information exchange between executing processes irrespective of
whether they are in the same system or different.
OS components help ensure correct computing and detect errors in the
system.
User Applications User
Space
Shells
System Call Interface
Kernel Kernel
Space
Architecture-Dependent Kernel Code
Hardware Platform
Linux Architecture
Summary
Questions?