OS Origins #
Where did Linux / Windows / macOS come from?
A concise overview of how modern operating systems evolved β from early UNIX systems to Linux distributions, Windows NT, macOS, Android, and Chrome OS.
π‘Tipπ‘
πZoom in anywhere on the graph
graph TB
%% ========= USAGE COLOR DEFINITIONS =========
classDef desktop fill:#E8EEF3,stroke:#777;
classDef server fill:#F3EFEA,stroke:#777;
classDef hybrid fill:#E9F1EC,stroke:#777;
%% ========= LEGEND =========
subgraph LEGEND["Legend"]
direction TB
D1[Desktop / User-facing]:::desktop
D2[Server / Infrastructure]:::server
D3[Hybrid usage]:::hybrid
D4[Solid arrow β Direct code lineage]
D5[Dashed arrow β Influence / POSIX / UNIX-like]
end
%% ========= EARLY SYSTEMS =========
subgraph EARLY["Early Systems"]
direction TB
CP[CP/M
1974
Gary Kildall]:::server
DOS[MS-DOS
1981
Microsoft]:::desktop
CP --> DOS
end
%% ========= UNIX ROOT =========
subgraph UNIX["UNIX Family"]
direction TB
U[UNIX
1969
Bell Labs]:::server
BSD[BSD Unix
1977
Berkeley]:::server
SYSV[System V
1983
AT&T]:::server
U --> BSD
U --> SYSV
end
%% ========= BSD DERIVATIVES =========
subgraph BSD_SYS["BSD-derived Systems"]
direction TB
DARWIN[Darwin / XNU
2000
Apple]:::hybrid
MAC[macOS
2001]:::desktop
IOS[iOS / iPadOS
2007]:::desktop
BSDOS[FreeBSD / OpenBSD / NetBSD
1993β1996]:::server
BSD --> DARWIN
DARWIN --> MAC
DARWIN --> IOS
BSD --> BSDOS
end
%% ========= CLASSIC MAC =========
CLASSIC[Classic Mac OS
1984
Apple]:::desktop
CLASSIC -.-> MAC
%% ========= MINIX =========
MINIX[MINIX
1987
Andrew S. Tanenbaum]:::server
%% ========= LINUX KERNEL =========
subgraph LINUX["Linux Kernel"]
direction TB
LINUXK[Linux Kernel
1991
Linus Torvalds]:::server
end
%% ========= LINUX DISTRIBUTIONS CALLOUT =========
subgraph LINUXDIST["Linux Distributions"]
direction TB
NOTE[Linux is a kernel.
Distributions combine it with
userland, package managers,
and policies.]:::hybrid
end
LINUXK --> NOTE
%% ========= EARLY LINUX DISTROS =========
subgraph EARLYDIST["Early Linux Distributions"]
direction TB
SLACK[Slackware
1993]:::server
DEB[Debian
1993]:::server
RH[Red Hat Linux
1994]:::server
LINUXK --> SLACK
LINUXK --> DEB
LINUXK --> RH
end
%% ========= DEBIAN FAMILY =========
subgraph DEBFAM["Debian Family"]
direction TB
UB[Ubuntu
2004
Canonical]:::hybrid
MINT[Linux Mint
2006]:::desktop
KALI[Kali Linux
2013]:::server
DEB --> UB
UB --> MINT
DEB --> KALI
end
%% ========= RED HAT FAMILY =========
subgraph RHF["Red Hat Family"]
direction TB
FED[Fedora
2003]:::hybrid
RHEL[RHEL
2002]:::server
CLONES[RHEL Clones
CentOS / Alma / Rocky
2004β2021]:::server
RH --> FED --> RHEL --> CLONES
end
%% ========= INDEPENDENT DISTROS =========
subgraph INDEP["Independent Linux Distributions"]
direction TB
ARCH[Arch Linux
2002]:::hybrid
GENTOO[Gentoo
2002]:::hybrid
LINUXK --> ARCH
LINUXK --> GENTOO
end
%% ========= MOBILE / SPECIALIZED =========
subgraph MOBILE["Mobile / Specialized Linux"]
direction TB
AND[Android
2008
Google]:::desktop
CHROMIUM[Chromium OS
2009]:::hybrid
CHROME[Chrome OS
2011]:::desktop
LINUXK --> AND
LINUXK --> CHROMIUM --> CHROME
end
%% ========= WINDOWS =========
subgraph WINDOWS["Windows NT Family"]
direction TB
NT[Windows NT
1993]:::server
W2K[Windows 2000 / XP
2000β2001]:::hybrid
W7[Windows 7
2009]:::hybrid
W10[Windows 10 / 11
2015β2021]:::desktop
NT --> W2K --> W7 --> W10
end
%% ========= INFLUENCE LINKS =========
U -.->|POSIX / UNIX concepts| LINUXK
MINIX -.->|UNIX-like| LINUXK
DOS --> NT
%% ========= SUBGRAPH STYLING =========
style UNIX fill:#FBF2EA,stroke:#B85C38,stroke-width:2.5px
style BSD_SYS fill:#EEF3F8,stroke:#4A6FA5,stroke-width:2.5px
style LINUX fill:#F6F1E7,stroke:#9C8A4D,stroke-width:2.5px
style EARLYDIST fill:#EDF4EF,stroke:#5C8A72,stroke-width:2px
style DEBFAM fill:#EAF3F1,stroke:#4F8F8B,stroke-width:2px
style RHF fill:#F4EEE9,stroke:#9A6B4F,stroke-width:2px
style INDEP fill:#F1F3F3,stroke:#6B7280,stroke-width:2px
style MOBILE fill:#FAF0EB,stroke:#C97C5D,stroke-width:2px
style WINDOWS fill:#EEF2F7,stroke:#3A5F8C,stroke-width:2.5px
style EARLY fill:#F4F4F2,stroke:#7A7A7A,stroke-width:2px
style LEGEND fill:#F6F6F6,stroke:#999,stroke-width:1.8px
style LINUXDIST fill:#EDF2F7,stroke:#5A6F8E,stroke-width:2px