SSD Nodes Learn 🎉 VPS от $5.50/мес
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-13

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

Узнайте, как Bell Labs в 1969 году заложила основы Unix и почему судебные иски 1992 года сделали Linux стандартом для серверов. Разбор ключевых этапов развития ОС и BSD.

Краткая история Unix и Linux

История Unix и Linux — это затяжной спор о том, кому принадлежат права на исходный код. Разработка Unix началась в Bell Labs в 1969 году. История Linux началась в Хельсинки в 1991 году, и эта система не содержит исходного кода Unix. Между ними сохранились общие принципы проектирования и набор опубликованных интерфейсов: файлы, процессы, каналы (pipes) и командная оболочка (shell), объединяющая небольшие программы в единую цепочку. В 1970-х годах Unix распространился по университетам, так как антимонопольное соглашение 1956 года запрещало AT&T (American Telephone and Telegraph) заниматься продажей программного обеспечения, поэтому Bell Labs предоставляла лицензии на исходный код по низкой цене. В итоге Unix стал повсеместным, оставаясь при этом собственностью AT&T, а последовавшие за этим лицензионные конфликты определили, какая именно свободная Unix-подобная система в конечном итоге окажется в вашей серверной стойке.

1969: запасной PDP-7 и идеи, которые прижились

В 1969 году Bell Labs вышла из проекта Multics. Multics (multiplexed information and computing service) была масштабной системой разделения времени, созданной совместно с MIT и General Electric, и в лаборатории решили, что проект слишком велик для завершения. Кен Томпсон сохранил понравившиеся ему идеи, отбросив остальное, и написал небольшую систему разделения времени на списанном мини-компьютере PDP-7. К нему присоединился Деннис Ритчи. Название Unix было шуткой в адрес Multics.

В 1970 году система переехала на PDP-11, которую лаборатория приобрела для машинисток патентного отдела, так как инструмент для обработки текста было проще профинансировать, чем операционную систему. У той машины было 24 KB оперативной памяти, разделенной между системой и пользовательскими программами. Из-за этого случайного финансирования первое руководство по Unix, датированное ноябрем 1971 года, представляло собой набор отформатированных документов, и именно поэтому вы до сих пор вводите man 5 crontab. Номера разделов в том руководстве соответствуют номерам разделов в вашем.

Два изменения сделали архитектуру системы постоянной. В 1973 году в Version 3 появились каналы (pipes), поскольку Дуг Макилрой годами доказывал, что программы должны соединяться друг с другом последовательно, и Томпсон добавил оператор |, чтобы вывод одной программы становился вводом для следующей. Затем Version 4, вышедшая позже в 1973 году, была переписана на C. Операционная система, написанная на переносимом языке, может быть перенесена на оборудование, для которого она не создавалась, — именно поэтому Unix пережила все машины, на которых она изначально работала.

Почему Unix получил распространение: AT&T было запрещено продавать его

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

Эффект оказался значительным, и он не входил в планы AT&T. Sixth Edition Unix, выпущенная в 1975 году, попала в сотни факультетов компьютерных наук вместе с полным исходным кодом. Джон Лайонс из Университета Нового Южного Уэльса напечатал исходный код ядра с построчными комментариями и преподавал по нему. Целое поколение узнало, как работает операционная система, изучая реальную систему.

Затем лицензия изменилась. Лицензия Seventh Edition в 1979 году запретила использование исходного кода на занятиях, поэтому комментарии Лайонса распространялись в виде ксерокопий. В этом заключается суть всей истории. Unix был повсюду и одновременно оставался несвободным, поэтому любое улучшение, сделанное кем-либо, становилось улучшением проприетарного кода другого владельца.

Berkeley: компоненты Unix, которые вы используете в командной строке

Кен Томпсон провел 1975–1976 учебный год в Калифорнийском университете в Беркли, оставив после себя очень активную группу разработчиков Unix. Группа компьютерных системных исследований (CSRG) в Беркли распространяла ленты с локальными улучшениями, которые впоследствии стали BSD (Berkeley Software Distribution). Билл Джой выполнил большую часть ранней работы: 1BSD в 1978 году, затем 2BSD в 1979 году, в которую вошли редактор vi и C shell.

C shell — это источник синтаксиса !! и !$. Bash унаследовал этот синтаксис, поэтому расширение истории в bash до сих пор удивляет пользователей, которые вводят восклицательный знак внутри двойных кавычек спустя сорок с лишним лет.

