1.7. Operating-System Design and Implementation

1.7.1. Design Goals

  • At the highest level, system design is dominated by the choice of hardware and system type.

  • Beyond this level, the requirements can be divided into two groups: user goals, and system goals.

    • User goals include convenience, reliability, security, and speed.
    • System goals include ease of design, implementation, maintenance, flexibility, and efficiency.

1.7.2. Implementation

  • At first, operating systems were written in assembly, but now a days C/C++ is the language commonly used
  • Small blocks of assembly code are still needed, especially related to some low level I/O functions in device drivers, turning interrupts on and off and the Test and Set Instruction for Synchronization Facilities.
  • Using higher level languages allow code to be written faster, is easier to read, and can be debugged easier. It also makes the OS much easier to port to different hardware platforms.