An operating system is a set of system-related programs or modules for managing the physical resources of the system, loading and executing the programs, and the computer- user interface. Operating systems are modular and structured in layers. The lowest layer is a set of customization modules for the hardware and is often referred to as the Hardware Abstraction Layer( HAL).
In modern operating systems, the operating system kernel sits on top of the Hardware Abstraction Layer, which implements the basic functions of the operating system, such as basic processor management with time sharing, the file system, and so on.
The operating system kernel is usually written in assembly language. On the functions of the core then modules for the implementation of the application-oriented services set up. They provide comfortable programming interfaces( API) for the next layer. For example, multicasting, virtual memory management including paging and other procedures, and logical control of peripheral devices including network adapters and protocol stacks are implemented here.
The organization programs provide for the flow control of all procedures. These include memory and processor management, device monitoring and data transfer, peripheral device control, database management and workstation control.
The translation programs translate programming languages into programs that can be executed on the computer, such as Assembler, Basic interpreter, Pascal, Cobol, Fortran, etc. The utilities include sorting programs, programs for managing libraries and external memories, and test programs for programming. The outer layer of the operating system is formed by the user modules or system services such as the operating system interface or the modules with runtime environments for application programs.
Operating systems can be classified according to the kind of processing and also according to the number of users. With the form of use one differentiates between the batch processing, the dialogue operation, the real time processing and the distributed processing. According to the number of users, there are the single-user and multi-user systems. Furthermore, operating systems support multitasking, virtualization of all resources, virtual memory management, graphical user interfaces and integrated network services. There are also special operating systems for supercomputers, workstations, computers, desktops and for mobile devices.