Затем DARPA (Агентство передовых оборонных исследовательских проектов США) профинансировало внедрение новых интернет-протоколов в Unix силами Беркли. Версия 4.2BSD, выпущенная в августе 1983 года, содержала стек TCP/IP (протокол управления передачей поверх межсетевого протокола) и программный интерфейс сокетов. Любой сетевой сервис на вашем сервере до сих пор вызывает socket(), bind(), listen() и accept() именно в таком порядке, потому что эти имена были выбраны в Беркли в 1983 году.

Одна деталь определила развитие на следующее десятилетие. Лента BSD не была полноценной системой. Это был набор дополнений к Unix от AT&T, и для законного использования требовалась действующая лицензия на исходный код AT&T. В течение нескольких лет Беркли заменял компоненты AT&T собственным кодом, файл за файлом. Вопрос о том, была ли эта замена действительно полной, позже стал предметом судебного разбирательства.

1984: распад и Unix-войны

Система Bell была разделена 1 января 1984 года, и вместе с ней прекратило действие мировое соглашение, запрещавшее AT&T заниматься программным обеспечением. Теперь AT&T могла продавать Unix как продукт, что она и сделала. Коммерческие лицензии на исходный код стали дорогими, поэтому Unix перестал быть дешевым инструментом, который университет мог просто передать студентам.

Поставщики уже успели создать форки системы. Каждая компания-производитель рабочих станций поставляла свой собственный Unix для своего оборудования, поэтому к концу 1980-х годов программу, написанную для одной системы, приходилось портировать на другую. В 1988 году индустрия разделилась на два лагеря: Open Software Foundation с одной стороны и Unix International с другой. Они годами выпускали несовместимые системы, споря о том, чей Unix является настоящим.

POSIX (portable operating system interface) появился как ответ на этот хаос. Стандарт IEEE 1003.1 был опубликован в 1988 году; в нем было зафиксировано, что именно должна делать Unix-подобная система: системные вызовы, поведение оболочки, стандартные утилиты и интерфейсы библиотеки C. Это важнее, чем кажется, поскольку стандарт — это спецификация, на которую не распространяются лицензии. Три года спустя студент написал ядро, опираясь на эти документы.

Minix и оставленный им пробел

Andrew Tanenbaum выпустил Minix в 1987 году в качестве учебной системы для своего учебника по операционным системам. Minix была небольшой Unix-подобной системой, исходный код которой прилагался к книге, и она работала на недорогих ПК, которые действительно были у студентов. Её было законно изучать в аудитории, в отличие от Seventh Edition Unix, которая к тому времени перестала быть таковой.

Minix намеренно оставалась компактной, так как её устройство должно было быть понятным в рамках книги, и Tanenbaum отклонял патчи, которые могли бы превратить её в промышленную систему. Лицензия также не была свободной: вы покупали книгу, и право на распространение модифицированной версии Minix вам не принадлежало. Таким образом, к 1991 году студент мог изучить работающее Unix-подобное ядро, но не мог создать на его основе ничего долговечного.

В GNU было всё, кроме ядра

Ричард Столмен анонсировал проект GNU в сентябре 1983 года, поставив целью создание полноценной свободной Unix-подобной системы. К 1991 году в рамках GNU была разработана большая часть компонентов, окружающих ядро: компилятор GCC, библиотека GNU C, бинарные утилиты и bash — командная оболочка, написанная Брайаном Фоксом в 1989 году, в которой ваш сервер запускает сеанс и сегодня. Ядро GNU, Hurd, оставалось тем самым компонентом, который постоянно задерживался.

Лицензия GNU General Public License версии 2 была опубликована в июне 1991 года. Её правило лаконично. Вы можете использовать код и изменять его, но если вы распространяете результат, вы обязаны предоставить исходный код на тех же условиях. Это правило станет ключевым моментом данной истории через два раздела.

Август 1991 года: сообщение в comp.os.minix

25 августа 1991 года студент из Хельсинки опубликовал сообщение в группе Usenet comp.os.minix:

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones.

Версия 0.01 вышла в сентябре 1991 года. Она не содержала общего кода ни с Unix, ни с Minix. Это было новое ядро для архитектуры 386, разработанное на машине с Minix, написанное с использованием интерфейсов POSIX и дополненное уже существовавшими инструментами GNU. В январе 1992 года Таненбаум заявил Торвальдсу, что монолитное ядро — это устаревшая архитектура. Он был прав в вопросах проектирования, но Торвальдс решал другую задачу: что будет хорошо работать на единственном недорогом компьютере, который есть у студента.

В феврале 1992 года версия 0.12 была перелицензирована под GPL. С тех пор Торвальдс называет это своим лучшим решением. Изначальная лицензия Linux запрещала любую коммерческую деятельность, что заблокировало бы путь для поставщиков дистрибутивов на CD и сервисных компаний, появившихся позже. Лицензия GPL разрешила коммерцию, при этом принудительно возвращая все внесенные изменения в общее дерево исходного кода.

