История Unix

«Рукописи не горят», — заметил Воланд, перелистывая исходники V6 Unix.
«А вот ленты с ними, — добавил Коровьев, — очень даже неплохо тлеют.»


Предисловие

Настоящая работа представляет собой попытку систематизации полувековой истории операционной системы Unix — системы, которая, по замечанию Эрика Реймонда, «пережила несколько поколений железа, три мировых экономических кризиса и примерно пятнадцать провозглашённых смертей». Автор ставит своей целью не только изложение хронологической канвы событий, но и анализ идейного наследия Unix, оказавшего определяющее влияние на всю последующую индустрию программного обеспечения.

«Прелесть, — заметил Воланд, — заключается в том, что никто не проектировал Unix как систему, которой суждено пережить всех её создателей. Это случается реже, чем кажется москвичам, квартирный вопрос которых вечен.»


Глава I. Предыстория: гибель Multics (1964–1969)

«Когда проект велик и амбициозен — жди аннушку с маслом.»

В 1964 году компании AT&T Bell Labs, General Electric и Массачусетский технологический институт объединили усилия для создания амбициозной операционной системы Multics (Multiplexed Information and Computing Service). Проект, задуманный как вычислительная утилита — аналог электричества, подаваемого по проводам в каждый дом, — должен был поддерживать сотни одновременных пользователей на мейнфрейме GE-645.

К 1969 году стало очевидно, что Multics страдает от двух смертельных недугов: переусложнённости архитектуры и политических разногласий участников. В апреле 1969 года Bell Labs официально вышла из проекта1.

Возвращаясь в родные лаборатории в Мюррей-Хилл (Нью-Джерси), инженеры Bell Labs — Кен Томпсон, Деннис Ритчи, Дуглас Макилрой и Джо Оссанна — оказались в положении людей, лишившихся любимой вычислительной среды. Томпсон, в частности, был раздосадован потерей возможности играть в написанную им для Multics игру Space Travel. Именно это обстоятельство, как сам Томпсон неоднократно признавал, стало непосредственной причиной создания Unix.

«История, достойная кисти Босха, — пробормотал Воланд. — Величайшая операционная система XX века родилась из желания поиграть в космос. Обратите внимание, граждане: не нужда вдохновляет творца, а скука.»


Глава II. Рождение Unix на PDB-7 (1969–1971)

«В начале было слово, — задумчиво произнёс Коровьев, — и слово это было cat

Летом 1969 года, когда супруга Томпсона увезла месячного сына в Калифорнию к родственникам, у него образовались три свободные недели. По собственному признанию Томпсона: «Я решил отвести неделю на операционную систему, неделю на командный интерпретатор, неделю на редактор и неделю на ассемблер»2.

Первоначальная версия Unix была написана на ассемблере для машины DEC PDP-7 — устаревшего даже по тем временам компьютера, стоявшего в углу коридора Bell Labs. Машина располагала 8 КБ оперативной памяти и магнитной лентой в качестве основного накопителя.

Имя UNIX (первоначально — UNICS, Uniplexed Information and Computing Service) было предложено Брайаном Керниганом как игривая антитеза Multics. По одной из версий, UNICS воспринималось как «emasculated Multics» — «кастрированный Multics».

Ключевые архитектурные решения того периода:

  • Иерархическая файловая система — нововведение для того времени;
  • Концепция «всё есть файл» — устройства, процессы, сокеты унифицированно представляются файлами;
  • Разделение пользователей и процессов — многопользовательская среда;
  • Малое ядро, большая часть функциональности вынесена в утилиты.

«Восхитительно, — заметил Воланд. — Два инженера в подсобке, не имея ни бюджета, ни благословения начальства, закладывают основу индустрии на пятьдесят лет вперёд. А в это время в соседнем корпусе десятки планировщиков с галстуками пишут отчёты о провале Multics. Quod licet Jovi, non licet bovi3


Глава III. Язык C и переписывание ядра (1972–1973)

«Деннис Ритчи дал миру два подарка: язык C и Unix. Один из них оказался долговечнее самого Ритчи, другой — всех нас.» — Брайан Керниган

Изначально ассемблерный код ядра привязывал Unix к конкретной архитектуре PDP. В 1971–1972 годах Деннис Ритчи создаёт язык программирования C — развитие языка B, разработанного Томпсоном, который, в свою очередь, был упрощением BCPL Мартина Ричардса.

Язык C проектировался с прагматичной целью: дать системному программисту мощь ассемблера без привязки к архитектуре. Ритчи формулировал это так: «C — странный, несовершенный язык. Но он колоссально успешен»4.

