An operating system , also called OS (from English operating system ), is a compilation of computer programs that manage the system resources of a computer such as main memory , hard drives , input and output devices and make these application programs available. The operating system thus forms the interface between the hardware components and the user's application software. Operating systems usually consist of a kernel (German: Kern), which manages the hardware of the computer, as well as special programs that take on different tasks at startup. These tasks include loading device drivers . Operating systems can be found in almost all types of computers: As real-time operating systems on process computers and embedded systems , on personal computers , tablet computers , smartphones and on larger multiprocessor systems such as B. servers and mainframes .
The tasks of an operating system can be summarized as follows: user communication; Loading, executing, pausing and exiting programs; Management and allocation of processor time; Management of internal storage space for applications; Management and operation of the connected devices; Protective functions e.g. B. through access restrictions . The weighting between these tasks has changed over the course of time, in particular protection functions such as memory protection or limited user rights are given greater importance today than they were in the 1990s. This makes systems generally more robust, reducing e.g. B. the number of program and system crashes and makes the system more stable against attacks from outside, for example by computer viruses .
This article deals with the term “operating system” mainly in the context of “computer systems generally used for information processing”. In addition, operating systems (with possibly specialized functionality) are basically used in almost all devices in which software is operated (such as game computers , mobile phones , navigation systems , machines in the mechanical engineering industry, etc.). Also many control systems (embedded system) z. B. in airplanes, cars, trains, or in satellites, have specialized operating systems.
Definitions and delimitation
An operating system performs two essential tasks that are basically not directly related to one another:
- One task is to provide the application programmer with clean abstractions of the resources (instead of the unsightly hardware). The operating system offers a more easily understandable and more manageable interface to the actual machine and “hides” the complexity of the underlying machine: “The contact person for the programmer is no longer the real machine, but a virtual machine (operating system), which is much simpler is to be understood and programmed. ”The operating system creates abstract objects in order to make the complexity manageable. An example of such an abstraction is the file . This can be in the form of a digital photo , a saved email message, or a website , for example . It is definitely easier to deal with than the details of hard drive storage .
- The other task is to manage the hardware resources: "An operating system must be orderly and controlled allocation of processors, memory units and peripherals among the various programs that compete to make sure." Assigns the operating system and controls the allocation of processors, memory, and Input / output devices and monitors which program is currently using which resources. For example, if there are several jobs for a printer , it must be specified how these are to be processed. This means that several programs can be run simultaneously on a modern operating system. If several users use a computer or a network, measures to manage and protect memory, input / output devices and other operating resources are becoming even more important. Otherwise the users would disturb each other.
The entirety of all programs and files that control all processes in the operation of a computer is called system software . This includes operating systems, but also system-related software such as compilers , interpreters and editors . Application software such as browsers or accounting software use the system software for a proper process. In the literature, the term “operating system” is interpreted differently within the system software.
"The operating system is formed by the programs of a digital computing system which, together with the properties of the computing system, form the basis of the possible operating modes of the digital computing system and, in particular, control and monitor the execution of programs."
For Andrew S. Tanenbaum, the term operating system is essentially limited to the kernel : “Editors, compilers, assemblers , binders and command interpreters are definitely not part of the operating system, even if they are significant and useful.” Many textbooks follow this narrower view. Other authors also include a command language for the operating system: "In addition to managing the hardware [...], modern operating systems offer numerous services, for example for understanding between processes, file and directory systems, data transmission over networks and a command language." Another version of the term, which also includes editors and compilers, for example, goes back in part to older works in the German-speaking area, but can still be found in current literature. The authors of Informatik-Dudens also count translation programs and utility programs among the essential components of an operating system. More recently, the GNU / Linux name dispute can be seen as an example of the delimitation problems.
Regardless of how broad or narrow the term “operating system” is used, the operating system installation media usually contains additional utilities and applications.
Stages of development
The development of computer operating systems ran and continues to run parallel to the development and performance of available hardware: Both lines are mutually dependent and enabled or required further developments on the 'other' side. The development took place partly in small, sometimes in larger jumps:
Systems that process punched cards (also applies to punched tapes) are now a thing of the past (since the early 1970s). However, they are a good starting point for looking at system development: In these spatially relatively large systems there were no external electronic storage media. The programs were available (in machine language ) in the form of stacks of punched cards and were 'read' into the internal memory by the operator using the punched card reader. After the "end-Card" which was the application program started, also via the card reader to read its input data depending on the task (hence the term batch processing , Eng. Batch processing , queued system ) and its results directly to a printer and / or via the card punch had to spend. Upstream and downstream, using electro-mechanical devices (card punch, mixer, sorter), recording, mixing and sorting processes were required. At this point in time, internal processing was already significantly faster than the input / output devices ; Reading a stack of punched cards (box with 2000 cards) took approx. 5–10 minutes, the working memory size of such computers was approx. 16 to 64 kB (for example, see System / 360 ).
These machines did not have a conventional operating system as is common today. Only a control program (resident monitor) was kept in the memory and ensured that everything ran smoothly by handing over control to the programs that were currently being executed. The computer could only run one program at a time.
A further development - Multiprogrammed Batch Systems - could support additional devices ( magnetic tape units , first magnetic disks with e.g. 7.25 MB storage volume), execute several programs at the same time (e.g. in 3 'partitions' ) as well as programs and data on external memories hold. Faster processing was possible because there was no time to read and spend the stacks of cards - and the processors became faster. Mechanisms such as spooling (intermediate output of printer data on magnetic tape with delayed, parallel printing) and the option of offline operation have already been used extensively. However, a program was required that would take on the tasks of I / O management, memory management and, above all, CPU scheduling, etc. From this point on, one could speak of the first operating systems.
The next steps were then the consequences of the respective task areas that were assigned to the systems. The following systems were created and are still in use today: parallel systems , distributed systems , personal computer systems, time-sharing systems , real-time systems and, most recently, personal digital assistants and smartphones .
In the PC sector, the most widely used operating systems are currently the various versions of Microsoft Windows (leading in systems with GUI ), BSD including Apple macOS and GNU / Linux (leading in servers). For special applications (example: industrial control ), experimental operating systems are also used for research and teaching purposes.
In addition to the classic variants, there are also special operating systems for distributed systems in which a distinction is made between the logical system and the physical system (s). The logical computer consists of several physical computer units. Many mainframes, number crunchers and systems from Cray work according to this principle. One of the most popular operating systems in the field of distributed systems is Amoeba .
The tasks of an operating system usually include:
- Management of the system resource main memory.
- Logging of memory usage.
- Reservation and release of memory.
- ( Process ) management
- Monitoring of memory accesses and, if necessary, termination of processes in the event of a protection violation .
- Creation of new processes (either at the request of the operating system or at the request of other already existing processes) and reservation of the memory required by the processes.
- Communication and synchronization of processes with each other ( interprocess communication )
Device and file management
- Efficient allocation of input / output devices and switching units (data channels, control units), avoidance of conflicts
- Initiation, monitoring of the execution, termination of input / output processes.
- Management of the file system . Creation of a namespace with associated memory objects and possibly other objects.
- Rights management
- Independent users / programs must not interfere with one another.
- Hide the complexity of the machine from the user
- Abstraction of the machine concept (after Coy ):
- Real machine = central unit + devices (hardware)
- Abstract machine = real machine + operating system
- User machine = abstract machine + application program
For historical reasons, a device from the point of view of an operating system is anything that is addressed via input / output channels. These are not just devices in the traditional sense, but meanwhile also internal extensions such as graphics cards, network cards and others. The (sub) programs for initializing and controlling these "devices" are collectively referred to as device drivers .
Resource management and abstraction
Equipment or resources are all components made available by the hardware of a computer, i.e. the processor (in multiprocessor systems, the processors), the physical memory and all devices such as hard drives, floppy disks and CD-ROM drives, network and interface adapters and other. The Hardware Compatibility List contains all hardware products that have been tested for functionality in connection with a specific operating system.
Introductory example: timer modules
Modern computer systems have timer modules. In early PCs , e.g. B. the component 8284 from Intel is used. This block must first be initialized. He can then interrupt the processor after a period of time or periodically and cause it to process its own routine. In addition to the initialization, an interrupt routine must be created, the call of which must be programmed in a suitable language (usually assembler ). Since interruptions occur asynchronously, complex relationships with regard to the data structures must be taken into account. Exact knowledge of the component (data sheet), the computer hardware (interrupt handling) and the processor are required. The individual components that are involved in this process are summarized under the term computer architecture.
A modern multi-program operating system uses such a timer module to interrupt the normally single processor periodically (usually in the millisecond range) and possibly to continue with another program (so-called preemptive multitasking ). The initialization and the interrupt routine are implemented by the operating system. Even if only a single processor is available, several programs can be executed; each program receives part of the processor time ( scheduling ). Except for the slower execution time, every program behaves as if it had its own virtual processor .
Each program is also provided with its own virtual timer via a system call, for example alarm . The operating system counts the interruptions of the original timer and informs programs that used the alarm system call. The individual points in time are managed via a queue .
The hardware of the timer is thus hidden from the programs. A system with memory protection allows access to the timer module only via the kernel and only via precisely defined interfaces (usually called system calls that are implemented using special processor commands such as TRAP, BRK, INT). No program can endanger the system, the use of the virtual timer is easy and portable. The user or programmer does not need to worry about the (complex) details.
Virtualization of further resources
Just as processors and timers are virtualized , this is also possible for all other operating resources. Some abstractions are sometimes only implemented as software , others require special hardware.
The details of the external storage systems (hard drives, floppy disks or CD-ROM drives) are hidden via file systems . File names and directories allow easy access, the actually existing block structure and the device differences are completely invisible.
The internal memory ( RAM ) is divided into blocks (tiles) and made available to the relevant programs on request. Any data that still exists will be deleted beforehand. In many systems, a continuous (contiguous) area is made available to each program via virtual memory . This memory is not necessarily physically connected; unused parts can even be swapped out to the external memory. The virtual memory of a program can even be larger than the real memory.
The details of network access are hidden by adding a protocol stack to the actual hardware (network card) . The network software allows any number of virtual channels . At the socket level (programming) the network card is completely invisible, the network has many new capabilities (bidirectional, reliable data streams, addressing, routing).
A screen output is generally described as a graphical user interface (GUI, abbreviation for Graphical User Interface ) if it goes beyond a prompt . With the right graphics cards and screens, it is possible to display geometric objects (lines, circles, ellipses, but also font attributes and colors) on the screen, from which more complex geometric elements such as buttons, menus, etc., can be used to create user interfaces for easy control of programs .
The graphics card as hardware is completely hidden from the programmer and user.
First operating systems (until 1980)
The first computers managed without a real operating system because only a single program could be loaded in batch mode and the supported hardware was still very manageable. The operating system forerunner is the resident monitor invented in 1956 in the form of the GM-NAA I / O at General Motors for the IBM 704 , a piece of software that automatically started the next job after a batch job was completed. In 1959 the SHARE Operating System (SOS) emerged, which already had rudimentary resource management. Its successor IBSYS already had a simple shell with command language.
In 1961, the Compatible Timesharing System (CTSS) for the IBM 7094 at MIT was the first operating system for multi-user operation. This made it possible for several users to use the computer system virtually simultaneously using connected terminals . A large number of programs loaded at the same time made it necessary to delimit the memory areas they occupied. As a solution, originated in 1956 at the Technical University of Berlin the Virtual memory and was the mid-1960s implemented operating systems Mainframe first time.
At that time, the hardware manufacturer usually supplied the operating system that only ran on a certain model series, even only on a certain system, so that programs could neither be ported between different computers nor across different generations. With the introduction of the System / 360 series from IBM in 1964, IBM introduced the OS / 360 operating system in various versions (OS / 360 for systems based purely on punched cards, TOS / 360 for machines with tape drives, DOS / 360 for those with hard disks). It was the first operating system that was used across model series.
From 1963, Multics was developed by AT&T in collaboration with MIT , General Electric and Bell Laboratories (Bell Labs) , but it was only in use from 1969 to 2000. Multics was programmed in PL / I. Inspired by the work on Multics, a group led by Ken Thompson and Dennis Ritchie at Bell Labs started developing Unix in 1969 . Between 1970 and 1972, RSX-15 and RSX-11 were early forerunners of today's Microsoft Windows NT . Unix was re-implemented in the higher programming language C in the years 1972–1974 with the aim of portability, with the exception of a few parts , so that it could run on the then new PDP-11 . As a result, UNIX developed into a whole family of systems for various hardware platforms.
The first PCs such as the Altair 8800 from 1975 initially had no operating system. Therefore, all actions had to be entered in a pure machine code . The Altair 8800 received its first operating system in the form of a BASIC interpreter. This represented both a programming environment and the general interface between the user and the hardware (which this interpreter controlled directly). It was both a runtime environment and a user interface; Using certain commands, the user could, for example, load and save data and execute programs. In 1974, Gary Kildall invented CP / M , which is considered the first universal PC operating system. Due to its modular design (the platform-independent kernel BDOS was based on a hardware driver layer called BIOS) it could be ported to numerous incompatible PC platforms with reasonable effort. A programming environment now (mostly) no longer controlled the hardware directly, but used the interfaces of the operating system. As a result, the programming environment was no longer only able to run on specific hardware, but on numerous PCs.
Purely text-based user interfaces were no longer sufficient for the emerging computer graphics . The Xerox Alto , introduced in 1973, was the first computer system with an object-oriented operating system and a graphical user interface, which made this computer suitable for desktop publishing and represented a great step forward in terms of usability.
The C64, a home computer from the 1980s
In the 1980s, home computers became popular. In addition to performing useful tasks, these could also perform games. The hardware consisted of an 8-bit processor with up to 64 KiB of RAM, a keyboard and a monitor or RF output. One of the most popular of these computers was the Commodore C64 with the microprocessor 6510 (a variant of the 6502 ). This computer had a system kernel in its own 8 KiB ROM module called Kernal with a BIOS ( Basic Input / Output System ), which initialized the devices screen, keyboard, serial IEC interface for floppy disk drives or printer, and cassette interface a channel concept partially abstracted. The system could be operated and programmed via a separate 8 KiB-ROM- BASIC , which was based on the functions of the BIOS. The operating system of this computer can be seen as a good hardware abstraction at the level of the BASIC interpreter. Of course, there is no kernel, memory or other hardware protection. Many programs, especially games, ignored the BIOS and accessed the corresponding hardware directly.
|Basic program||Machine language program|
|8k ROM BASIC PRINT #, FOR|
|8k ROM-BIOS (device driver) / Kernal / JSR||Machine language program|
|Hardware (processor (s), memory, devices)|
Abstraction layers in the operating system of the home computer C64
Apple's graphical user interface (GUI)
Xerox developed the Smalltalk development system in the Palo Alto Research Center ( PARC ) (Xerox developed the first computers with a graphical user interface with ALTO (1973) and Star (1981)). The company Apple offered to Xerox to buy the technology; But since PARC was primarily a research center, there was no interest in sales and marketing. After Apple CEO Steve Jobs offered Xerox shares in Apple, he was allowed to show some Apple developers the Xerox demos. After that, it was definitely clear to the Apple developers that the graphical user interface belonged to the future, and Apple began to develop its own graphical user interface.
Many features and principles of every modern graphical user interface for computers as we know them today are original Apple developments ( pull-down menus , the desktop metaphor , drag and drop , double-click). The claim that Apple illegally copied its Xerox GUI is a constant issue; however, there are serious differences between an Alto from Xerox and the Lisa / Macintosh .
The Mac OS successor
In the mid-1990s, Apple was in a deep crisis; it seemed on the verge of ruin. A pressing problem was that Apple's Mac OS operating system was considered obsolete, which is why Apple began looking for alternatives. After the failure of the most important project for a modern operating system with the code name Copland , Apple was forced to look for a successor that could be used for its own purposes. At first it was assumed that Apple would take over the company Be , with its BeOS operating system that also runs on Macs . The takeover negotiations failed in November 1996, however, as the former Apple manager and boss of Be Jean-Louis Gassée demanded 300 million US dollars and a seat on the board in the event of a takeover. Since Gil Amelio had promised to announce the future strategy for Mac OS by the Macworld Expo in January 1997, an alternative had to be found quickly. Surprisingly, Apple took over the NeXT company from the killed Apple founder Steve Jobs in December 1996 for 400 million US dollars, together with the NeXTStep or OPENSTEP operating system , which was to become Apple's basis for the subsequent new generation of operating systems. Under the code name Rhapsody it was further developed to a UNIX for home and office computers with the name "Mac OS X". From version 10.5 it is compliant with the Single UNIX Specification ; later it was simply called "OS X", now "macOS".
Disk Operating System (DOS)
The origin of DOS lies in CP / M and was used by Digital Research in 1974 . The porting to the Motorola 68000 , called CP / M-68k, not a great commercial success in itself, became the basis for TOS , the operating system of the Atari ST . MS-DOS version 1.0 appeared in 1981 as a replica of CP / M and was used for IBM PCs . It is based on the BIOS and provides file system operations.
The first IBM PCs were constructed very similarly to the C64. They also had a built-in BIOS for initializing and abstracting the hardware. There was even a BASIC interpreter. In contrast to the BIOS, however, BASIC was not used in the compatible computers of other companies.
The PC could address up to 1 MiB of memory with its Intel 8088 processor (16-bit register ) , but the first models were only equipped with 64 KiB. Floppy disk drives replaced the old cassette recorders as storage media. They allow multiple writing and reading of individually addressable 512-byte blocks. Usage is simplified by a Disk Operating System (DOS) , which provides an abstract file concept. Blocks can be combined into clusters of any size ( allocation unit - smallest unit that can be addressed by the operating system). Files (logical information units) occupy one or more of these (chained) clusters. A floppy disk can contain many files that can be accessed by name.
No memory protection was implemented on the first PCs , so the programs could directly access BIOS and even the hardware without using DOS. Only later PCs were equipped with the Intel 80286 processor, which made memory protection possible. MS-DOS also did not provide a sufficient abstraction for all purposes. Only one program could be started at the same time, the memory management was rather rudimentary. Part of the hardware was not supported and had to be addressed directly by programs, which meant that, for example, the sound card had to be reconfigured for each game. The performance of some routines, especially for text output, could be improved. Many programs therefore ignored the operating system and wrote e.g. B. directly into the screen memory . MS-DOS was delivered with a set of programs (so-called tools) and a command interpreter (COMMAND.COM).
|User program (COMMAND.COM, WORDSTAR)|
|MSDOS (file system) INT||User program (COMMAND.COM, WORDSTAR)|
|BIOS (device driver) INT||User program (COMMAND.COM, WORDSTAR)|
|Hardware (processor (s), memory, devices)|
Abstraction layers of a PC under DOS
In 1983, Microsoft began developing a graphic operating system extension ("graphics attachment") for MS-DOS called Windows. The MS-DOS and BIOS design of the PCs did not allow any further development in the direction of modern server operating systems. Microsoft began developing such an operating system in the early 1990s, which was initially planned as a further development of OS / 2 (in whose development Microsoft was involved between 1987 and 1991): Windows NT 3.1 (July 1993). Microsoft released Windows 95 for the consumer market on August 15, 1995; it is based on MS-DOS. This “consumer branch” was completed with the release of Windows Millennium (August / September 2000).
Structure of Windows NT: An abstraction layer, the Hardware Abstraction Layer (HAL) , on which the kernel is based, was placed over the hardware . Various device drivers were implemented as kernel modules and, like the kernel, ran in privileged kernel mode . They provided options for I / O management, file system, network, security mechanisms, virtual memory, etc. System Services (System Services) supplemented the concept; like their Unix counterparts, the daemons , they were executed in the form of processes in user mode .
|OS / 2
|Win32 applications||Other DLLs||DOS
|OS / 2
|Win32 subsystem (kernel32.dll, user32.dll, gdi32.dll)||Win32 subsystem (kernel32.dll, user32.dll, gdi32.dll)||Win32 subsystem (kernel32.dll, user32.dll, gdi32.dll)||POSIX
|System services||Kernel mode|
|Input / output manager (file system, network)||Object Manager / Security Resource Manager / Process Manager
Local Procedure Call Manager / Virtual Memory Manager
|Device driver||Hardware abstraction layer (HAL)||Graphics driver|
|Hardware (processor (s), memory, devices)|
Abstraction layers under Windows NT (somewhat simplified)
The interfaces of existing systems were then simulated using so-called personalities , initially for Microsoft's own new Win32 system, but also for OS / 2 (without graphics) and POSIX .1, a standard that was actually supposed to unify Unix systems. Personalities ran like user programs in unprivileged user mode . The DOS subsystem was implemented in the form of processes, each of which represented a complete PC with MS-DOS as a virtual machine; A special version of Windows 3.1, Windows-on-Windows , could also run Win16 programs on it. Windows-on-Windows faded in the windows of the Win16 programs in the Win32 subsystem, which managed the graphics output. The system therefore allowed the execution of programs for both MS-DOS and the older Windows operating systems, albeit under complete control of the operating system. This only applied to the implementation for Intel 80386 processors and their successors.
Programs that directly access the hardware were left out. Many games in particular could therefore not be run under Windows NT, at least until the introduction of WinG , which was later renamed DirectX . Without the possibility of direct access to the graphics hardware or drivers, the programming of powerful action games was initially limited to the older Windows versions.
Windows NT appeared in versions 3.1, 3.5, 3.51 and 4.0. Windows 2000 was a further development of Windows NT. Windows XP , Windows Server 2003 , Windows Vista , Windows Server 2008 , Windows 7 , Windows Server 2012 , Windows 8 and Windows 10 are also based on the structure of Windows NT.
Linux (GNU / Linux)
It runs as a portable operating system on various computer architectures, but was initially developed for PCs with an Intel 80386 processor. The BIOS used in these computers is only used to initialize the hardware and start the bootloader , since the routines of the BIOS are unsuitable for multitasking systems such as Linux. This occurs because, in particular, the processor is loaded by waiting instead by a - clever interrupt management - quite present in the hardware (interrupt handling) to events (events) to respond. Linux therefore uses its own device drivers after starting the system.
It distributes the processor time to different programs (processes). Each of these processes is given its own protected memory area and can only access the device drivers and the operating system via system calls.
The processes run in user mode (user mode) , while the kernel in kernel mode (kernel mode) works. The privileges in user mode are very limited. Direct access is only permitted very rarely and under precisely controlled conditions. This has the advantage that no program z. B. can cause the system to crash due to an error .
|User programs (e.g. word processing, spreadsheet or browser)||User mode|
|Complex Libraries ( GLib , GTK + , Qt , SDL , EFL )||User programs|
|Complex Libraries ( GLib , kde)||Simple Libraries sin, opendbm||User programs|
|C standard library : glibc open, exec, sbrk, socket, fopen, calloc|
|System calls TRAP, CALL, BRK, INT (depending on the hardware)||Kernel mode|
|Kernel (device drivers, processes, network, file system)|
|Hardware (processor (s), memory, devices)|
Almost complete abstraction under Linux
StatCounter analyzes the distribution of end-user operating systems on the basis of access statistics from various websites. Windows was at the top for many years until it was overtaken by Android in 2017, according to StatCounter .
According to StatCounter, the most widely used end-user operating systems are:
|other operating systems||3.03%||2.06%|
- Albrecht Achilles: Operating Systems. A compact introduction to Linux. Springer: Berlin, Heidelberg, 2006. ISBN 978-3-540-23805-8 .
- Uwe Baumgarten, Hans-Jürgen Siegert: Operating systems. An introduction. 6th, revised, updated and expanded edition, Oldenbourg Verlag: Munich, Vienna, 2007.
- Erich Ehses, Lutz Köhler, Petra Riemer, Horst Stenzel, Frank Victor: System programming in UNIX / Linux. Basic operating system concepts and practice-oriented applications. Vieweg + Teubner: Wiesbaden, 2012. ISBN 978-3-8348-1418-0 .
- Eduard Glatz: Operating Systems. Basics, concepts, system programming. 1st edition. dpunkt: Heidelberg, 2006. ISBN 3-89864-355-7 .
- Sibsankar Haldar, Alex A. Aravind: Operating Systems. Delhi (et al.): Pearson Education, 2009. ISBN 978-81-317-1548-2 .
- Helmut Herold, Bruno Lurz, Jürgen Wohlrab, Matthias Hopf: Basics of computer science. Chapter 9: Operating Systems. 3rd updated edition, Pearson: Hellbergmoos, 2017, pp. 433–462. ISBN 978-3-86894-316-0 .
- Peter Mandl: Basic course operating systems. Architectures, resource management, synchronization, process communication, virtualization. 4th edition, Springer Vieweg: Wiesbaden, 2014. ISBN 978-3-658-06217-0 .
- Abraham Silberschatz, Peter Baer Galvin, Greg Gagne: Operating System Concepts. Ninth Edition, John Wiley & Sons: Hoboken, 2013. ISBN 978-1-118-06333-0 .
Andrew S. Tanenbaum , Herbert Bos: Modern Operating Systems. 4th updated edition. Pearson: Hallbergmoos, 2016. ISBN 978-3-86894-270-5 .
- Older edition cited: Andrew S. Tanenbaum: Modern Operating Systems. 3rd updated edition, Pearson Studies, 2009.
- English Original Edition: Modern Operating Systems. 4th Edition, Pearson, 2016.
- Link catalog on the topic of operating systems at curlie.org (formerly DMOZ )
- Information on all operating systems
- Lowlevel - Wiki and forum for operating system development (online)
- Calculation from https://de.statista.com - accessed on February 02, 2020
- Andrew S. Tanenbaum: Modern Operating Systems . Pearson Studies, 3rd, updated edition , ISBN 978-3-8273-7342-7
- Andrew S. Tanenbaum: Modern Operating Systems . 3rd, updated edition, Pearson, 2009, p. 33.
- Helmut Herold, Bruno Lurz, Jürgen Wohlrab, Matthias Hopf: Fundamentals of Computer Science. 3rd updated edition, Pearson, 2017, p. 438.
- Andrew S. Tanenbaum: Modern Operating Systems . 3rd, updated edition, Pearson, 2009, p. 34.
- Andrew S. Tanenbaum: Modern Operating Systems . 3rd updated edition, Pearson, 2009, pp. 35-36.
- Peter Mandl: Basic course operating systems. 4th ed., Springer, 2014, p. 2.
- Quoted from Uwe Baumgarten, Hans-Jürgen Siegert: Operating systems. An introduction. 6th, revised, updated and expanded edition, Oldenbourg Verlag: Munich, Vienna, 2007, p. 3.
- Tanenbaum: Modern Operating Systems . 3rd edition 2009, p. 79.
- Anthony Ralston, Edwin D. Reilly: Encyclopaedia of Computer Science. New York: Van Nostrand Reinhold, 3rd edition 1993, p. 1290. Original English quote: “Besides managing the hardware resources […], modern operating systems also provide numerous services, such as inter-process communication, file and directory systems, data transfer over networks, and a command language ".
- Volker Claus, Andreas Schwill: Duden Informatik AZ. Technical lexicon for studies, training and work. Mannheim: Bibliographisches Institut & FA Brockhaus, 4th edition, 2006, ISBN 3-411-05234-1 .
- SOS Reference Manual, 1959.
- Jack Harper, IBM 7090/94 IBSYS Operating System, the 2,001th
- Fernando J. Corbató, Marjorie Merwin Daggett, Robert C. Daley: An Experimental Time-Sharing System, 1962.
- E. Jessen: Origin of the Virtual Memory Concept. IEEE Annals of the History of Computing. Volume 26. 4/2004, p. 71 ff.
- Computer Classics, Jörg and Kerstin Allner, Data Becker Verlag, ISBN 3-8158-2339-0 , p. 27
- blinkenlights.com , accessed October 23, 2017
- Zenon W. Pylyshyn, Liam Bannon: Perspectives on the Computer Revolution . Intellect Books, January 1989, ISBN 978-0-89391-369-4 , pp. 262, 263 etc. Compare Alto and Star with detailed specifications.
- Android displaces Windows from first place in terms of market share. Pro-Linux , April 4, 2017, accessed April 4, 2017 .
- Operating System Market Share Worldwide. StatCounter, September 5, 2018, accessed September 5, 2018 .