Cs 6560 operating system design
Download
1 / 30

CS 6560 Operating System Design - PowerPoint PPT Presentation


  • 136 Views
  • Uploaded on

CS 6560 Operating System Design. Lecture 2. Overview. OS Structure Case Study: Linux. Operating System Structure. Some Alternatives Monolithic Kernel – one big kernel program, not necessarily a mess as Tanenbaum characterizes it Example: Linux

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'CS 6560 Operating System Design' - eshe


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Overview l.jpg
Overview

  • OS Structure

  • Case Study: Linux


Operating system structure l.jpg
Operating System Structure

  • Some Alternatives

    • Monolithic Kernel – one big kernel program, not necessarily a mess as Tanenbaum characterizes it

      • Example: Linux

    • Microkernel – run most of code in user mode, only a few functions reside in kernel, other modules do most of the work

      • Example: Mach

        • http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html

      • Example: HURD

        • http://www.gnu.ai.mit.edu/software/hurd/hurd.html

    • Layered System

      • Example: the THE system by E. W. Dijkstra and his students

      • Example: MULTICS

    • Virtual Machines

      • Examples: IBM VM/360, Java virtual machine (JVM), VMWare

    • Exokernels – get away from the idea of abstracting hardware, concentrate on multiplexing the computer’s resources, use libraries

      • Example MIT : http://www.pdos.lcs.mit.edu/exo.html

    • Distributed Systems


Kernel based systems monolithic l.jpg
Kernel-based Systems (Monolithic)

Device

General Purpose Functions

Device tables

Device Drivers

System calls

Process Management

Device

Application

Programs

File Management

Device

Interprocess Communication Management

Device

Memory Management

Kernel





Case study linux l.jpg

Ritchie and Thompson

Bowman, et al.

Mehta, et al.

Case Study: Linux


Case study unix linux l.jpg
Case Study Unix &Linux

  • 10.1 History

  • Overview and Tour of Unix/Linux

  • Help

  • Program Development

  • Proc file system


Unix linux history l.jpg
Unix & Linux History

  • MULTICS = MULTiplexed Information and Computing Service

  • Ken Thompson of AT&T Bell Labs began work on stripped down version of MULTICS on a PDP-7 (used another computer to compile it)

  • Brian Kernighan named it UNICS = UNIplexed Information and Computing Service

  • Named UNIX when it could compile itself.

  • Dennis Ritchie joined.


More unix history l.jpg
More UNIX History

  • Moved to PDP-11/20, then PDP-11/45 (256 KB), then PDP-11/70 (768 KB), the Interdata 8/32

  • Language

    • First in assembly language (A)

    • Then in B (a derivative of BCPL)

    • Kernighan and Ritchie developed C and Thompson and Ritchie rewrote UNIX in C.


More history l.jpg
More History

  • 1974, Ritchie and Thompson wrote an paper in Communications of ACM

    • available online as 1978 revised version

    • received ACM Turing award

  • Spread to Universities, licensed by AT&T


At t versions l.jpg
AT&T Versions

  • Thompson and Ritchie’s group (with complete source code)

    • Version 6 – 8200 lines of C code and 900 lines of assembly

    • Version 7 – 18,000 lines of C code and 2100 lines of assembly

    • Versions 8, 9, 10

  • AT&T commercial versions (after 1984 when AT&T was broken up)

    • System III

    • System V

      • Release R2, R3, R4

  • License sold to Novell in 1993 which sold it it to Santa Cruz Operation in 1995


U c berkeley versions l.jpg
U C Berkeley Versions

  • Funded by ARPA (= U S Department of Defense Advanced Projects Agency )

  • BSD = Berkeley Standard Distribution

  • 1BSD, 2BSD, 3BSD, 4BSD

  • 4BSD had virtual memory, long file names, faster file system, vi, csh


Standardization of unix l.jpg
Standardization of Unix

  • Late 1980s: Two main version: BSD4.3 and AT&T SVR3, plus many vendor versions, perhaps as many as 25 different versions

  • AT&T: SVID (System V Interface Definition)

  • IEEE: POSIX (Portable Operating System)

    • 1003.1 defined interface to kernel as a set of library functions

  • ANSI and ISO: Standardized C

  • OSF = Open Software Foundation

  • The Open Group – The Single UNIX Specification, Version 3

    • see: http://www.unix-systems.org/


Minix l.jpg
MINIX

  • Developed by Tanebaum as a teaching tool

  • Microkernel design

  • Size

    • Microkernel: 1600 lines of C and 800 lines of assembly, plus device drivers (2900 lines of C)

    • File system: 5100 lines of C

    • Memory: 2200 lines of C

  • Version 2.0 in 1997 grew to 62,000 lines of C


Linux l.jpg
LINUX

  • Linus Torvalds – Finnish CS Student

  • Borrowed ideas from MINIX: structure of source code, layout of filesystem

  • Monolithic kernel rather than Microkernel

  • Sizes

    • Version 0.01 (1991) 9,300 lines of C and 950 lines of assembly

    • Version 1.0 (1994) 165,000 lines of C

    • Version 2.0 (1996) 470,000 lines of C and 8000 lines of assembly


