Operating system Review 1 An operating system (OS) is software, consisting of programs and data,that runs on computers and manages computer hardware resources and providescommon services for efficient execution of various application software. Features of operating system: • process management; • interrupts processing; • memory management; • file system; • device drivers; • networking (TCP/IP, UDP); • security (Process/Memory protection); • I/O (interfaces support). There are many types of an operating systems. All of this is divided toUNIX-like systems, and non-UNIX-like systems. UNIX-like systems are supportthe POSIX standards. POSIX (Portable Operating System Interface for Unix) – is the name of afamily of related standards specified by the IEEE to define the application pro-gramming interface (API), along with shell and utilities interfaces for softwarecompatible with variants of the Unix operating system, although the standard canapply to any operating system. POSIX allows making portable software, which canbe executed on different hardware platforms and UNIX-like operating systems. Examples of UNIX-like systems: UNIX; BSD; GNU/Linux; Solaris; OpenSolaris; FreeBSD; OpenBSD; NetBSD; Mac OS X; QNX. Examples of non-UNIX-like systems: DOS; Microsoft Windows; ReactOS; Symbian OS; OS/2; MenuetOS; KolibriOS.
The kernel is the central component of most computer operating systems; itis a bridge between applications and the actual data processing done at the hard-ware level. Kernel facilities: • process management – scheduling, creation and termination processes; • memory management – sharing memory, virtual addressing, file system; • device management – device drivers, interrupt processing, plug and play; • system calls – software-simulated interrupts, call gates, system call in- structions There is four main types of OS kernel: 1 Monolithic kernel – all OS services run along with the main kernelthread, thus also residing in the same memory area. This is an oldest and most pre-valent type of kernel. It demands rebuilding after each update of hardware. So, amodern monolithic kernel supports loadable modules, which allows working withhardware devices without rebuilding. Examples: BSD Kernel (BSD), Linux Kernel (GNU/Linux), DOS Kernel(DOS, Windows 3.1, 95, 98, Me), Solaris Kernel (Solaris, OpenSolaris). 2 Microkernel – simple abstraction over the hardware, with a set of primi-tives or system calls to implement minimal OS services. In general, this type ofkernel is used in real-time operating systems, where high processing speed isneeded. Nanokernel and picokernel are microkernel too. Examples: QNX, Match(GNU/Hurd), Mac OS X, Symbian OS, WindowsCE Kernel. 3 Hybrid kernel – compromise between the monolithic and microkernel de-signs. Driver in hybrid kernel is an application, which executes in kernel addressspace. But it is not a part of kernel. Examples: Windows NT Kernel (Windows NT, 2000, XP, Vista, 7),ReactOS Kernel, Plan9, NetWare, Haiku. 4 Exokernel – no abstract hardware into theoretical models. It allocatesphysical hardware resources to different programs. Examples: XOmB, Nemesis, MIT Exokernel.