- The first problem in designing a system is to define goals and specifications. At the highest level, the design of the system will be affected by the choice of hardware and the type of system: batch, time shared, single user, multiuser, distributed, real time, or general purpose.
- The requirements can, however, be divided into two basic groups: user goals and system goals.
- Users desire certain obvious properties in a system: The system should be convenient to use, easy to learn and to use, reliable, safe, and fast.
- A similar set of requirements can be defined by those people who must design, create, maintain, and operate the system: The system should be easy to design, implement, and maintain; it should be flexible, reliable, error free, and efficient.
- There is, in short, no unique solution to the problem of defining the requirements for an OS. The wide range of systems in existence shows that different requirements can result in a large variety of solutions for different environments.
- For example, the requirements for VxWorks, a realtime OS for embedded systems, must have been substantially different from those for MVS, a large multiuser, multiaccess OS for IBM mainframes.