.. _design: Operating-System Design and Implementation ======================================================== 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. Implementation ------------------------------ * At first, operating systems were written in assembly, but now 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 :ref:`ts` for :ref:`sync`. * Using higher level languages allows the code to be written faster. It also makes the OS much easier to port to different hardware platforms.