man -k history.os --vol=II --deck=10 tty1 · 80×24 · 2026-05-03

OPERATING SYSTEMS

whoami

A 60-year tour through process schedulers, virtual memory, file systems, and the kernels that ate the world. 17 pages.

timeline of major systems

yearsystemnote
1964MulticsMIT/Bell/GE — too ambitious, hugely influential
1969UNIXThompson + Ritchie at Bell Labs, on a PDP-7
1973UNIX in CUNIX rewritten in the brand-new C language
1981MS-DOS 1.0licensed to IBM PC
19834.2BSDTCP/IP, sockets, fast file system
1984System 1Macintosh — bitmapped, mouse-driven
1985Windows 1.0shell over DOS
1991Linux 0.01Torvalds, comp.os.minix announcement
1993Windows NT 3.1preemptive multitasking, NTFS
2001Mac OS X 10.0Mach + BSD + NeXTSTEP
2007iPhone OSDarwin-based mobile fork
2008Android 1.0Linux + Java + Apache user space

1964 — multics

Multiplexed Information and Computing Service. A joint MIT / Bell Labs / GE project to build a "computer utility" — time-sharing, hierarchical file systems, segment-based virtual memory, security rings. Bell Labs withdrew in 1969 because it was too late and too expensive. Two of those researchers, Ken Thompson and Dennis Ritchie, then went off to do something simpler.

1969 — unix

Thompson, Ritchie, McIlroy, Ossanna and others at Bell Labs. The first version ran on a discarded PDP-7 in summer 1969. By 1973 it was rewritten in C. Key ideas, all of them now ubiquitous:

/* the most quoted UNIX line, K&R C */
main() {
  printf("hello, world\n");
}

the pdp-11 era

UNIX V6 (1975) and V7 (1979) ran on the PDP-11. The 1976 publication of John Lions's A Commentary on the UNIX Operating System spread the V6 source through xerox copies for a decade. Later, AT&T's lawyers banned redistribution; the BSDs grew up around the original code.

     +-------------+
     | PDP-11/70   |     <-- 16-bit, ~625 ns mem cycle
     +------+------+
            |
       UNIBUS bus
            |
   +--------+--------+--------+
   |        |        |        |
  RK11   DECtape   TTY     Network

1981 — ms-dos

Tim Paterson wrote QDOS at Seattle Computer Products in 1980; Microsoft bought it for $50,000 in July 1981 and licensed it to IBM as PC-DOS 1.0 that August. Single-tasking, real-mode, 640 KB. Ran the world from 1981 to roughly 1995.

C:\> DIR /W
 Volume in drive C is HARD DISK
 Directory of C:\

COMMAND.COM    AUTOEXEC.BAT  CONFIG.SYS  DOS<DIR>
        4 file(s)      96340 bytes
                  527294464 bytes free
Linus_Torvalds

1984 — macintosh / mac os

System 1 booted from a 400 KB floppy on a 128 KB Mac. Bitmapped display, single-button mouse, cooperative multitasking via the Process Manager. Successive systems through Mac OS 9 (1999) added preemption sparingly. Mac OS X 10.0 "Cheetah" (March 2001) replaced the kernel with the XNU hybrid (Mach 3.0 microkernel + BSD personality), Cocoa over NEXTSTEP/OpenStep, Quartz graphics.

releaseyear
System 1.0 → 9.2.21984–2001
Mac OS X 10.0 Cheetah2001
OS X 10.6 Snow Leopard2009
macOS 11 Big Sur (ARM)2020
macOS 15 Sequoia2024

windows lineage

Two parallel families until 2001:

NT introduced a hybrid kernel, NTFS, the registry, and a hardware abstraction layer that let it run on x86, MIPS, Alpha, PowerPC, and later ARM.

1991 — linux

Linus Torvalds, comp.os.minix, August 25, 1991:

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: What would you like to see most in minix?
Date: 25 Aug 91 20:57:08 GMT

I'm doing a (free) operating system (just a hobby,
won't be big and professional like gnu) for 386(486)
AT clones. ... Any suggestions are welcome, but I won't
promise I'll implement them :-)

Version 0.01 was 10,239 lines. Linux today is the operating system of the Linux Foundation's TOP500 cluster (100% Linux since 2018), Android phones, embedded routers, AWS/GCP/Azure, your fridge, and a small but devoted desktop population.

the BSDs

BSDfocus
FreeBSDPerformance, server use; powers Netflix CDN
OpenBSDSecurity; OpenSSH, LibreSSL, sudo replacement
NetBSDPortability — runs on toasters, allegedly
DragonFlyBSDHammer FS, threading research

macOS, iOS, the Sony PlayStation OS, and parts of Microsoft's networking stack all derive from BSD code.

Linux

process & scheduling

  +-------+      fork()       +-------+
  | proc  |   ---------->     | proc  |
  | (parent)                  | (child)
  +---+---+                   +---+---+
      |                            |
      | wait()                     | exec()
      v                            v
  blocked                     new program text

Modern Linux uses CFS (Completely Fair Scheduler) since 2.6.23 (2007); the EEVDF scheduler replaced it in 6.6 (2023). macOS uses a Mach-based timeshare with grand central dispatch in user space. Windows scheduling is priority-based with multilevel feedback queues and processor groups.

virtual memory

virtual addr  ----> +----+ ----> +----+ ----> +----+ ----> physical
                    | PML4|       | PDP |       | PD  |       | PT  |
                    +----+        +----+        +----+        +----+
       4 KB / 2 MB / 1 GB pages on x86_64

The MMU translates each virtual address through 4 (or 5, on Ice Lake +) levels of page tables. The TLB caches recent translations. Modern systems handle ~100 GB of RAM with ~0.1% overhead.

file systems

FSyearfamilynote
FFS1984BSDcylinder groups, fast metadata
NTFS1993Windowsjournaling, ACLs
ext42008Linuxextents, default for years
ZFS2005Solaris/BSDcopy-on-write, checksums, RAID-Z
btrfs2009Linuxcopy-on-write, snapshots
APFS2017macOS/iOScopy-on-write, encryption
Unix

mobile operating systems

iOS (2007) — Darwin kernel (XNU), Cocoa Touch, sandboxed apps. Renamed iPhone OS 1, 2, 3 then iOS from 4. Watchm tvOS, visionOS all share the Darwin lineage.

Android (2008) — Linux kernel, Bionic libc, ART runtime. AOSP is open; Google Mobile Services (GMS) is the proprietary layer.

HarmonyOS NEXT (2024) — Huawei's first non-Linux release since the U.S. ban; microkernel-based.

terminal photo

kernel architectures, in art

  monolithic            microkernel           hybrid
  +----------+          +----+ +----+          +----------+
  |kernel    |          | FS | | NET|          |   NT     |
  | + drivers|          +----+ +----+          | exec/io  |
  | + FS, IPC|          +-----------+          +----+----+
  +----------+          | microkern |          | drv,gfx |
  Linux, BSD            | (msg pass)|          +---------+
                        +-----------+          Windows NT,
                        Minix, QNX, L4         macOS XNU

watch this

More: ken thompson computerphile

glossary

termdef
kernelthe core OS code running in privileged CPU mode.
syscallcontrolled entry from user code into the kernel.
ABIapplication binary interface — calling conventions, syscall numbers.
IPCinter-process communication: pipes, sockets, shared memory, mqueues.
cgroupLinux resource grouping; basis for containers.
namespaceper-process view of system resources; with cgroups → containers.

open problems

logout_