Page ↑ / Page ↓ to move · scroll works too
Linux & DevOps — Lecture 1 of 8
Before opening a terminal,
where did Linux come from?
and how will the pieces we use fit together?
BSD
1977, UC BerkeleySystem V
1983, AT&TMinix
1987, teaching OSLinux and GNU are Unix-compatible reimplementations, built from scratch rather than from Unix's original source — commonly drawn on the same tree, technically a parallel branch. The timeline, next.
Unix
Rewritten in C
GNU
Linux
the world's top 500 fastest supercomputers all run Linux since 2017.
all Android phones, tablets, smart TVs ... etc, are built on Linux.
90% of all cloud infrastructure runs on Linux
Smart fridges, security cameras, millitary drones, and more run Linux.
The kernel manages the machine's shared resources on behalf of every running program — who gets what, and when:
Every request a program makes for any of this goes through a single narrow interface — a system call.
The shell you type into, the core utilities you run constantly, and the system libraries programs link against all run in less-privileged user space, not inside the kernel:
This is, largely, the "GNU" half of GNU/Linux from Part One.
Before "PID 1" means anything, the machine has to get there — four stages, every single time the power comes on:
The firmware only knows how to find a disk and read its first few sectors — everything after that, including "what a filesystem even is," is software handed control one stage at a time.
In 2010, Red Hat engineers released systemd as PID 1's replacement and more
Starts, stops, and supervises services from declarative unit files — and restarts whatever crashes.
Starts services concurrently based on a dependency graph, not a fixed sequence — this is where the speed comes from.
journald collects every service's output into one structured, queryable store, read back with journalctl.
Uses cgroups to cap CPU, memory, and I/O per service, so one runaway process can't starve the rest.
Socket and timer units start a service only when something actually needs it, instead of leaving it always running.
Named states — multi-user, graphical, rescue — the flexible replacement for numbered runlevels.
Adopted by Fedora in 2011, then RHEL 7 in 2014 — by then, as Poettering put it, "the whole world started running on systemd."
The kernel is shared. Almost everything wrapped around it is a choice
A Linux distribution ("distro") is just this, bundled into one coherent, installable system:
The kernel is nearly identical across distributions. Almost everything else is a set of choices someone else made for you.
Almost every distro you'll run into traces back to one of three originals:
Red Hat Linux split in 2003 into Fedora (community, fast-moving) and RHEL (enterprise) — Rocky Linux and AlmaLinux exist as free RHEL-compatible rebuilds, and Bazzite is a gaming-focused spin of Fedora's immutable desktop. This course runs on RHEL, the middle tree.
.rpm filesyumTwo different bets on isolation — and this course stacks both of them, one inside the other.
An OS installed directly on physical hardware, with nothing abstracting the machine underneath it. Maximum performance, zero flexibility — one operating system per box, full stop.
Fine for a single dedicated server.
A hypervisor lets one physical machine host several independent guest machines, each behaving as though it owns real hardware outright:
VM 1
guest OSVM 2
guest OSVM 3
guest OSVirtual CPU, RAM, disk, and network hardware — real to the guest, carved out of the one host underneath.
Runs directly on hardware, no host OS underneath it. Proxmox VE — built on KVM, the Linux kernel's own virtualization module, plus QEMU — is Type 1. This is what runs on the rented VPS behind this course.
Runs as an ordinary application on top of a general-purpose host OS — VirtualBox on your laptop, for instance. Simpler to install, with more overhead.
Instead of simulating a whole machine, containers isolate processes that all share one real, already-running host kernel. There's no guest OS to boot — a container starts about as fast as any other process on the machine, because it essentially is one.
Same hardware underneath — a different number of layers between it and your app:
One fewer layer, and no guest kernel to boot — Podman is the container engine this course uses: daemonless, rootless by default, and — unlike
Docker's original architecture — with no single long-running root process managing every container.
A loop, not a line — and a name for every stage this course maps a tool onto.
DevOps is a set of practices and a culture aimed at closing the gap between building software and running it in production.
It's a loop because what you learn from operating and monitoring a system feeds straight back into planning the next change. There's no finish line — only another lap:
Blue/green deployment keeps two identical environments — call them slots — and only ever touches one of them:
A new version deploys only to the idle slot — the live one is never touched until the new version has proven itself.
If the health check fails, the switch simply never happens — the old slot just keeps serving traffic, completely unaffected.
all slides available at
slides.raafat.io