OS Notes
Introduction to Linux — history, philosophy, kernel architecture, distributions, why Linux dominates servers and embedded systems, and getting started with Linux.
Introduction
Linux is an open-source, Unix-like operating system kernel first released by Linus Torvalds in 1991. What started as a personal project by a Finnish university student has grown into the most widely deployed operating system in history. Linux runs on everything — from smartphones (Android) to supercomputers (100% of the top 500), from web servers (over 70% of the internet) to embedded devices (smart TVs, routers, IoT sensors).
Understanding Linux is essential for any computer science student because it provides a transparent, inspectable implementation of virtually every OS concept taught in textbooks. Unlike closed-source systems, you can read the actual source code to see how processes are scheduled, how memory is managed, and how file systems are implemented.
Brief History
1969-1970: Ken Thompson and Dennis Ritchie develop Unix at Bell Labs. It introduces revolutionary ideas: everything is a file, small composable tools, plain text configuration, hierarchical file system.
1983: Richard Stallman launches the GNU project to create a free Unix-like OS. By 1990, GNU has compilers (GCC), editors (Emacs), and utilities — but no kernel.
1991: Linus Torvalds, frustrated with Minix's limitations, writes his own kernel. His famous Usenet post: "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)." He was wrong — it became the foundation of modern computing infrastructure.
1992-present: The Linux kernel combined with GNU tools creates a complete free operating system ("GNU/Linux"). Thousands of developers worldwide contribute. Companies like Red Hat, IBM, Google, and Microsoft invest heavily in Linux development.
Linux Philosophy
Linux inherits the Unix philosophy, which shapes how the system is designed:
- Everything is a file — Devices, processes, network sockets are all accessed through the file system interface (
/dev/sda,/proc/cpuinfo,/dev/null)
- Small, composable tools — Each program does one thing well. Complex tasks are accomplished by combining simple tools with pipes:
cat access.log | grep "404" | awk '{print $1}' | sort | uniq -c | sort -rn- Text as universal interface — Configuration is plain text files (not binary registries). Output is text that other programs can parse.
- Transparency — System behavior is observable, loggable, and debuggable. No hidden magic.
Linux Kernel Architecture
The Linux kernel is monolithic — all core OS services run in kernel space as a single large binary. However, it supports loadable kernel modules that extend functionality without rebooting.
Key subsystems:
- Process Scheduler (CFS): Fairly allocates CPU time using a red-black tree sorted by virtual runtime
- Memory Manager: Demand paging, copy-on-write, slab allocator for kernel objects
- VFS (Virtual File System): Uniform interface over ext4, XFS, NFS, procfs, etc.
- Network Stack: Full TCP/IP implementation, packet filtering (netfilter/iptables)
- Device Drivers: Largest part of the kernel — hardware abstraction for thousands of devices
Linux Distributions
A Linux distribution packages the kernel with system tools, package manager, desktop environment, and default configurations:
| Distribution | Target Audience | Package Manager | Notable Feature |
|---|---|---|---|
| Ubuntu | Beginners, desktops | apt (dpkg) | User-friendly, large community |
| Fedora | Developers | dnf (rpm) | Cutting-edge packages |
| CentOS/RHEL | Enterprise servers | yum/dnf (rpm) | Long-term stability |
| Arch Linux | Advanced users | pacman | Rolling release, minimal |
| Debian | Stability-focused | apt (dpkg) | Rock-solid, slow updates |
| Alpine | Containers/embedded | apk | Tiny (5MB base), musl libc |
| Kali | Security research | apt | Pre-installed security tools |
Why Linux Dominates Servers
Several factors make Linux the default for servers and infrastructure:
- Cost: No licensing fees — deploy on thousands of servers without per-seat costs
- Performance: No unnecessary GUI overhead; fine-grained tuning possible
- Stability: Uptimes measured in years; kernel updates without rebooting (live patching)
- Security: Rapid vulnerability patching by global community; SELinux/AppArmor for MAC
- Automation: Everything is scriptable; configuration as code
- Container ecosystem: Docker, Kubernetes — all built for Linux first
Getting Started with Linux
Accessing Linux
You do not need to replace your current OS to learn Linux:
# Option 1: Windows Subsystem for Linux (WSL)
wsl --install # Installs Ubuntu by default
# Option 2: Virtual machine (VirtualBox)
# Download Ubuntu ISO, create VM, install
# Option 3: Cloud instance
# AWS, GCP, Azure — launch a Linux VM in minutes
# Option 4: Live USB
# Boot from USB without installing (try before committing)First Commands
whoami # Your username
pwd # Current directory
ls -la # List files with details
cd /home # Change directory
cat /etc/os-release # Which distribution am I running?
uname -a # Kernel version and architectureLinux in the OS Curriculum
Studying Linux provides concrete examples of every OS concept:
- Process management:
fork(),exec(),/proc/[pid]/ - Scheduling: CFS in
/proc/sched_debug - Memory:
/proc/meminfo,mmap(), page tables in/proc/[pid]/maps - File systems: ext4, inode structure,
statcommand - Synchronization: futex, pthread_mutex,
/proc/locks - I/O:
/dev/devices, block I/O scheduler
Key Takeaways
- Linux is the kernel; combined with GNU tools, it forms a complete operating system
- Open-source transparency makes Linux ideal for learning OS internals
- Monolithic kernel with loadable modules balances performance and extensibility
- Linux dominates servers, embedded, and mobile (Android) — essential industry knowledge
- Hundreds of distributions serve different needs — choose based on your use case
- The Unix philosophy (small tools, text interfaces, composability) remains powerful and relevant
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Linux Introduction - OS Overview.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Operating Systems topic.
Search Terms
operating-systems, operating systems, operating, systems, linux, and, unix, introduction
Related Operating Systems Topics