В 1973 году ядро Unix было переписано на C. Это событие — первый в истории случай написания операционной системы на языке высокого уровня — стало решающим. С этого момента Unix получил возможность переноситься на новые архитектуры за недели, а не за годы.

Ключевые концепции, введённые в этот период:

/* Классическая идиома Unix: создание процесса через fork() */
if (fork() == 0) {
    execve("/bin/sh", argv, envp);  /* дочерний процесс */
}
/* родительский процесс продолжается */

Системный вызов fork() — одно из изящнейших изобретений в истории системного программирования. Вместо сложной процедуры создания процесса из файла, Unix предложил бинарное решение: процесс клонирует сам себя, а затем (по желанию) заменяет свой образ на другую программу через exec().

«Бесподобно, — усмехнулся Воланд. — Бог создал человека по образу и подобию своему. А Томпсон и Ритчи научили процесс порождать самого себя простым движением руки. Вопрос о первичности теперь открыт.»

В 1974 году в Communications of the ACM была опубликована статья Ритчи и Томпсона «The UNIX Time-Sharing System», представившая систему академическому сообществу. Реакция была ошеломительной: университеты начали запрашивать исходные коды.


Глава IV. Распространение и ранние клоны (1974–1978)

Согласно антимонопольному соглашению 1956 года, AT&T не имела права продавать программное обеспечение коммерчески. Это парадоксальное обстоятельство обернулось благом: Bell Labs раздавала Unix университетам по цене носителя плюс пересылка — фактически бесплатно, с исходными кодами.

Ключевые вехи этого периода:

Год Событие
1975 V6 Unix — первая широко распространённая версия
1976 Джон Лайонс пишет Lions' Commentary on UNIX 6th Edition — первый разбор ядра, разошедшийся по рукам в копиях
1977 University of Wollongong — первый порт на не-DEC архитектуру (Interdata 7/32)
1978 V7 Unix — канонический Unix, прародитель всех последующих ветвей

V7 Unix (1979) стал точкой, от которой далее разветвлялась вся генеалогия системы. Он включал язык awk, компилятор C, оболочку Bourne shell (sh), утилиты grep, find, make — большая часть того, что мы и сегодня знаем как «Unix toolbox».

«Замечательная история. AT&T, скованная антимонопольными кандалами, раздавала бесплатно то, что впоследствии стало стоить миллиарды. Когда кандалы сняли, оказалось, что бывшего товара уже не вернуть — он разошёлся по всему миру. Мораль: оковы иногда полезны даже для гигантов.»


Глава V. Беркли и рождение BSD (1977–1983)

«Университетские кампусы — опасное место для любой системы. Особенно калифорнийские.»

В 1975 году Кен Томпсон на творческом отпуске отпрfвился в альма-матер — Калифорнийский университет в Беркли, — где принял участие в установке Unix на PDP-11/70 факультета информатики. Среди студентов оказался аспирант по имени Билл Джой.

Джой и его коллеги начали активно модифицировать Unix. В 1977 году они распространили первый Berkeley Software Distribution (1BSD) — набор дополнений к V6: редактор ex (предок vi), компилятор Паскаля, оболочка csh. К 1980 году в 3BSD и 4BSD был добавлен революционный механизм виртуальной памяти со страничной организацией.

4.2BSD (1983) — эпохальный релиз. Финансируемый DARPA (Агентством перспективных оборонных исследовательских проектов США), он включал:

  • Полную реализацию TCP/IP — именно эта реализация станет основой Интернета;
  • Сокеты как API для сетевого программирования;
  • Быструю файловую систему (FFS);
  • Сигналы Unix в их современном виде.

Можно без преувеличения сказать: без Berkeley Unix не было бы Интернета в том виде, в каком мы его знаем. Первые десятилетия TCP/IP-стек распространялся именно с BSD.

«Прелестно, — сказал Воланд. — Военное ведомство Соединённых Штатов финансирует хиппи из Калифорнии, чтобы те написали сеть, в которой потом будут распространяться идеи, делающие государственные границы бессмысленными. История любит иронию больше, чем Берлиоз любил трамваи.»


Глава VI. System V и UNIX Wars (1983–1993)

«Когда два брата спорят за наследство, третий продаёт его с молотка.»

После снятия антимонопольных ограничений в 1983 году AT&T выпускает коммерческую ветвь — UNIX System V. Начинается период, вошедший в историю как UNIX Wars: ожесточённая борьба между System V (AT&T) и BSD (Berkeley), к которой присоединяются производители аппаратного обеспечения со своими диалектами:

  • SunOS (Sun Microsystems) — на основе BSD;
  • HP-UX (Hewlett-Packard) — на основе System V;
  • AIX (IBM) — гибрид System V и BSD;
  • IRIX (SGI), Ultrix (DEC), A/UX (Apple), Xenix (Microsoft) и многие другие.

