An operating system is the layer of software that sits between the hardware and the programs people actually want to run. It decides which program uses the processor at any moment, hands out memory, organizes data into files, and manages access to devices such as disks, keyboards, and networks. Without it, every program would have to control the bare machine itself.
The classic firsthand description is Ritchie and Thompson’s 1974 paper “The UNIX Time-Sharing System.” It presents the operating system as the provider of a few clean abstractions: a hierarchical file system, processes that can be created and run independently, and a uniform way of treating devices as if they were files. These abstractions let many users and programs share one machine without interfering with one another.
Multics, documented firsthand by its builders at multicians.org, was an earlier and more ambitious system that pursued the same goals: reliable time-sharing, protection between users, and a structured file system. Unix can be read as a smaller, simpler reaction to the complexity of Multics, keeping the useful ideas while shedding much of the weight.
The core responsibilities have stayed remarkably stable. Whether the system is Unix, Linux, MS-DOS, or Windows NT, an operating system still manages processes, memory, files, and devices. The differences lie in how it does so, and in particular in the design of its innermost component, the kernel.