История Unix: от Bell Labs до наших дней

Unix — это не просто операционная система. Это философия, которая сформировала весь современный мир IT. Сегодня на Unix-подобных системах работают серверы, смартфоны (Android), роутеры, суперкомпьютеры и даже марсоходы.

Давайте разберёмся, как всё начиналось и почему Unix жива до сих пор.


Рождение (1969)

Всё началось в Bell Labs — исследовательском центре компании AT&T. Кен Томпсон и Деннис Ритчи работали над операционной системой Multics, но проект оказался слишком сложным и дорогим. AT&T вышла из проекта, и Томпсон начал писать свою систему «с нуля» на старом компьютере PDP-7.

Первая версия Unix была написана на ассемблере и занимала всего 16 КБ памяти.

# Вот как выглядел бы "hello world" в духе ранней Unix:
$ echo "Hello, World!"
Hello, World!

Интересный факт: Название «Unix» — игра слов. Multics = «multi-plexed information and computing service», а Unix = «uniplexed...» (то есть «одно-», а не «много-»).


Переписывание на C (1973)

В 1973 году Деннис Ритчи создал язык C, и вместе с Томпсоном они переписали на нём ядро Unix. Это стало революцией:

  • До этого ОС писались на ассемблере под конкретный процессор
  • Unix на C стала переносимой — её можно скомпилировать под любую архитектуру
  • Это открыло путь к портированию на PDP-11, VAX, x86 и другие платформы
/* Минимальная программа на C в духе ранней Unix */
#include <stdio.h>

int main() {
    printf("Unix is simple.\n");
    return 0;
}

Философия Unix

Кен Томпсон и Деннис Ритчи сформулировали принципы, которые живы до сих пор:

  1. Делай одну вещь и делай её хорошо — каждая программа решает одну задачу
  2. Пиши программы для совместной работы — используй текстовый ввод/вывод как универсальный интерфейс
  3. Пиши программы для обработки текстовых потоков — это универсальный интерфейс

Пример — конвейер (pipe):

# Найти все процессы nginx, отсортировать и посчитать
ps aux | grep nginx | sort | wc -l

Каждая команда делает одну вещь, а вместе они решают сложную задачу.


Раскол: BSD vs System V (1980-е)

В 1980-х Unix разделилась на две основные ветки:

Ветка Кто развивал Особенности
BSD (Berkeley Software Distribution) Калифорнийский университет в Беркли Сетевой стек TCP/IP, виртуальная память, vi
System V AT&T / Bell Labs Коммерческая версия, init-скрипты, System V IPC

BSD породила FreeBSD, OpenBSD, NetBSD, macOS (частично). System V стала основой для коммерческих Unix: AIX, HP-UX, Solaris.


GNU/Linux (1991)

К 1990 году проект GNU (Richar Stallman, 1983) создал почти все компоненты свободной Unix-подобной системы: компилятор GCC, оболочку Bash, утилиты coreutils. Не хватало только ядра (Hurd застрял в разработке).

В 1991 году финский студент Линус Торвальдс написал своё ядро — Linux.

# Проверка версии ядра на современном Linux
$ uname -a
Linux VM-210918 6.8.0-107-generic #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux

Linux + GNU-утилиты = полноценная свободная Unix-подобная система.


Unix сегодня

Система На основе Где используется
Linux (Ubuntu, CentOS, Debian) Linux kernel Серверы (96%), суперкомпьютеры, Android
macOS BSD (Darwin) Десктопы, ноутбуки Apple
FreeBSD BSD Серверы, сети, Netflix, PlayStation
Solaris System V Корпоративные серверы Oracle
AIX System V IBM мейнфреймы
OpenWrt Linux Роутеры, встраиваемые системы

Заключение

Unix существует уже более 55 лет — и до сих пор доминирует в серверном мире. Её философия «делай одну вещь хорошо» актуальна и сегодня, когда мы настраиваем серверы, пишем скрипты и администрируем сети.

Как сказал Кен Томпсон:

One of my most productive days was throwing away 1000 lines of code.


Следующая статья: «Основы настройки SSH-сервера на Ubuntu 24.04»