Operating system
The software layer that manages hardware resources and provides safe, stable abstractions (processes, files, networking) for programs.
Definition
An operating system (OS) is the software layer that makes a machine usable by multiple programs: it manages hardware resources (CPU, memory, disk, network) and provides stable abstractions (files, sockets, processes) with permissions and safety boundaries.
The important split: kernel vs user space
Most OSes are conceptually split into:
- the kernel: privileged code that can control hardware and enforce rules
- user space: where applications run without direct hardware access
Programs live primarily in user space and rely on the kernel for privileged operations via system calls.
What the OS “does” for a running program
For a running program (as one or more processes), the OS typically provides:
- scheduling: who runs on the CPU and when
- memory management: virtual memory, paging, allocation primitives
- I/O: filesystems, devices, networking
- security and permissions: user IDs, ACLs/capabilities, sandboxing
- coordination primitives: signals, pipes, shared memory, timers
Why this matters operationally
When production differs from dev, the OS is often part of the difference: permissions, filesystem layout, resource limits, clocks, and kernel behavior all live in the runtime environment.