An operating system (OS) is the layer between hardware and the programs people use. Without it, every application would need its own code to talk to the disk, keyboard, screen and network. The functions of operating system software can be grouped into a handful of core jobs: managing resources, protecting the system and providing services to programs and users.
This guide explains ten of those jobs, with examples from Linux and Windows.

1. Process management
A process is a running program. The OS creates and ends processes, gives each one CPU time and lets them communicate. It also decides which process runs next, using CPU scheduling. For example, Linux lets you see processes with ps and top, while Windows shows them in Task Manager.
Read more: process management and CPU scheduling algorithms.
2. Memory management
The OS tracks which parts of RAM are free and which belong to each process. It gives memory to programs, takes it back when they finish and keeps processes from reading each other’s memory. Moreover, through virtual memory and paging, it lets programs use more memory than physically exists. See our guide to memory management.
3. File management
Users and programs see files and folders, not raw disk blocks. The OS creates, reads, writes, renames and deletes files, organises directories and enforces permissions. It does this through file systems such as ext4, XFS and NTFS.
4. Device management
Every device, from a keyboard to a GPU, needs a driver. The OS loads drivers, handles interrupts from devices and provides one consistent way for programs to use them. As a result, an application can print without knowing the printer model.
5. Storage management
Beyond individual files, the OS manages disks as a whole: partitions, free space, caching, disk scheduling and redundancy such as RAID. Read our guide to disk management.
6. Security and protection
The OS controls who can log in and what each user and program may do. Key features include:
- user accounts and authentication;
- file permissions and access control lists;
- separation between user mode and kernel mode;
- memory protection between processes;
- security updates, firewalls and built-in malware protection.
See operating system protection and security for details.
7. Networking
Modern operating systems include a full network stack. They manage network interfaces, IP addresses, routing tables and sockets, so applications can send data without handling low-level details.
8. User interface
The OS provides a way for people to interact with the computer. That can be a command-line interface (CLI), such as Bash or PowerShell, or a graphical user interface (GUI), such as the Windows desktop or GNOME on Linux.
9. Performance monitoring and accounting
The OS measures CPU, memory, disk and network use. Administrators use this data to find bottlenecks and plan capacity. In multi-user systems, it can also record usage per user for accounting.
10. Error detection and recovery
Hardware and software fail. The OS detects errors, such as disk read failures or crashed programs, logs them and tries to recover. For example, it can restart a failed service or remap a bad disk sector. In addition, logs help administrators investigate problems later.
Services the OS offers to programs
Programs access these functions through system calls, such as open(), read() and fork() on Linux. In practice, libraries and APIs wrap them, so developers rarely call them directly.
| Function | Linux example | Windows example |
|---|---|---|
| Processes | ps, kill | Task Manager |
| Memory | free -h | Resource Monitor |
| Files | ls, chmod | File Explorer, icacls |
| Devices | lsusb, lspci | Device Manager |
| Network | ip addr | ipconfig |
Related guides
Sources
Running Linux servers in production? Our Linux server hardening & security audit checks configuration, patching, SSH and logging. You can also use our free Linux server hardening checklist, or contact us.
