We have finished studying :
Operating System principles
Abstractions
Different Algorithms
Techniques
Now, we will look at some concrete systems
to see how these principles are applied in
the real world.
CASE STUDY 1:
LINUX
LINUX: A Popular variant of
UNIX
We have started with Linux because…..
It is one of the dominant Operating Systems
which is used on
High-end workstations and servers
Systems ranging from cell phones to
supercomputers
Linux also illustrates many important design
principles well.
Topics
History and evolution of UNIX and Linux
Overview of Linux
Processes in Linux
Memory Management in Linux
Input/Output in Linux
The Linux file system
Security in Linux
History of UNIX and LINUX
In order to understand Linux, we need to
travel back in time, about 40 years ago...
Computers were extremely expensive
While the sizes of those computers posed
substantial problems, there was one thing
that made this even worse: every computer
had a different operating system
Software was always customized to serve a
specific purpose, and software for one given
system didn't run on another system.
History of UNIX and LINUX
In 1969, a team of developers ( including Ken
Thompson, Dennis Ritchie, Douglas McIlroy and
Joe Ossanna ) in the Bell Labs laboratories
started working on a solution for the software
problem, to address these compatibility issues.
They developed a new operating system, which
was
1. Simple and elegant.
2. Written in the C programming language
instead of in assembly code.
3. Able to recycle code.
The Bell Labs developers named their project
"UNIX."
History of UNIX and LINUX:
UNICS
In the 1960s, Massachusetts Institute of
Technology, AT&T Bell Labs, and General
Electric worked on an experimental operating
system called MULTICS (Multiplexed Information
and Computing Service), which was designed to
run on the GE-645 mainframe computer.
MULTICS was an interactive operating system
with many novel capabilities, including enhanced
security.
AT&T Bell Labs later pulled out of the Multics
project and deployed its resources elsewhere.
History of UNIX and
LINUX: UNICS
But Ken Thompson, continued to develop for the
GE-645 mainframe, and wrote a game for that
computer called Space Travel. However, he found
that the game was too slow and expensive.
He thus re-wrote the game in assembly language
for PDP-7 microcomputer. This experience, led
Thompson to start a new multi-tasking operating
system for the PDP-7 with no financial support
from Bell Lab.
Later the project was named UNICS. This name
was invemted as a contrast to Multics; the spelling
was later changed to UNIX.
PDP-11 UNIX
In 1970 the UNIX operating system was
officially named for the first time and ran on
the PDP-11/20.
Later it was moved to the PDP-11/45 and
then PDP-11/70.
Unix was first implemented in assembly on
the PDP-7 and PDP-11, and later rewritten in
C.
First Users
Bell Labs Patent Dept. (nroff and troff)
Universities (free OS and compilers)
Later on UC Berkeley Grads Jumped into it
Two main threads: Bell Labs Unix ----- BSD
Unix
Newer Unix has features from both
Multi users were allowed concurrently
Portable UNIX
As more of UNIX was rewritten in C,
portability also increased.
A group at the University of Wollongong
ported UNIX to the Interdata 8/32
minicomputer.
Bell Labs developed several ports for
research purposes and internal use at AT&T.
Steve Johnson of Bell Labs designed and
implemented the portable C compiler, which
could be retargated to produce code for any
reasonable machine with only a moderate
amount of effort.
Berkeley UNIX
The Computer Systems Research Group of the
University of California, Berkeley developed and
distributed Berkeley Software Distribution
(BSD, sometimes called Berkeley Unix) from
1977 to 1995.
Berkeley Unix shared the initial code-base and
design with the original AT&T UNIX operating
system.
First Berkeley Software Distribution (1BSD)
was released in 1977 assembled by a graduate
student at Berkeley named Bill Joy.
Berkeley UNIX
Berkeley's Unix was the first Unix to include
libraries supporting the Internet Protocol
stacks: Berkeley sockets. By integrating
sockets with the Unix operating system's file
descriptors, it became easy to read and write
data across a network.
Berkeley also introduced a new editor (vi), a
new shell (csh), Pascal and Lisp compilers,
and many more.
Berkeley UNIX
BSD has been the base of a large number
of operating systems.
Most notable among these today are:
FreeBSD
NetBSD
OpenBSD
which are all derived from 386BSD and
4.4BSD .
Standard UNIX
By the late 1980s, a project was started to
release a standard UNIX system. The collective
name for this project was POSIX- "Portable
Operating System Interface for UNIX“
The goal of this project was to define an
application programming interface (API), along
with shell and utilities interfaces for software
compatible with variants of the UNIX operating
system, so that the standard can apply to any
operating system.
Standard UNIX
The POSIX committee produced a standard
known as 1003.1, which was released in 1988.
Many user-level programs, services, and utilities
including were standardized, along with required
program-level services including basic I/O (file,
terminal, and network) services.
POSIX also defines API which is supported by
most modern operating systems.
Versions of UNIX
MINIX
MINIX was released in 1987, as a UNIX-like
operating system whose source code was small
enough to understand and could be used freely
in education.
MINIX consisted of 11,800 lines of C and 800
lines of assembly code
The system was based on a microkernel design
that means to provide minimal functionality in the
kernel to make it reliable and efficient
LINUX: First Step
Linus Torvalds,working on a CS degree in
Finland in 1991 decided to write his own
operating system for the Intel platform.
When he first started writing his Linux operating
system kernel, he was working on a machine
running MINIX, so the initial releases based a lot
of functionality on MINIX subsystems.
Until the April 1992 introduction of the Extended
file system, Linux used the Minix file system.
LINUX: Goals
Designed by programmers, for programmers
Designed to be
• Simple
• Elegant
• Consistent
• Powerful
• Flexible
LINUX: Design
A Linux-based system is a modular UNIX-like
operating system. It derives much of its basic
design from principles established in UNIX during
the 1970s and 1980s.
The system uses a monolithic kernel, the Linux
kernel, which handles process control,
networking, and peripheral and file system
access.
Device drivers are integrated directly with the
kernel.
The graphical user interface (or GUI) used by
most Linux systems is based on the X Window
System.
LINUX: Different Versions
Linux – version 0.01
- was released in 1991
- borrowed many ideas of MINIX
- consisted of 9300 lines of C and 950 lines of assembly
code.
Linux – version 1.0
- was released in 1994
- consisted of 9300 lines of C and 950 lines of assembly
code.
Linux – version 2.0
- was released in 1996
- consisted of 470,000 lines of C and 8000 lines of
assembly code.
LINUX: Its Business Model
The Linux operating system is developed under
the GNU General Public License (also known as
GNU GPL) and its source code is freely
available to everyone.
The GNU Project, started in 1984 by Richard
Stallman, had the goal of creating a "complete
Unix-compatible software system“ composed
entirely of free software.
LINUX
Various Fields of Uses
Servers
Components of IBM Roadrunner, the
world's fastest supercomputer
2008, which runs LINUX
Thanks…..
Made By:
Sabrina Hossain Tonny
Roll: 200614033
MIST