Module A:
The FreeBSD System
Design Principles
Programmer Interface
User Interface
Process Management
Memory Management
File System
I/O System
Interprocess Communication
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
First developed in 1969 by Ken Thompson and Dennis Ritchie
of the Research Group at Bell Laboratories; incorporated
features of other operating systems, especially MULTICS.
The third version was written in C, which was developed at
Bell Labs specifically to support UNIX.
The most influential of the non-Bell Labs and non-AT&T UNIX
development groups — University of California at Berkeley
(Berkeley Software Distributions).
4BSD UNIX resulted from DARPA funding to develop a standard
UNIX system for government use.
Developed for the VAX, 4.3BSD is one of the most influential
versions, and has been ported to many other platforms.
Several standardization projects seek to consolidate the
variant flavors of UNIX leading to one programming interface
to UNIX.
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
History of UNIX Versions
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
Early Advantages of UNIX
Written in a high-level language.
Distributed in source form.
Provided powerful operating-system primitives on an
inexpensive platform.
Small size, modular, clean design.
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
UNIX Design Principles
Designed to be a time-sharing system.
Has a simple standard user interface (shell) that can be
File system with multilevel tree-structured directories.
Files are supported by the kernel as unstructured
sequences of bytes.
Supports multiple processes; a process can easily create
new processes.
High priority given to making system interactive, and
providing facilities for program development.
Operating System Concepts
Silberschatz, Galvin and Gagne 2002
Programmer Interface
Like most computer systems, UNIX consists of two separable parts:
Kernel: everything below the system-call interface and
above the physical hardware.
Provides file system, CPU scheduling, memory
management, and other OS functions through system calls.
Systems programs: use the kernel-supported system
calls to provide useful functions, such as compilation and
file manipulation.
Operating System Concepts
Silberschatz, Galvin and Gagne 2002