Судебный процесс: с апреля 1992 по февраль 1994 года

В июне 1991 года Berkeley выпустили Networking Release 2 (Net/2): практически полноценную систему BSD, из которой были удалены файлы, производные от AT&T. Отсутствовало шесть файлов ядра. Билл и Линн Джолиц написали замены и выпустили 386BSD 0.0 в марте 1992 года, а затем 386BSD 0.1 — 14 июля 1992 года. В тот момент, когда Linux всё ещё оставался любительским ядром, появилась свободная, полная и зрелая система BSD для архитектуры 386. Компания Berkeley Software Design, Inc. (BSDi) продавала коммерческую поддерживаемую сборку BSD/386 и рекламировала её с помощью номера телефона 1-800-ITS-UNIX.

В апреле 1992 года Unix System Laboratories (USL), дочерняя компания AT&T, владевшая тогда Unix, подала в федеральный суд Нью-Джерси иск против BSDi, обвинив её в нарушении коммерческой тайны и незаконном использовании торговой марки Unix. Позже иск был дополнен требованием к Регентам Калифорнийского университета. В 1993 году университет подал встречный иск в Калифорнии, утверждая, что AT&T включала код Berkeley в состав System V без указания авторства, как того требовала лицензия.

В 1993 году правовая основа иска начала рушиться. Судья Дикинсон Дебевуаз отказал USL в предварительном судебном запрете, посчитав, что претензии USL на авторские права в отношении старого кода 32V, вероятно, недействительны, поскольку AT&T годами распространяла этот код без уведомлений об авторских правах. В середине 1993 года Novell приобрела USL у AT&T, и руководство Novell решило завершить конфликт. Дело было урегулировано в феврале 1994 года. Из примерно 18 000 файлов в дистрибутиве Berkeley три были удалены, а около семидесяти получили уведомления об авторских правах USL.

В июне 1994 года Berkeley выпустили 4.4BSD-Lite, которая была юридически чистой. FreeBSD и NetBSD, основанные в 1993 году на спорном коде Net/2, были вынуждены пересобрать свои системы на новой базе, на что ушла большая часть оставшегося 1994 года. Релиз Linux 1.0 состоялся в марте 1994 года, в самый разгар этой переработки.

Почему Linux занял серверный рынок, а не BSD?

Судебный иск — популярный ответ, и он отчасти верен. В период с апреля 1992 по февраль 1994 года любой, кто выбирал свободную Unix-систему для своего продукта, был вынужден учитывать реальные претензии юристов AT&T в противовес ядру от финского студента, на которое никто не мог подать в суд. Это был именно тот временной интервал, когда появился веб и вышли первые дистрибутивы Linux: Slackware в июле 1993, Debian в августе 1993, а затем Red Hat и SUSE.

Четыре других фактора имели не меньшее значение, чем судебное разбирательство.

  • Оборудование. Linux с первой строки кода был нацелен на массовый ПК с архитектурой 386, а именно это оборудование стало дешёвым. Центром тяжести BSD были VAX и рабочие станции, а порт для 386 был сторонней разработкой двух энтузиастов.
  • Лицензия. GPL требует, чтобы компания, поставляющая модифицированное ядро, публиковала свои изменения, поэтому наработки вендоров возвращались в единую ветку. Лицензия BSD позволяет компании сохранять изменения в тайне, и компании действительно их скрывали.
  • Модель разработки. Torvalds быстро принимал патчи от сторонних разработчиков и постоянно выпускал обновления. 386BSD обновлялась настолько медленно, что её собственные пользователи дважды форкнули её в 1993 году (в NetBSD и FreeBSD), а затем ещё раз в 1995 году (в OpenBSD).
  • Импульс развития. Разработчики идут туда, где уже есть другие разработчики, а драйверы пишутся для той системы, у которой больше пользователей.

Будем честны в техническом вопросе. В 1994 году BSD была более завершённой системой с целостной базой, задокументированной историей и сетевым кодом, который Linux догонял годами. В 1994 году никто не выбирал Linux потому, что он был лучше. Его выбирали потому, что он был доступен, не обременён юридическими рисками, работал на уже имеющемся оборудовании и улучшался каждую неделю.

Что сохранила BSD и где она работает сейчас

BSD продолжила развитие. Она утратила лишь статус системы по умолчанию. Самое наглядное доказательство находится прямо на вашем компьютере: проект OpenBSD написал OpenSSH в 1999 году, и сегодня это SSH-сервер практически в каждой системе Linux. Именно поэтому привычки работы с SSH-ключами, которые стоит освоить одинаковы для обоих семейств.

