Operating System (OS)
In short: The fundamental software that manages hardware and provides programs with a unified interface — Operating System, OS for short.
In more detail: Handles central tasks like process management (which program gets computing time when), memory management, the file system and device drivers. Well-known examples: Windows, Linux and macOS from Apple. Without an operating system, every application would have to communicate directly with the hardware.
In Depth
The kernel as the core
The core of every operating system is the kernel — the part that talks directly to the hardware and offers the rest of the programs a unified, abstracted interface (e.g. “open file” instead of “read sector X on drive Y”). Programs run in “user space” with restricted rights, while the kernel itself runs in “kernel space” with full hardware access — this separation prevents a faulty or malicious program from destabilising the whole system. If a normal program wants to do something that needs hardware access (reading a file, sending a network packet), it has to make a “system call” (syscall) to the kernel, instead of accessing the hardware directly itself.
Multitasking and virtual memory
Central tasks in detail:
- Multitasking: running several processes quasi-simultaneously, by splitting CPU time into small time slices (often just a few milliseconds) and switching between processes at lightning speed — to humans this looks like real simultaneity, even though a single CPU core actually only ever executes one process at a time (modern multi-core CPUs additionally run genuine parallelism across several cores).
- Virtual memory: every process appears to have the entire main memory to itself, with its own address space starting at 0 — in reality, the operating system manages allocation, isolation between processes, and, when needed, swapping to disk when physical RAM runs low.
- File systems: define how data is physically organised on the storage medium — NTFS on Windows, ext4 (and successors like btrfs) on many Linux distributions, APFS on macOS.
Scheduler and prioritisation
The part of the kernel that decides which process gets CPU time when and for how long is called the scheduler. Modern schedulers take into account priority (a user click should feel like it responds instantly, a background backup can wait), fairness (no process should starve permanently), and efficiency (waste as little time as possible on the switch between processes itself, the so-called “context switch”).
Single-user vs. multi-user operating systems
Most of today’s operating systems (Windows, Linux, macOS) are fundamentally multi-user capable — several user accounts with separate rights and data can exist on the same system, even though private users usually only use a single account. Server operating systems make more intensive use of this capability, for example to run several customer applications isolated on the same physical machine.
Embedded and real-time operating systems
Besides the well-known desktop/server operating systems, there are specialised real-time operating systems (RTOS) for embedded systems (industrial controls, cars, medical devices), where guaranteed, predictable response times matter more than maximum throughput — a normal desktop operating system can, in rare cases, unpredictably “hang” for milliseconds (e.g. due to garbage collection or background processes), which would have catastrophic consequences in an industrial control system or an airbag system. RTOSs therefore deliberately sacrifice throughput and complexity in favour of hard, guaranteed time limits.