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