More on linux l.jpg
More on LINUX

  • Free software

    • Uses GNU Public License (GPL)

  • Just the kernel – other parts of the system mainly from the GNU project: www.gnu.org

  • Some Web Sites:

    • The Linux Kernel Archives

      • www.kernel.org

    • The Linux Documentation Project

      • http://tldp.org/

    • Linux Online

      • http://www.linux.org/


Linux versions l.jpg
Linux Versions

  • Three numbers separated by periods

    • First, the major version number (currently 2)

    • Next, the minor version number (currently 6)

    • Third, the release number

  • Even minor numbers are stable releases and odd minor numbers are developmental (beta) releases.

  • Example: 2.6.22 is the current stable release of the current stable kernel.


Unix design goals l.jpg
Unix Design Goals

Unix Design Goals and Principles

  • timesharing

  • simplicity

  • multiple processes

  • construction set approach: pipes and filters

  • designed by programmer for programmers

  • flexibility

  • unity

  • written in HLL (C)

  • on-line documentation

  • local maintenance


Some more books l.jpg
Some More Books

  • Stones and Mathew, Beginning Linux Programming, Wrox.

  • Stevens, Advanced Programming in the UNIX Environment.

  • Keith Haviland, Dina Gray, Ben Salama, UNIX System Programming, Addison Wesley, 1987.

  • Maurice J. Bach, The Design of the UNIX Operating System, Prentice-Hall, 1986.

  • Brian W. Kernighan and and Dennis M. Ritchie, The C Programming Language, Prentice-Hall, 2nd Edition, 1988.

  • S. Leffler, M. McKusick, M. Karels, J. Quarterman, The Design and Implementation of the 4.3BSD UNIX Operating System, Addison-Wesley, 1989.

  • Evi Nemeth, Garth Snyder, and Scott Seebas, UNIX System Administration Handbook, Prentice-Hall, latest edition.


Software architecture of linux l.jpg
Software Architecture of Linux

  • References:

    • Bowman, Holt, Brewster, Linux as a Case Study, ICSE 1999.

    • Nikunj R. Mehta, Nenad Medvidovic, Sandeep Phadke, Towards a Taxonimy of Software Connectors, ICSE 2000.

  • Levels of analysis

    • Conceptual – high level based on documentation and discussions

    • Concrete – lower level, based on computation of software connections

  • Application to Linux

    • Open source – entire source code can be examined electronically


Bowman methodology l.jpg
Bowman: Methodology

  • Conceptual

    • Consult Linux documentation

    • Consult descriptions of related operating systems

  • Concrete

    • Use conceptual architecture as starting point

    • Group source files into subsystems

    • Use software tools to extract procedure calls, variable references

    • Determine relationships between source files

    • Use relationships between source files and clustering of files to determine relationships between subsystems


Source code organization l.jpg
Source Code Organization

linux-2.4

include

kernel

mm

fs

ipc

net

drivers

init

lib

crypto

abi

arch

Documentation

configs

scripts


Results of bowman study l.jpg
Results of Bowman Study

  • Subsystems

    • Process Scheduler

    • Memory management

    • File System

    • Interprocess Communications

    • Network Interface

    • Library

    • Initialization

  • Connections

    • More connections at concrete model – nearly a complete graph


Comments by mehta et al l.jpg
Comments by Mehta, et al.

  • Procedure calls and data references don’t give a clear picture of a system’s architecture

  • Higher level constructs called connectors are more valuable


From bowman s linux conceptual arch l.jpg
From Bowman’s Linux Conceptual Arch

File System

Memory

Manager

Network

Interface

Process

Scheduler

Interprocess

Communication

Initialization

Library


Bowman s kernel subsystems l.jpg
Bowman’s Kernel Subsystems

  • Process Scheduler

    • Provides dynamic priority-based multitasking for user and kernel processes

    • Provides primitives for creating and terminating processes

  • Memory Manager (mm)

    • Provides separate virtual memory addressing space for each user process

    • Uses swapping to support memory overbooked sharing

    • Provides physically and logically contiguous memory for kernel

    • Provides object caching for kernel

  • File System (fs)

    • Provides uniform access to hardware and virtual devices from multiple types of file systems

    • Provides a dynamic tree-structured directory system for files

  • Network Interface (net)

    • Provides access to network devices

  • Interprocess Communication (IPC)

    • Provides communication facilities among processes on the same system

  • Initialization

    • Initializes the Linux kernel on start up.

  • Library

    • Provides routines that are used throughout the kernel.


Bowman s fs conceptual arch l.jpg
Bowman’s FS Conceptual Arch

  • Device Drivers

    • Performs all communications with supported hardware devices

  • Logical File Systems

    • Implements a variety logical file systems that can be placed on physical devices

  • Executable File Formats

    • Supports a variety of executable formats

  • File Quota

    • Allows system administrators to limit the amount of file storage that individual users may use

  • Buffer Cache

    • Optimizes access to block devices by using virtual memory buffers

  • System Call Interface

    • Provides uniform user program interface to file system

  • Virtual File System (VFS)

    • Provides uniform kernel interface to file system


Bowman s concrete arch for fs l.jpg
Bowman’s Concrete Arch for FS

Network

Interface

Memory

Manager

System

Call

Interface

Executable

File

Formats

Virtual

File

System

Device

Drivers

Logical

File

Systems

Buffer

Cache

File

Quota

Init

Process

Scheduler

IPC