«Рукописи не горят», — заметил Воланд, перелистывая исходники V6 Unix.
«А вот ленты с ними, — добавил Коровьев, — очень даже неплохо тлеют.»
Настоящая работа представляет собой попытку систематизации полувековой истории операционной системы Unix — системы, которая, по замечанию Эрика Реймонда, «пережила несколько поколений железа, три мировых экономических кризиса и примерно пятнадцать провозглашённых смертей». Автор ставит своей целью не только изложение хронологической канвы событий, но и анализ идейного наследия Unix, оказавшего определяющее влияние на всю последующую индустрию программного обеспечения.
«Прелесть, — заметил Воланд, — заключается в том, что никто не проектировал Unix как систему, которой суждено пережить всех её создателей. Это случается реже, чем кажется москвичам, квартирный вопрос которых вечен.»
«Когда проект велик и амбициозен — жди аннушку с маслом.»
В 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 века родилась из желания поиграть в космос. Обратите внимание, граждане: не нужда вдохновляет творца, а скука.»
«В начале было слово, — задумчиво произнёс Коровьев, — и слово это было
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.»
«Деннис Ритчи дал миру два подарка: язык 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», представившая систему академическому сообществу. Реакция была ошеломительной: университеты начали запрашивать исходные коды.
Согласно антимонопольному соглашению 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, скованная антимонопольными кандалами, раздавала бесплатно то, что впоследствии стало стоить миллиарды. Когда кандалы сняли, оказалось, что бывшего товара уже не вернуть — он разошёлся по всему миру. Мораль: оковы иногда полезны даже для гигантов.»
«Университетские кампусы — опасное место для любой системы. Особенно калифорнийские.»
В 1975 году Кен Томпсон на творческом отпуске отпрfвился в альма-матер — Калифорнийский университет в Беркли, — где принял участие в установке Unix на PDP-11/70 факультета информатики. Среди студентов оказался аспирант по имени Билл Джой.
Джой и его коллеги начали активно модифицировать Unix. В 1977 году они распространили первый Berkeley Software Distribution (1BSD) — набор дополнений к V6: редактор ex (предок vi), компилятор Паскаля, оболочка csh. К 1980 году в 3BSD и 4BSD был добавлен революционный механизм виртуальной памяти со страничной организацией.
4.2BSD (1983) — эпохальный релиз. Финансируемый DARPA (Агентством перспективных оборонных исследовательских проектов США), он включал:
Можно без преувеличения сказать: без Berkeley Unix не было бы Интернета в том виде, в каком мы его знаем. Первые десятилетия TCP/IP-стек распространялся именно с BSD.
«Прелестно, — сказал Воланд. — Военное ведомство Соединённых Штатов финансирует хиппи из Калифорнии, чтобы те написали сеть, в которой потом будут распространяться идеи, делающие государственные границы бессмысленными. История любит иронию больше, чем Берлиоз любил трамваи.»
«Когда два брата спорят за наследство, третий продаёт его с молотка.»
После снятия антимонопольных ограничений в 1983 году AT&T выпускает коммерческую ветвь — UNIX System V. Начинается период, вошедший в историю как UNIX Wars: ожесточённая борьба между System V (AT&T) и BSD (Berkeley), к которой присоединяются производители аппаратного обеспечения со своими диалектами:
Фрагментация была настолько сильной, что программы, написанные для одной вариации Unix, требовали существенной доработки для другой. В ответ на этот хаос родилась POSIX (Portable Operating System Interface) — серия стандартов IEEE, первая версия которой появилась в 1988 году.
Кульминацией войн стал иск AT&T против BSDi (1992), оспаривавший права на код BSD. Разбирательство затянулось на два года, парализовав развитие BSD-ветви на критический момент — момент, когда мир нуждался в свободной Unix-подобной системе для PC. Этим обстоятельством воспользуется никому тогда не известный финский студент.
«Оно и понятно, — заметил Воланд. — Пока гиганты мерились силами в зале суда, где-то в Хельсинки юноша по имени Линус пиликал на терминале, не подозревая, что пишет эпитафию для всех судящихся разом.»
«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.»
«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) противопоставил:
«Базарная» модель оказалась удивительно продуктивной.
«Никогда и ничего не просите, — задумчиво произнёс Воланд, — сами пришлют и патчи, и багрепорты, и флейм на Linux Kernel Mailing List. Главное — не забывать отвечать NACK тем, кто этого заслуживает.»
Пока Linux набирал популярность, ветвь BSD оправлялась от юридических баталий. В 1994 году иск AT&T был урегулирован, и окончательно свободный код 4.4BSD-Lite2 стал фундаментом для трёх важнейших проектов:
Интересно наблюдать, как разошлись философии: Linux развивался как «громкий базар», BSD — как «тихие монастыри», где каждая семья имеет свою дисциплину. Обе модели оказались жизнеспособными.
«Всё как у людей, — заметил Коровьев. — Одни кричат на площади, другие молятся в кельях. И те, и другие пишут операционные системы.»
«Кто бы мог подумать, что самая популярная 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, никогда такой сертификации не проходившего.
Следствия этого шага оказались огромными:
В 2007 году iPhone, несущий в себе потомка Unix родом из 1969 года, расходится миллионными тиражами. К 2020-м на планете работают миллиарды устройств с Unix-подобными системами.
«Это, — сказал Воланд, — то, что в моей практике называется триумфом идеи над её создателями. Бell Labs давно в архиве, AT&T продала подразделение, Sun куплена Oracle, SGI разорилась, но система, написанная Томпсоном за три недели в 1969 году, — жива, здорова и ежедневно заставляет шестимиллиардное человечество смотреть в свои экраны.»
Современная картина 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?»
«Пиши программы, которые делают одну вещь и делают её хорошо. Пиши программы, работающие вместе. Пиши программы, обрабатывающие текстовые потоки, ибо это универсальный интерфейс.» — Дуглас Макилрой
Долговечность Unix объясняется не столько техническими решениями, сколько философией, сформулированной его создателями. Ключевые принципы:
Эти правила, сформулированные Реймондом в книге 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 прошёл путь, не имеющий равных в истории программного обеспечения.
Ключевые выводы:
«Запомните, Сергей, — сказал Воланд, закрывая
man(1), — никакая система не живёт вечно. Но некоторые живут достаточно долго, чтобы увидеть, как хоронят всех, кто предрекал им смерть. Unix — одна из таких систем. И когда-нибудь — не сегодня и не завтра — её тоже похоронят. Но я, к примеру, ставлю на то, что она переживёт нас всех. Аннушка уже купила масло, но проливать его над Unix пока рано.»
Конец документа. Читавшему — свободы, правившему — chmod 644, удалившему — да будет с ним сила rm -rf /.
См. подробнее: Salus P. H. A Quarter Century of UNIX. — Addison-Wesley, 1994. — С. 23–41. ↩
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. ↩
«Что позволено Юпитеру, не позволено быку» (лат.). ↩
Ritchie D. M. The Development of the C Language // History of Programming Languages II. — ACM Press, 1996. ↩
По данным Netcraft Web Server Survey, апрель 2026 г. ↩