An operating system is a software that controls the hardware of a computer, interfacing the hardware and the application software. It is the operating system's task to control all the operations the hardware executes, and to control the execution of other software.
There are actually more things an operating system has to do. In general, operating systems should:
- Be able to control and manage the hardware of the computer. Using the drivers, the operating system will be able to command hardware to do various operations, or get specific information from it.
- Load, execute and monitor the execution of a program. The operating system must be able to load stored programs and execute them. Their executions should be permanently monitored, in order to prevent the program from interfering with other running programs or so that it can be forced to stop when it does not respond anymore.
- Provide a minimal number of basic functions. These are more commonly called system calls. A system call is a normal function that calls the hardware directly. System calls are the building blocks of the operating system and, later, of its programs.
In order to achieve these tasks, operating systems include a number of components:
- The kernel. This is the foundation of the operating system. It is the part of an operating system that communicates directly with the hardware and provides the very basis on which the operating system functions.
- The memory manager. This is the component responsible for managing the available memory. Various parts of an operating system will require their own share of memory. For example, each driver will need some memory to do the operations it requires. The memory that is not used by the operating system can be used by other programs. Most modern operating systems choose to manage the memory each running program uses, so that they don't run into each other's space and they don't have access to all parts of the memory. This is known as memory protection. Older operating systems, or embedded operating systems which will certainly carry only one operation at a time, choose a simpler memory management scheme, where all they need to do is make sure that the running program does not run into the kernel's own memory space.
- The process scheduler. In a multi-tasking operating system, this component schedules the way each running process (program) is handled by the processor.
- Drivers and I/O systems. These parts are the ones that ensure the interface with the hardware and users. The drivers are used by the operating system in order to control the hardware directly. I/O systems allow interaction between programs, or between the user and the programs.
Major operating systems
At this moment, there are two major operating systems in general use. These are Microsoft Windows and the various Unix or Unix-like systems, like Sun's Solaris, Apple's MacOS X, but also FreeBSD, NetBSD, OpenBSD or Linux. Various other operating systems exist and are used, but usually for more specific purposes.