Фрагментация была настолько сильной, что программы, написанные для одной вариации Unix, требовали существенной доработки для другой. В ответ на этот хаос родилась POSIX (Portable Operating System Interface) — серия стандартов IEEE, первая версия которой появилась в 1988 году.

Кульминацией войн стал иск AT&T против BSDi (1992), оспаривавший права на код BSD. Разбирательство затянулось на два года, парализовав развитие BSD-ветви на критический момент — момент, когда мир нуждался в свободной Unix-подобной системе для PC. Этим обстоятельством воспользуется никому тогда не известный финский студент.

«Оно и понятно, — заметил Воланд. — Пока гиганты мерились силами в зале суда, где-то в Хельсинки юноша по имени Линус пиликал на терминале, не подозревая, что пишет эпитафию для всех судящихся разом.»


Глава VII. GNU и идеология свободного ПО (1983–1991)

«Free as in freedom, not as in free beer.» — Ричард Столлман

В 1983 году Ричард Столлман, программист лаборатории искусственного интеллекта MIT, объявил о начале проекта GNU (GNU's Not Unix) — цель которого состояла в создании полностью свободной Unix-совместимой операционной системы.

В 1985 году Столлман основал Free Software Foundation и сформулировал четыре фундаментальные свободы пользователя ПО:

0. Свобода запускать программу с любой целью.
1. Свобода изучать программу и изменять её.
2. Свобода распространять копии.
3. Свобода улучшать программу и публиковать улучшения.

Для юридической защиты этих свобод была создана GNU General Public License (GPL) — лицензия с условием «наследования свобод» (copyleft).

К началу 1990-х проект GNU располагал большей частью компонентов Unix-системы: компилятором GCC, отладчиком GDB, Emacs, Bash, coreutils, binutils. Не хватало лишь одного компонента — ядра. Работа над ядром GNU Hurd, основанным на микроядре Mach, велась крайне медленно.

«Забавная картина, — хмыкнул Воланд. — Столлман, как строитель вавилонской башни, за десять лет возвёл все этажи, кроме фундамента. А потом — прилетел Линус с фундаментом под мышкой. Quod erat demonstrandum.»


Глава VIII. Linux (1991–2000)

«I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu).» — Линус Торвальдс, 25 августа 1991 г.

25 августа 1991 года 21-летний студент Хельсинкского университета Линус Торвальдс разместил в конференции comp.os.minix сообщение, начинавшееся словами, ставшими каноническими в истории вычислительной техники. Сам автор полагал свою работу несерьёзной — хобби для 386-го компьютера.

К декабрю 1991 года появилась Linux 0.0.1 — под лицензией, запрещавшей коммерческое использование. В феврале 1992 года Торвальдс принял судьбоносное решение: сменить лицензию на GPL. Это открыло дорогу к интеграции с инструментарием GNU и позволило сформироваться экосистеме, известной как GNU/Linux.

Ключевые события 1990-х:

Год Событие
1993 Появление Slackware и Debian — первых значительных дистрибутивов
1994 Linux 1.0
1996 Linux 2.0 — поддержка SMP (многопроцессорность)
1998 Apache превосходит IIS по числу установок; Netscape открывает исходники → рождается Mozilla
1999 Linux 2.2; IBM инвестирует миллиард долларов в Linux

Особенность Linux — его модель разработки. Эрик Реймонд в знаменитом эссе «The Cathedral and the Bazaar» (1997) противопоставил:

  • Собор — модель GNU и традиционного ПО: иерархическая разработка, релизы раз в годы;
  • Базар — модель Linux: открытые публичные обсуждения, частые релизы, распределённая ответственность.

«Базарная» модель оказалась удивительно продуктивной.

«Никогда и ничего не просите, — задумчиво произнёс Воланд, — сами пришлют и патчи, и багрепорты, и флейм на Linux Kernel Mailing List. Главное — не забывать отвечать NACK тем, кто этого заслуживает.»


Глава IX. Возвращение BSD и ветвление (1993–2005)

Пока Linux набирал популярность, ветвь BSD оправлялась от юридических баталий. В 1994 году иск AT&T был урегулирован, и окончательно свободный код 4.4BSD-Lite2 стал фундаментом для трёх важнейших проектов:

  • FreeBSD (1993) — нацелен на максимальную производительность и дружелюбие к пользователю. Сегодня на FreeBSD работают Netflix, WhatsApp и игровая консоль Sony PlayStation;
  • NetBSD (1993) — девиз: «Of course it runs NetBSD». Поддерживает более 50 архитектур — от тостеров до космических зондов;
  • OpenBSD (1995) — форк NetBSD, созданный Тео де Раадтом. Фокус на безопасности и корректности кода. Подарил миру OpenSSH — самую распространённую реализацию SSH в мире.

