Operating System

An operating system is the foundational software that manages a computer's hardware and provides the common services on which all other programs run: it shares the processor, memory, storage and devices among many programs, keeps them from interfering with one another, and gives them a uniform way to ask for resources. Without it every application would have to drive the disk, the display and the network card itself; with it, a program can open a file, start a thread or send a message with a simple request and leave the rest to the system. Windows, macOS, Linux, Android and iOS are the best-known examples, and the same idea runs inside routers, cars, game consoles and the servers of the cloud.

An operating system does two broad jobs, which are to be a resource manager and to be an abstraction layer. As a manager it schedules which process uses the CPU at each moment, allocates memory and uses virtual memory to give each process a private address space, and arbitrates access to disks, networks and displays. As an abstraction layer it turns messy hardware into clean ideas: the disk becomes files and folders, running code becomes processes and threads, and a network card becomes sockets. Enforcing isolation is central, because the processor runs ordinary programs in a restricted mode and lets only the operating system core perform privileged operations, so a crashing program cannot overwrite another's memory or take over the disk. Programs reach privileged services through system calls, a controlled gateway into the system's core.

Application calls open on report.csv
a library function in the program's own memory space
System call crosses into the operating system
the processor switches from user mode to privileged mode
Inside the operating system
Permission check
may this user read the file?
File system
finds where the file's blocks live
Device driver
asks the storage controller to read them
Data returned and the program resumes
the application receives a file handle without touching the disk directly

Operating systems evolved from simple batch monitors into the interactive, networked systems of today. Early computers ran one job at a time; General Motors and North American Aviation produced a batch system for the IBM 704 in 1956, and time-sharing, in which many users share a machine at once, appeared with MIT's CTSS in 1961. Multics, begun in 1964, inspired Ken Thompson and Dennis Ritchie to build Unix at Bell Labs around 1969-1971, and Unix's ideas, including hierarchical files, small tools and rewriting the system in the C language, shaped almost everything afterward. CP/M and then MS-DOS served early personal computers, the Macintosh of 1984 brought the graphical interface to a wide audience, Windows 1.0 appeared in 1985, and Linus Torvalds released the first Linux kernel in 1991. Smartphones added iOS, announced in 2007 as iPhone OS, and Android, first released commercially in 2008.

An operating system is a stack of cooperating parts, not one program, and its pieces have their own entries in this glossary. The kernel is the privileged core that handles processes, memory and devices; device drivers connect it to specific hardware; the file system organizes storage; and system libraries, a shell or command line and a graphical desktop sit above, together with utilities for networking and security. A recurring misunderstanding is to treat these as identical: Linux strictly names a kernel, and a distribution such as Ubuntu or Fedora bundles that kernel with a package manager and tools, while the graphical desktop is a replaceable layer rather than the operating system itself. Likewise the operating system is not the firmware that starts it, which is described under the boot process, nor the applications that run on it, nor the cloud service that may be built over it.

Different jobs call for different designs. Desktop and laptop systems optimize for interactive use and a broad range of hardware, server systems for throughput, uptime and remote management, mobile systems for battery life, touch input and sandboxing, and real-time operating systems, used in medical devices, aircraft and industrial control, for guaranteeing that a task completes by its deadline. Virtualization and containers show how the roles can be nested: a hypervisor runs several guest operating systems on one machine, while a container shares the host's kernel and isolates only the processes. For programmers the operating system defines what is portable, such as path conventions, threads and line endings, and why a program compiled for Windows does not run on Linux unchanged.

The operating system is a quiet but decisive factor in data science and machine learning. Training and inference rely on drivers and runtimes, such as NVIDIA's CUDA stack, that must match the installed operating system and kernel, and mismatches are a typical source of confusing errors. Linux dominates servers, supercomputers and cloud machine-learning infrastructure, while many developers work on Windows or macOS and use containers or virtual machines to match production. Keeping the system updated is also a security task, since most attacks exploit unpatched flaws in the operating system or its drivers, and understanding processes, memory and file permissions helps users diagnose why a program is slow, killed or unable to read a file.

Read an operating system as the permanent intermediary between programs and machines: it shares the hardware fairly, hides its complexity behind processes, files and sockets, and enforces boundaries through the kernel, so that every application, from a spreadsheet to a model-training job, can behave as if it had the whole computer to itself.

Take operating system further

Ask the copilot about this term, or have our engineers assess it against your process.