An operating system, commonly abbreviated OS, is system software that manages computer hardware resources and provides standard services and abstractions for application programs. Examples include Windows, macOS, Linux distributions, Android and iOS, although the technical structure and intended uses of these systems differ. The operating system sits between applications and hardware, allowing programs to request services such as memory allocation, file access, network communication and interaction with devices without directly controlling every hardware component.
It also manages competing demands from multiple programs and users. The operating system is therefore not simply the graphical interface seen on a screen. Its core components include privileged software commonly called the kernel, together with system services, libraries, drivers, utilities and interfaces that collectively provide the operating environment.
The kernel is the central privileged component of many operating systems. It controls access to processor resources, memory, devices and other system functions. Applications generally run with restricted privileges so that one program cannot freely modify the memory or resources belonging to other programs. When an application needs an operating-system service, it can make a system call or use a higher-level library that ultimately invokes the appropriate system interface.
The kernel then performs the requested operation subject to security and resource-management rules. This separation provides protection and abstraction. A word processor does not need to know the electrical details of a storage device because it can ask the operating system to open or save a file through a standard interface.
Operating systems manage processes and threads. A process is an executing program together with its associated resources and state, while a thread represents a sequence of execution within a process. The operating system schedules threads or processes onto available CPU cores. On a single-core system, rapid switching can create the appearance that multiple applications are executing simultaneously, while multicore systems can execute multiple threads genuinely in parallel. Scheduling algorithms consider factors such as responsiveness, fairness, priority and workload characteristics. Operating systems also provide mechanisms for process isolation, inter-process communication and synchronisation. These functions allow many programs to run concurrently while reducing the likelihood that an error in one application will directly corrupt the memory of another.
Memory management is another central operating-system responsibility. The OS allocates memory to processes, tracks which regions are in use and prevents unauthorised access between processes. Virtual memory provides each process with an address space that is abstracted from the underlying physical memory arrangement. Pages of memory can be mapped to physical RAM and, where appropriate, to storage used as backing space. This abstraction allows programs to operate without knowing exactly where their data resides physically. Memory protection also provides a critical security boundary. Without appropriate controls, a faulty or malicious program could potentially modify another program's data or critical operating-system structures, compromising system stability and security.
Operating systems manage files and persistent storage through file systems and storage interfaces. A file system defines how files and directories are represented and located on storage media, how metadata is maintained and how access permissions are enforced. Applications can create, read, modify and delete files through standard operating-system interfaces. The operating system and its drivers communicate with storage controllers, which in turn interact with physical storage hardware. Different operating systems support different file systems and can provide compatibility with multiple formats. File management also includes permissions, timestamps, naming, caching and buffering. These abstractions allow users and applications to work with logical files rather than manually managing sectors or memory cells.
Device management allows an operating system to interact with hardware such as keyboards, displays, printers, storage devices and network adapters. Device drivers provide software that understands how particular hardware behaves and exposes suitable interfaces to the operating system. Modern operating systems often support standard driver frameworks so that hardware from different manufacturers can be integrated without rewriting every application. The OS can manage device access, buffering, interrupts and data transfer. Hardware abstraction is particularly important because it allows application software to remain relatively independent of the exact physical devices installed in a computer. This is one reason the same application can often operate across many compatible hardware configurations.
Operating systems also provide networking, security and user-management services. Networking components implement or support communication protocols and provide applications with interfaces for connecting to remote systems. Security mechanisms include user authentication, permissions, process isolation, privilege management, encryption support and auditing. Multi-user operating systems can distinguish among accounts and restrict access to files or services. Modern systems may also provide sandboxing mechanisms that further constrain applications. Security is not solely an operating-system function because hardware, applications, users and networks also affect system security, but the OS forms a critical control layer.
The operating system therefore provides the foundation on which ordinary computer use takes place. It coordinates hardware resources, schedules computation, manages memory and storage, controls devices, provides networking and security facilities and exposes standard interfaces to applications. Operating systems can be graphical, command-line based, embedded, real-time, distributed or specialised for particular environments. A desktop OS prioritises interactive use and broad application support, while a real-time operating system may prioritise deterministic response times for industrial or embedded control. Despite these differences, operating systems share the fundamental role of managing computational resources and providing abstractions that make complex hardware usable by software and people.