Beruflich Dokumente
Kultur Dokumente
Ilyas Butt
Lecture 4
1
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.
2
Contd. System Design and Implementation
• Mechanism: they determine how to do something. A general
mechanism is more desirable. Example: CPU protection.
• Policy: determine what will be done. Example: Initial value in the
counter used for CPU protection.
4
Introduction to UNIX and Linux
• 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
5
UNIX/Linux File System
• UNIX has a hierarchical file system structure consisting of a root
directory(denoted as /) 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 (path names)
• OS/assignments/assign1.c (relative path)
• /home/students/Hassan/courses/OS (absolute path)
6
Browsing Directory Structure
7
Contd. Browsing Directory Structure
8
Contd. Browsing Directory Structure
/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.
9
UNIX/Linux Directory Hierarchy
faculty … students
10
UNIX/Linux Directory Hierarchy
• Root directory (/)
• Home/login directory (~, $HOME, $home)
• Current working directory (.)
• Parent of the current working directory (..)
11
Browsing the File Hierarchy
• ls Display contents of a directory
• cd Change directory
• pwd Print working directory
• mkdir Create directory
• rmdir Remove directory
• cp Copy file
• mv Move file
• rm Remove file
12
Contd. Browsing the File Hierarchy
• mkdir temp
Create the ‘temp’ directory in your current directory
• mkdir ~/courses/cs604/programs
Create the ‘programs’ directory in your ~/courses/cs604 directory
• rmkdir ~/courses/cs604/programs
Remove the ‘programs’ directory under your ~/courses/cs604 directory
• cp file1 file2
Copy ‘file1’ in your current directory to ‘file2’ in your current directory
• cp ~/file1 ~/memos/file2
Copy ‘~/file1’ to ‘~/memos/file2’
13
Contd. Browsing the File Hierarchy
• mv file1 file2
Move ‘file1’ in your current directory to ‘file2’ in your current directory
• mv ~/file1 ~/memos/file2
Move ‘~/file1’ to ‘~/memos/file2’
• rm file1
Remove ‘file1’ from your current directory
• rm ~/courses/cs604/programs/test.c
Remove ‘test1’ in the ‘programs’ directory in your ~/courses/cs604
directory
• rm *.o
Remove all .o (i.e., object) files from your current directory
14
Compiling and Running C Programs
• $ gcc program.c
• $ ../a.out
[ program output ]
• $ gcc program.c –o assignment
• $ assignment
[ program output ]
• $ gcc program.c –o assignment -lm
• $ assignment
[ program output ]
15