The design goals of operating systems are :
- POSIX Compliance : POSIX (Portable operating system interface bases on Unix) is an IEEE standard 1003.1-1988. This standard helps in bringing comptibility among the various OSes.
- Extensibility : It is the ability of an OS to grow and change over time, according to the changing requirements of the user and the market. In order to build an extensible OS, the principle of separation is used. The OS is divided into mainly two parts. The base OS (remains unchanged) provides the most essential capabilities such as message passing, interrupt processing, process scheduling etc. and other part which is enhanced, provides functionalities like file system, application programming support etc. In addition OS code should possess the following traits :
- Modular Structure
- Object Oriented Design
- Loadable drivers
- Portability : It is degree of ease with which the OS can move from one family of processors to another family of processors.
- Reliability : It depends on two issues — robustness and protection of user data. If an operating system can effectively handle any error or exception then the OS is termed as robust.
- Compatibility : An OS is called software compatible if it supports the execution of software written for other OS or earlier version of current OS. Compatibility is of two types :
- Source code compatibility.
- Binary Compatibility.
- Performance : Performance is rated in terms of :
- How quickly page faults and system calls are processed.
- How fat inter-process communication takes place.
- Ease of loading and unloading of system components at run time.