Operating Systems
What is an Operating System?; Functions of an Operating System; UNIX System Architecture
C-CAT
What is an Operating System?
Why is an OS Needed?
Basic functions of a computer:
- Data Storage — save data to storage devices
Data Processing — compute and transform data 3. Data Movement — transfer data between components 4. Control — coordinate all operations
Problem: Any user cannot communicate/interact directly with computer hardware to do different tasks. There is a need for some interface between user and hardware.
Solution: The Operating System
Definition of Operating System
An Operating System (OS) is system software that:
- Manages computer hardware and software resources
- Provides a common interface between users and hardware
- Controls and coordinates use of hardware among various application programs for various users
- Acts as a resource manager — allocates CPU, memory, I/O to processes
OS as an Intermediary
Applications (User Programs)
↕
OPERATING SYSTEM
↕
Hardware (CPU, Memory, I/O)
Popular Operating Systems
| OS | Family | Use Case |
|---|---|---|
| Windows 11 | Microsoft | Desktop, Gaming |
| Ubuntu / Debian | Linux | Development, Server |
| macOS | Apple/Unix | Creative, Development |
| Android | Linux-based | Mobile |
| iOS | Apple | Mobile |
| Unix | AT&T Bell Labs | Server, Academic |
| Linux | Open-source Unix-like | Server, Embedded |
Functions of an Operating System
| Function | Description |
|---|---|
| Process Management | Create, schedule, terminate processes; handle synchronization |
| Memory Management | Allocate/deallocate memory; virtual memory management |
| File Management | Create/delete files and directories; access control |
| I/O Management | Control I/O devices; provide device driver interface |
| Security & Protection | Protect resources from unauthorized access |
| Networking | TCP/IP stack; network communication |
| Error Detection & Handling | Detect hardware errors; take corrective action |
| User Interface | CLI (command line) or GUI (graphical) interface |
UNIX System Architecture
Overview
UNIX is one of the most influential operating systems ever designed (Bell Labs, 1969).
Major Subsystems of UNIX:
- File Subsystem — manages files and directories
- Process Control Subsystem — manages processes
UNIX Architecture Diagram
+-------------------------------------------------------+
| USER SPACE |
| User Programs / Applications |
| (Shell, Compiler, text editor, database client) |
+------------------+-------------------------------------|
| System Call Interface (API boundary) |
+------------------+------------------------------------+
| KERNEL SPACE |
| File Subsystem | Process Control Subsystem |
| (file operations) | (process scheduling, IPC) |
| +---------------+ | +-------------------------+ |
| | File tables | | | CPU Scheduler | |
| | Inodes | | | Memory Management | |
| | Buffer cache | | | IPC (pipes, signals) | |
| +---------------+ | +-------------------------+ |
+----------------------+----------------------------------+
| Hardware Control (Device Drivers) |
+-------------------------------------------------------+
| HARDWARE |
| CPU | Memory | Disk | Network | Terminal |
+-------------------------------------------------------+
UNIX Key Concepts
| Concept | Description |
|---|---|
| Everything is a file | Devices, sockets, pipes are represented as files |
| Shell | Command-line interface to the kernel (bash, sh, zsh, ksh) |
| PID | Every process has a unique Process ID |
| UID/GID | User ID and Group ID for security |
| File permissions | rwx for owner, group, others |
| Kernel | Core of the OS managing all resources |
| Daemon | Background process (like a service in Windows) |
Continue learning
Related notes
Definition of AI; Need of AI
Artificial Intelligence
Introduction to Data Engineering; Big Data — The 5 V's; Types of Data
Big Data and Data Engineering
Introduction to C Programming; C Program Structure; Data Types and Variables
C Programming
What Is a Computer?; Machine Cycle: Fetch–Decode–Execute; CPU Organization
Computer Architecture
Put this topic into timed practice
Open mock tests when you want full-exam pacing, or keep drilling in practice mode.