Untitled

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 26

Lecture 4

Agenda for Today


 Review of previous lecture
 Operating system structures

 Operating system design and


implementation
 UNIX/Linux directory structure

 Browsing UNIX/Linux directory structure

 Useful UNIX/Linux commands

 Recap of the lecture


UNIX System Structure
Layered Approach …
Layered Approach …
 Modularity
 Each layer uses functions and services of only
lower layers
 Simplifies debugging and system verification.
 The major difficulty with layered approach is
careful definition of layers, because a layer can
only use the layers below it
 Less efficient than other approaches
Microkernel
 Structures the operating system by
removing all non-essential components
from the kernel and implementing them as
system and user level programs
 Smaller kernel
 Main function is to provide a
communication facility between client
programs and the various services that are
also running in the user space.
Microkernel …
 Easier to extend the OS—new services are added to user
space and consequently do not require modification of the
kernel and/or its recompilation
 Easier to maintain operating system code (enhancement,
debugging, etc.)
 OS is easier to port from one hardware to another
 More security and reliability
 Mach, MacOS X Server, QNX, OS/2, and Windows NT
Windows NT Client-Server
Structure
Virtual Machines
 CPU scheduling and virtual memory techniques
used to emulate hardware of the underlying
machine, on which user can install an operating
system that the virtual machine supports
 On a time-sharing system with virtual machine
support, users may be working on different
operating systems
 Pioneered by IBM VM operating system that ran
CMS, a single-user interactive operating system
Virtual Machines …
 Difficult to implement.
 System development done without disrupting
normal system operation.
Virtual Machines …

Non Virtual Machine Virtual Machine


VMWare on Windows
Java Virtual Machine
System Design and Implementation
 Design Goals
 User: operating system should be convenient to
use, easy to learn, reliable, safe, and fast.
 System designer and administrator: operating
system should be easy to design, implement, and
maintain, as well as flexible, reliable, error-free,
and efficient.
System Design and Implementation
 Mechanism: determine how to do something
 Policy: determine what will be done
 Separation of mechanism and policy is
important for flexibility.
System Design and Implementation
Implementation in:
 Assembly language
 Higher level languages:
 Easier to code
 Compact code
 Easier to port
 Written by Dennis Ritchie and Ken Thomsom in at Bell
Labs in 1969
 Initially written in assembly language and a high-level
language called B. Later converted from B to C language.
 Linux written by Linus Torvalds (an undergraduate student
at the Univ. of Helsinki, Finland) in 1991.
 Most popular operating systems
 Internet runs on UNIX and Linux
 UNIX has a hierarchical file system structure
consisting of a root directory with other
directories and files hanging under it
 In a command-line user interface, typed
commands are used to navigate the system
 Directories and files are specified by filenames
 cs604/assignments/assign1.c
 /home/students/haroon/courses/cs604
/ The root directory is the directory that
contains all other directories. When a
directory structure is displayed as a tree,
the root directory is at the top.
/bin This directory holds binary executable files
that are essential for correct operation of
the system
/boot This directory includes essential system
boot files including the kernel image .
/dev This directory contains the devices
available to on the machine

/etc Linux uses this directory to store system


configuration files
/home This is where every user on a Linux
system has a personal directory
/lib Shared libraries and kernel modules are
stored in this directory
/root The home directory for the superuser

/sbin Utilities used for system administration


(halt, ifconfig, fdisk, etc.) are stored in
this directory
/tmp Used for storing temporary files. Similar
to C:\Windows\Temp.
/usr Typically a shareable, read-only
directory. Contains user
applications and supporting files
for those applications.
/var This directory contains variable
data files such as logs (/var/log),
mail (/var/mail), and spools
(/var/spool) among other things.
/

bin dev home … sbin usr

faculty … students
students

ali … nadeem … munir

personal … courses

cs401 … cs604
Recap
 Review of previous lecture
 Operating system structures

 Operating system design and


implementation
 UNIX/Linux directory structure

 Recap of the lecture


Operating Systems

Lecture 4

You might also like