Operating Systems Expanded
Operating Systems Expanded
An operating system (OS) acts as an intermediary between users and computer hardware,
managing system resources and providing a user interface. It enables software applications to run
on hardware platforms.
The kernel is the core part of the OS that manages CPU, memory, and device communication.
There are monolithic kernels (e.g., Linux) and microkernels (e.g., Minix), each with distinct
Process management includes creating, scheduling, and terminating processes. The OS uses
process control blocks (PCBs) to track process states and resources. Scheduling algorithms like
Memory management involves tracking each byte in a computer's memory and allocating or freeing
memory space. Techniques include paging, segmentation, and virtual memory, which allows
include FAT32 (simple and compatible), NTFS (secure and robust), and ext4 (used in Linux
systems).
Input/output (I/O) management controls communication with peripherals like keyboards, printers,
and storage drives. Device drivers translate OS commands into hardware-specific actions.
multitasking lets the OS interrupt programs to ensure fair CPU use. Multiprocessing supports
User interfaces vary from command-line interfaces (CLI) used in Unix/Linux to graphical user
interfaces (GUI) like Windows and macOS. CLI offers powerful scripting capabilities, while GUI
These include authentication (e.g., usernames/passwords), access control lists (ACLs), and
encryption.
System calls provide a controlled interface between applications and the OS. They allow programs
Virtualization allows multiple OS instances on a single machine. Hypervisors (Type 1 and Type 2)
Modern trends in OS design include real-time systems, cloud-based OS, and OSes for embedded