2 KiB
Operating System
Operating System (OS) is normally a hugely complex program that's typically installed before any other program and serves as a platform for running other programs as well as managing resources (CPU usage, RAM, files, network, ...) and offering services and interfaces for humans and programs.
There is a nice CC0 wiki for OS development at https://wiki.osdev.org/.
From programmer's point of view a serious OS is one of the most difficult pieces of software one can pursue to develop. The task involves an enormous amount of low-level programming, development of own tools from scratch and requires deep and detailed knowledge of all components of a computer, of established standards as well as many theoretical subjects such as compiler design.
An OS, as a software, consists of two main parts:
- kernel: The base/core of the system, running in the most privileged mode, offering an environment for user applications.
- userland (applications): The set of programs running on top of the kernel. These run in lower-privileged mode and use the services offered by the kernel via so called system calls.
For example in GNU/Linux, Linux is the kernel and GNU is the userland.
Attributes/Features
TODO
Notable Operating Systems
Below are some of the most notable OSes.
- Android
- BSD systems such as OpenBSD and freeBSD: Unix-like OSes
- Collapse OS
- DOS, FreeDOS
- GNU/Linux systems encompassing many distributions
- Inferno: OS in the style of Plan 9
- MacOS
- Plan 9: research OS, continuing the ideas of Unix
- ReactOS
- Replicant
- Solaris
- TempleOS
- Unix
- Windows: very bad proprietary capitalist OS