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 allows the code to be written faster. It also makes the OS much easier to port to different hardware platforms.