Skip to content

Introduction to Linux - Wyatt's Notes

Linux is a Unix-like operating system kernel first released by Linus Torvalds in 1991. When People say “Linux” in practice, they almost always mean a Linux distribution — the kernel Bundled with GNU userland, init systems, package managers, and thousands of user-space utilities. The kernel itself is just one component; the rest of the system is what makes it usable.

The Linux kernel is licensed under GPLv2, which guarantees the right to use, study, modify, and Redistribute the source code. This licensing model is the primary reason Linux dominates every Sector from embedded devices and smartphones (Android) to supercomputers and cloud infrastructure.

graph TD
A[User Space] --> B[GNU C Library - glibc]
A --> C[System Utilities - coreutils]
A --> D[Shells - bash/zsh]
A --> E[Application Layer]
B --> F[System Call Interface]
C --> F
D --> F
E --> F
F --> G[Linux Kernel]
G --> H[Process Scheduler]
G --> I[Memory Manager]
G --> J[VFS Layer]
G --> K[Network Stack]
G --> L[Device Drivers]
H --> M[Hardware]
I --> M
J --> M
K --> M
L --> M

The Linux kernel is a monolithic kernel with loadable modules. Unlike microkernels (Mach, MINIX) Which move most services into user space, Linux runs device drivers, file system implementations, And network protocols in kernel mode. This design trades fault isolation for performance — a buggy Driver can crash the kernel, but system call overhead is minimal because there is no user-kernel Context switch for kernel-internal operations.

Key subsystems:

SubsystemResponsibility
Process SchedulerCFS (Completely Fair Scheduler), real-time scheduling
Memory ManagementVirtual memory, page tables, SLUB/SLAB allocators, OOM
VFSVirtual File System — abstracts file system operations
Network StackTCP/IP, netfilter, routing, socket layer
Device Modelsysfs``udevDriver model, kobject hierarchy
IPCPipes, shared memory, signals, epoll``eventfd
SecuritySELinux, AppArmor, capabilities, seccomp, audit

Linux distributions differ primarily in package management, release model, and default configuration Choices. The kernel is largely the same across all of them (with distribution-specific patches).

graph LR
A[Debian] --> B[Ubuntu]
A --> C[Mint]
A --> D[Proxmox]
E[Red Hat] --> F[RHEL]
E --> G[Fedora]
E --> H[CentOS Stream]
E --> I[AlmaLinux]
E --> J[Rocky Linux]
K[Arch] --> L[Manjaro]
K --> M[EndeavourOS]
N[SUSE] --> O[openSUSE Leap]
N --> P[openSUSE Tumbleweed]
Q[Alpine] --> R[Lightweight Containers]
S[Gentoo] --> T[Source-based]
FamilyPackage FormatPackage ManagerInit SystemTypical Use Case
Debian.debAPTsystemdServers, desktops, containers
Red Hat.rpmDNFsystemdEnterprise servers
Arch.pkg.tar.zstpacmansystemdPower users, rolling release
Alpine.apkapkOpenRCDocker containers
SUSE.rpmzyppersystemdEnterprise, SAP workloads

Linux is the dominant operating system in every infrastructure domain you will encounter:

  • Cloud infrastructure: AWS, GCP, and Azure run on custom Linux kernels (Xen, KVM, Firecracker).
  • Container orchestration: Docker, containerd, and Kubernetes are Linux-native technologies built on cgroups, namespaces, and overlayfs.
  • Networking: Linux routing, netfilter, and BPF power the majority of the world”s routers and firewalls.
  • Embedded and IoT: Android, OpenWrt, Yocto — all Linux underneath.
  • High-performance computing: 100% of the TOP500 supercomputers run Linux.

Understanding Linux at the systems level — how processes are scheduled, how memory is managed, how The network stack processes packets, how file systems journal writes — is not academic. It is the Difference between “restarting the service fixed it” and understanding why it failed and Preventing recurrence.

This section covers the core Linux competencies expected of a systems engineer:

  1. CLI Fundamentals. Shell basics and core utilities (shell-basics, core-utilities)
  2. File Systems. VFS, ext4, XFS, Btrfs, mounting (filesystems-and-mounting)
  3. Process Management. Process model, signals, cgroups, resource limits (processes-and-signals)
  4. Networking. Netfilter, namespaces, routing, troubleshooting (linux-networking)
  5. Systemd. Service management, timers, socket activation, hardening (systemd)
  6. Security. PAM, SELinux, capabilities, seccomp, audit (linux-security)
  7. Package Management. APT, DNF, Nix, dependency resolution (package-management)

Editing files). The focus is on depth — understanding how things work, not just what commands to Run.

Linux is the foundation of modern infrastructure: From smartphones (Android) to supercomputers to cloud servers, Linux runs the majority of the world’s computing infrastructure. Understanding Linux is essential for system administration, DevOps, and cloud computing.

Why it matters: Linux skills are among the most sought-after in IT. The command line, file system hierarchy, and process management concepts transfer across all Unix-like systems.

The key insight: Linux follows the Unix philosophy — small, focused tools that do one thing well, combined via pipes to build complex workflows.

The key principles covered in this topic are linked in the sub-pages above. Focus on understanding the definitions, applying the formulas or frameworks, and evaluating strengths and limitations of each approach.

Worked examples demonstrating the application of key concepts are covered in the detailed sub-pages linked above.

  • Confusing terminology or concepts that appear similar but have distinct meanings.

  • Overlooking key assumptions or boundary conditions that limit applicability. :::## Cross-References

  • Site Home: Main landing page for linux notes.

  • Practice: Practice problems for revision.