Operating System Design Approaches

1. Simple Structure

  • some operating systems do not have well defined structures. Often these started as simple systems and grew beyond their original scope.
  • MS-DOS
    • written to provide the most functionality in the least space
      • not divided into modules
      • although MS-DOS has some structure, its interfaces and levels of functionality are not well separated.
1.1. UNIX System Structure
  • UNIX: limited by hardware functionality, the original UNIX operating system has limited structure.
  • The Unix OS consists of two separated system parts
    • system programs
    • the kernel (everything below the system call interface and above the physical hardware)
      • provide the file system. CPU scheduling, memory management, and other operating system functions
      • A large number of functions for one level
2. Layered Approach
  • The operating system  is divided into a number of layers (levels), each build on top of low layers. 
  • The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface
  • With modularity, layers are selected such that each users functions (operations) and services of only lower-level layers
  • Simplifies debugging and system verification
3. Modular Approach
  • Modular kernel
    • the kernel has a set of core components
    • dynamic links in additional services either during boot time or during run-time
    • common in modern implementations of Unix such as Linux and Solaris
  • Moves as much as possible from kernel into “user space”
  • Communication takes space between users modules using “message passing”

  • Benefits
    • easier to extend
    • more reliable (less code is running in kernel mode)
    • convenient for distributed architectures
    • security
  • Many modern OS are designed as microkernels
    • apple MAC OS (based on Mach OS)
    • Many SmartPhone OS
      • Android (L4 Microkernel family)
      • IPhone OS (based on Mach)

Leave a Reply