Интересно наблюдать, как разошлись философии: Linux развивался как «громкий базар», BSD — как «тихие монастыри», где каждая семья имеет свою дисциплину. Обе модели оказались жизнеспособными.

«Всё как у людей, — заметил Коровьев. — Одни кричат на площади, другие молятся в кельях. И те, и другие пишут операционные системы.»


Глава X. Darwin, macOS и неожиданный триумф Unix (2001)

«Кто бы мог подумать, что самая популярная Unix-система в мире окажется проданной по цене премиум-ноутбука.»

В 1996 году Apple Computer переживала тяжелейший кризис. В попытке спасти компанию, генеральный директор Джил Амелио приобрёл NeXT — компанию Стива Джобса, разрабатывавшую операционную систему NeXTSTEP на основе ядра Mach и компонентов BSD.

С возвращением Джобса в Apple NeXTSTEP был переработан в Darwin — открытое ядро Unix-системы, на основе которого в марте 2001 года вышла Mac OS X 10.0 «Cheetah». Впервые в истории Apple получила сертификацию Single UNIX Specification — формально, macOS стала «настоящим UNIX» в юридическом смысле, в отличие от Linux, никогда такой сертификации не проходившего.

Следствия этого шага оказались огромными:

  • Миллионы разработчиков получили Unix-окружение в потребительском ноутбуке;
  • iOS, iPadOS, watchOS, tvOS — все ядра основаны на Darwin;
  • Впервые в истории Unix оказался в кармане у каждого.

В 2007 году iPhone, несущий в себе потомка Unix родом из 1969 года, расходится миллионными тиражами. К 2020-м на планете работают миллиарды устройств с Unix-подобными системами.

«Это, — сказал Воланд, — то, что в моей практике называется триумфом идеи над её создателями. Бell Labs давно в архиве, AT&T продала подразделение, Sun куплена Oracle, SGI разорилась, но система, написанная Томпсоном за три недели в 1969 году, — жива, здорова и ежедневно заставляет шестимиллиардное человечество смотреть в свои экраны.»


Глава XI. Современность: Unix в облаках и встроенных устройствах (2005–2026)

Современная картина Unix-экосистемы:

Серверы и облака

Свыше 96% публичных серверов Интернета работают под управлением Linux5. Все гипервизоры — KVM (Linux), bhyve (FreeBSD), Hyper-V (хотя и не-Unix) — конкурируют на поле, основанном Unix-концепциями. Контейнерная революция (Docker, Kubernetes) целиком опирается на Linux namespaces и cgroups.

Смартфоны

Android (на основе Linux) и iOS (на основе Darwin/BSD) делят между собой ~99% рынка мобильных ОС. Уникальная ситуация: обе доминирующие системы являются Unix-подобными.

Встроенные системы

Маршрутизаторы, холодильники, автомобили Tesla, марсоход Perseverance (Linux на борту!), Международная космическая станция — всё работает под управлением Unix-подобных систем.

Персональные компьютеры

По иронии судьбы, на настольных ПК Unix-подобные системы составляют лишь 3–5% рынка (Linux) + 15–20% (macOS). Windows NT, никогда не бывшая Unix, по-прежнему доминирует на рабочих станциях.

Научные вычисления

Все 500 самых мощных суперкомпьютеров мира (TOP500) работают под Linux. Без исключений.

«Замечательная картина, — отметил Воланд, обозревая глобус. — Система, созданная без плана, без бюджета и без начальства, к 2026 году доминирует на серверах, смартфонах, суперкомпьютерах, маршрутизаторах и даже на Марсе. Единственное место, куда она не попала, — домашние компьютеры обывателей. И, видит Всевышний, это к лучшему: если бы каждая домохозяйка имела bash — кто бы тогда пользовался Windows?»


Глава XII. Философия Unix — почему эта система пережила своих создателей

«Пиши программы, которые делают одну вещь и делают её хорошо. Пиши программы, работающие вместе. Пиши программы, обрабатывающие текстовые потоки, ибо это универсальный интерфейс.»Дуглас Макилрой