Netflix транслирует видео с помощью устройств на базе FreeBSD. Junos, операционная система маршрутизаторов Juniper, построена на ядре FreeBSD. Системное ПО PlayStation происходит от FreeBSD. macOS и iOS от Apple содержат код BSD как в ядре, так и в пользовательском пространстве. Либеральная лицензия, из-за которой BSD лишилась единого дерева разработки, позволила внедрить код BSD во множество аппаратных решений, которые даже не упоминают об этом.

Если вы делаете выбор сегодня, вопрос носит практический, а не исторический характер. Сравнение Linux и FreeBSD в качестве сервера сводится к ZFS, jails, дереву портов и тому, насколько стороннее ПО ориентировано на Linux. FreeBSD 15 как сервер — это актуальная, поддерживаемая система, а не музейный экспонат. А Linux против Windows Server — это отдельный вопрос, ответ на который зависит от вашего стека приложений.

Дизайн 1969 года, который вы используете на VPS сегодня

Каждый из этих элементов старше большинства людей, которые ими пользуются.

  • Конвейер (pipe). who | wc -l подсчитывает вошедших в систему пользователей, потому что Version 3 Unix в 1973 году позволила передавать вывод одной программы на вход другой.
  • Разделы руководства (man pages). man 1 ls и man 5 crontab используют схему нумерации из руководства за ноябрь 1971 года.
  • Разделение файловой системы. /usr существует, потому что корневой диск на том PDP-11 был переполнен в 1971 году, и разработчики перенесли файлы на второй дисковый пакет. В современных дистрибутивах это разделение устранено: при запуске ls -ld /bin на Ubuntu 24.04 или Debian 13 вы получите символическую ссылку на usr/bin.
  • Вызовы сокетов. Berkeley разработали их для 4.2BSD в 1983 году, и каждый сетевой демон до сих пор их использует.
  • POSIX. Скрипт #!/bin/sh, написанный в соответствии со стандартом, работает без изменений в Linux, FreeBSD, macOS и Solaris, так как все они реализовали этот стандарт.

Когда вы арендуете виртуальный выделенный сервер и входите в систему, вы работаете с интерфейсом, разработанным для машины с 24 KB памяти и патентным отделом на обслуживании. Он сохранился, потому что интерфейс был опубликован, обсужден, стандартизирован, а затем реализован с нуля людьми, которым не разрешалось видеть исходный код оригинала.

FAQ

Содержит ли Linux оригинальный код Unix?

Нет. Линус Торвальдс написал ядро с нуля, начиная с 1991 года, ориентируясь на интерфейсы POSIX, а не на исходный код AT&T. Наследие Unix заключается в архитектуре и опубликованных интерфейсах: файлах, процессах, каналах (pipes) и именах системных вызовов. Инструменты GNU вокруг ядра также были написаны с нуля, начиная с 1983 года. Эта независимость — причина, по которой судебные иски AT&T по поводу кода BSD никак не затронули Linux.

Когда был подан иск AT&T против BSD и погубил ли он BSD?

USL, дочерняя компания AT&T, владевшая Unix, подала в суд на BSDi в апреле 1992 года, а позже добавила Калифорнийский университет в качестве ответчика. В 1993 году судья отказал в предварительном судебном запрете, постановив, что претензии по авторским правам на старый код 32V, скорее всего, недействительны. Novell купила USL в середине 1993 года и урегулировала дело в феврале 1994 года: из примерно 18 000 файлов было удалено три, а около семидесяти получили новые уведомления об авторских правах. Это не погубило BSD. Однако это заморозило внедрение BSD на два года, как раз в то время, когда мир выбирал свободную Unix-систему.

Почему Linux занял серверный рынок, а не BSD?

Одной из причин была юридическая определенность: в 1992 и 1993 годах Linux не был объектом судебных исков, в то время как BSD — был. Другими причинами стали ориентация на архитектуру 386 с самого первого дня, лицензия GPL, возвращающая изменения от вендоров в единое дерево разработки, и процесс слияния кода, достаточно быстрый для поддержания интереса участников, в то время как 386BSD разделилась на три ветки. Техническое превосходство не было решающим фактором, так как в 1994 году BSD была более завершенной системой.

Стоит ли использовать FreeBSD сегодня?

Да, и по конкретным причинам: ZFS, интегрированная в базовую систему, jails как зрелая модель изоляции, базовая система, развивающаяся как единое целое, и документация, которая остается актуальной. Цена этого — необходимость работы над совместимостью, так как большинство стороннего серверного ПО, инструментов для контейнеризации и вендорской поддержки ориентированы на Linux. Выбирайте FreeBSD, когда её возможности в области хранения данных и работы с сетью оправдывают эти затраты, а не из-за верности старой родословной.