Долговечность Unix объясняется не столько техническими решениями, сколько философией, сформулированной его создателями. Ключевые принципы:

  1. Правило модульности. Пиши простые части, связанные чистыми интерфейсами.
  2. Правило ясности. Ясность лучше хитроумности.
  3. Правило композиции. Проектируй программы для взаимодействия с другими программами.
  4. Правило разделения. Отделяй политику от механизма; отделяй интерфейс от движка.
  5. Правило простоты. Проектируй ради простоты; добавляй сложность только там, где должен.
  6. Правило экономии. Пиши большую программу только тогда, когда становится ясно, что ничто иное не подойдёт.
  7. Правило прозрачности. Проектируй ради видимости, чтобы облегчить проверку и отладку.
  8. Правило молчания. Когда программа не имеет ничего удивительного сказать — пусть молчит.
  9. Правило починки. Когда должна упасть — падай шумно и как можно скорее.
  10. Правило оптимизации. Сперва прототипируй, потом профилируй, потом оптимизируй.

Эти правила, сформулированные Реймондом в книге The Art of Unix Programming (2003), представляют собой квинтэссенцию подхода, выкристаллизовавшегося за три десятилетия практической работы.

Концепция «всё есть файл» позволила унифицировать работу с устройствами, процессами, сетями. Концепция pipe (|) позволила композировать простые инструменты в сложные пайплайны: cat log | grep ERROR | sort | uniq -c | sort -rn | head — классическая Unix-поэзия.

«В том-то и дело, — подытожил Воланд, — что Unix пережил всех своих создателей именно потому, что его создатели были мудрее своих творений. Они не пытались написать всё. Они написали малое — но правильное малое. А всё остальное — доросло само.»


Заключение

История Unix — это история о том, как небольшая группа инженеров, работавших в нерабочее время на устаревшем оборудовании, изменила мир вычислений на несколько поколений вперёд. От PDP-7 в 1969 году до миллиардов Android-устройств, серверов Google, суперкомпьютеров и Марса в 2026 году — Unix прошёл путь, не имеющий равных в истории программного обеспечения.

Ключевые выводы:

  1. Простота побеждает сложность. Multics проиграл Unix именно из-за переусложнённости.
  2. Открытые исходники — двигатель эволюции. Unix распространился именно благодаря раздаче кода университетам.
  3. Философия важнее технологии. Архитектурные решения Unix актуальны через 57 лет после их принятия.
  4. Фрагментация — не всегда зло. UNIX Wars привели к POSIX, который, в свою очередь, позволил выжить всей экосистеме.
  5. История непредсказуема. Никто в 1969 году не думал, что «кастрированный Multics» проживёт до 2026 года и дальше.

«Запомните, Сергей, — сказал Воланд, закрывая man(1), — никакая система не живёт вечно. Но некоторые живут достаточно долго, чтобы увидеть, как хоронят всех, кто предрекал им смерть. Unix — одна из таких систем. И когда-нибудь — не сегодня и не завтра — её тоже похоронят. Но я, к примеру, ставлю на то, что она переживёт нас всех. Аннушка уже купила масло, но проливать его над Unix пока рано.»


Библиография

  1. Ritchie D. M., Thompson K. The UNIX Time-Sharing System // Communications of the ACM. — 1974. — Vol. 17, No. 7.
  2. Salus P. H. A Quarter Century of UNIX. — Addison-Wesley, 1994.
  3. McKusick M. K., Bostic K., Karels M. J., Quarterman J. S. The Design and Implementation of the 4.4BSD Operating System. — Addison-Wesley, 1996.
  4. Raymond E. S. The Cathedral and the Bazaar. — O'Reilly Media, 1999.
  5. Raymond E. S. The Art of Unix Programming. — Addison-Wesley, 2003.
  6. Kernighan B. W. UNIX: A History and a Memoir. — Independently published, 2019.
  7. Torvalds L., Diamond D. Just for Fun: The Story of an Accidental Revolutionary. — HarperBusiness, 2001.
  8. Stallman R. Free Software, Free Society: Selected Essays of Richard M. Stallman. — GNU Press, 2002.

Конец документа. Читавшему — свободы, правившему — chmod 644, удалившему — да будет с ним сила rm -rf /.


  1. См. подробнее: Salus P. H. A Quarter Century of UNIX. — Addison-Wesley, 1994. — С. 23–41. 

  2. Ritchie D. M. The Evolution of the Unix Time-sharing System // AT&T Bell Laboratories Technical Journal. — 1984. — Vol. 63, No. 8. — P. 1577–1593. 

  3. «Что позволено Юпитеру, не позволено быку» (лат.). 

  4. Ritchie D. M. The Development of the C Language // History of Programming Languages II. — ACM Press, 1996. 

  5. По данным Netcraft Web Server Survey, апрель 2026 г.