на каком машинном коде написана ос unix
Физический факультет
UNIX (читается юникс) — группа переносимых, многозадачных и многопользовательских операционных систем.
Первая система UNIX была разработана в конце 1960-х — начале 1970-х годов в подразделении Bell Labs компании AT&T. С тех пор было создано большое количество различных UNIX-систем. Юридически лишь некоторые из них имеют полное право называться «UNIX»; остальные же, хотя и используют сходные концепции и технологии, объединяются термином «UNIX-подобные» (англ. Unix-like). Для краткости в данной статье под UNIX-системами подразумеваются как истинные UNIX, так и UNIX-подобные ОС.
Некоторые отличительные признаки UNIX-систем включают в себя:
В настоящее время UNIX используются в основном на серверах, а также как встроенные системы для различного оборудования. На рынке ОС для рабочих станций и домашнего применения UNIX уступили другим операционным системам, в первую очередь Microsoft Windows. UNIX-системы имеют большую историческую важность, поскольку благодаря им распространились некоторые популярные сегодня концепции и подходы в области ОС и программного обеспечения.
Оглавление документа
История
Предшественники
В 1957 году в Bell Labs была начата работа по созданию операционной системы для собственных нужд. Под руководством Виктора Высотского (русского по происхождению) была создана система BESYS. Впоследствии он возглавил проект Multics, а затем стал главой информационного подразделения Bell Labs.
В 1964 году появились компьютеры третьего поколения, для которых возможности BESYS уже не подходили. Высотский и его коллеги приняли решение не разрабатывать новую собственную операционную систему, а подключиться к совместному проекту General Electric и Массачусетского технологического института Multics. Телекоммуникационный гигант AT&T, в состав которого входили Bell Labs, оказал проекту существенную поддержку, но в 1969 году вышел из проекта, поскольку он не приносил никаких финансовых выгод.
Первые UNIX
Первоначально UNIX была разработана в конце 1960-х годов сотрудниками Bell Labs, в первую очередь Кеном Томпсоном, Денисом Ритчи и Дугласом МакИлроем.
В 1969 году Кен Томпсон, стремясь реализовать идеи, что были положены в основу MULTICS, но на более скромном аппаратном обеспечении (DEC PDP-7), написал первую версию новой операционной системы, а Брайан Керниган придумал для неё название — UNICS (UNIplexed Information and Computing System) — в противовес MULTICS (MULTIplexed Information and Computing Service). Позже это название сократилось до UNIX. В 1971 году вышла версия для PDP-11, наиболее успешного семейства миникомпьютеров 1970-х (в СССР оно известно как СМ ЭВМ). Эта версия получила название «первая редакция» (Edition 1) и была первой официальной версией. Системное время все реализации UNIX отсчитывают с 1 января 1970.
Первые версии UNIX были написаны на ассемблере и не имели встроенного компилятора с языка высокого уровня. Примерно в 1969 году Кен Томпсон при содействии Дениса Ритчи разработал и реализовал язык Би (B), представлявший собой упрощённый (для реализации на миникомпьютерах) вариант разработанного в 1966 языка BCPL. Би, как и BCPL, был интерпретируемым языком. В 1969—1973 годах на основе Би был разработан компилируемый язык, получивший название Си (C).
В 1973 году вышла третья редакция UNIX, со встроенным компилятором с Си. 15 октября того же года появилась четвёртая редакция, с переписанным на Си системным ядром (в духе системы Multics, также написанной на языке высокого уровня (ПЛ/1)), а в 1975 — пятая редакция, полностью переписанная на Си. С 1974 года UNIX стал бесплатно распространяться среди университетов и академических учреждений. С 1975 года началось появление новых версий, разработанных за пределами Bell Labs, и рост популярности системы.
В том же 1975 году вышла шестая редакция, известная по широко разошедшимся комментариям Джона Лайонса (Lions’ Commentary on UNIX 6th Edition, with Source Code, [ 1], [ 2]). К 1978 г. система была установлена более чем на 600 машинах, прежде всего, в университетах. Седьмая редакция была последней единой версией UNIX. Именно в ней появился близкий к современному интерпретатор командной строки Bourne shell.
Раскол
С 1978 года начинает свою историю BSD UNIX, созданный в университете Беркли. Его первая версия, была основана на шестой редакции. В 1979 выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие полезные свойства, как виртуальную память и замещение страниц по требованию. Автором BSD был Билл Джой.
В начале 1980-х компания AT&T, которой принадлежали Bell Labs, осознала ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в 1982 году, носила название UNIX System III и была основана на седьмой версии системы.
Важной причиной раскола UNIX стала реализация в 1980 г. стека протоколов TCP/IP. До этого межмашинное взаимодействие в UNIX пребывало в зачаточном состоянии — наиболее существенным способом связи был UUCP (средство копирования файлов из одной UNIX-системы в другую, изначально работавшее по телефонным сетям с помощью модемов).
В середине 1983 года была выпущена версия 4.2BSD, поддерживающая работу в сетях Ethernet и Arpanet. Система стала весьма популярной. Между 1983 и 1990 в BSD были добавлено много новых возможностей, таких как отладчик ядра, сетевая файловая система NFS, виртуальная файловая система VFS, и существенно улучшены возможности работы с файловыми сетями.
Тем временем AT&T выпускала новые версии своей системы, названной System V. В 1983 была выпущена версия 1 (SVR1 — System V Release 1), включавшая полноэкранный текстовый редактор vi, библиотеку curses, буферизацию ввода-вывода, кеширование inode. Версия 2 (SVR2), выпущенная в 1984, реализовывала монопольный доступ к файлам (file locking), доступ к страницам по требованию (demand paging), копирование при записи (copy-on-write). Версия 3 вышла в 1987 году и включала, среди прочего, TLI, а также систему поддержки удалённых файловых систем RFS. Версия 4 (SVR4), разработанная в сотрудничестве с фирмой Sun и вышедшая 18 октября 1988, поддерживала многие возможности BSD, в частности TCP/IP, сокеты, новый командный интерпретатор csh. Кроме того, там было много других добавлений, таких как символические ссылки, командный интерпретатор ksh, сетевая файловая система NFS (заимствованная у SunOS) и т. д.
Современные реализации UNIX, как правило, не являются системами V или BSD в чистом виде. Они реализуют возможности как System V, так и BSD.
Свободные UNIX-подобные операционные системы
В 1983 году Ричард Столлмэн объявил о создании проекта GNU — попытки создания свободной UNIX-подобной операционной системы с нуля, без использования оригинального исходного кода. Большая часть программного обеспечения, разработанного в рамках данного проекта, — такого, как GNU toolchain, Glibc (стандартная библиотека языка Си) и Coreutils — играет ключевую роль в других свободных операционных системах. Однако работы по созданию замены для ядра UNIX, необходимые для полного выполнения задач GNU, продвигались крайне медленно. В настоящее время GNU Hurd — попытка создать современное ядро на основе микроядерной архитектуры Mach — всё ещё далека от завершения.
В 1991 году, когда Линус Товальдс опубликовал ядро Linux и привлёк помощников, использование инструментов, разработанных в рамках проекта GNU, было очевидным выбором. Операционная система GNU и ядро Linux вместе составляют ОС, известную, как GNU/Linux. Дистрибутивы этой системы (такие как Red Hat и Debian), включающие ядро, утилиты GNU и дополнительное программное обеспечение стали популярными как среди любителей, так и среди представителей бизнеса.
Современность
После разделения компании AT&T, товарный знак UNIX и права на оригинальный исходный код неоднократно меняли владельцев, в частности, длительное время принадлежали компании Novell.
В 1995 году Novell продала права на существующие лицензии и дальнейшую разработку System V компании Santa Cruz Operation. В 2000 году Santa Cruz Operation продала свой UNIX-бизнес компании Caldera, которая затем была переименована в SCO Group. Хотя это название похоже на аббревиатуру SCO, используемую Santa Cruz Operation, это две разные компании.
SCO Group заявила, что она также обладает правами на исходный код UNIX и развернула кампанию против различных пользователей и поставщиков UNIX-подобных систем, требуя выплаты лицензионных отчислений. Однако Novell утверждает, что права на исходный код не были переданы Santa Cruz Operation и, таким образом, не перешли к SCO Group, а остаются у Novell, что и подтвердил вердикт суда.
Влияние UNIX
Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX-системы признаны одними из самых исторически важных ОС.
Как и Multics, UNIX была написана на языке высокого уровня, а не на ассемблере (доминировавшем в то время).
Она содержала значительно упрощённую, по сравнению с современными ей операционными системами, файловую модель. Файловая система включала как службы, так и устройства (такие как принтеры, терминалы и жёсткие диски) и предоставляла внешне единообразный интерфейс к ним, но дополнительные механизмы работы с устройствами (такие как IOCTL и биты доступа) не вписывались в простую модель «поток байтов».
UNIX популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Другие операционные системы того времени позволяли разбивать дисковое пространство на каталоги или разделы, но число уровней вложенности было фиксировано и, зачастую, уровень вложенности был только один. Позднее все основные фирменные операционные системы обрели возможность создания рекурсивных подкаталогов, также заимствованную из Multics.
То, что интерпретатор команд стал просто одной из пользовательских программ, а в качестве дополнительных команд выступают отдельные программы, является ещё одной инновацией Multics, популяризированной UNIX. Язык командной оболочки UNIX используется пользователем как для интерактивной работы, так и для написания скриптов, то есть не существует отдельного языка описания заданий, как, например, в системе JCL фирмы IBM. Так как оболочка и команды операционной системы являются обычными программами, пользователь может выбирать их в соответствии со своими предпочтениями, или даже написать собственную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции ядра. Новый, предложенный в командной строке UNIX, способ создания цепочек программ, последовательно обрабатывающих данные, способствовал использованию параллельной обработки данных.
Существенными особенностями UNIX были полная ориентация на текстовый ввод-вывод и предположение, что размер машинного слова кратен восьми битам. Первоначально в UNIX не было даже редакторов двоичных файлов — система полностью конфигурировалась с помощью текстовых команд. Наибольшей и наименьшей единицей ввода-вывода служил текстовый байт, что полностью отличало ввод-вывод UNIX от ввода-вывода других операционных систем, ориентированного на работу с записями. Ориентация на использование текста для представления всего, что только можно, сделала полезными т. н. конвейеры (англ. pipelines). Ориентация на текстовый восьмибитный байт сделала UNIX более масштабируемой и переносимой, чем другие операционные системы. Со временем текстовые приложения одержали победу и в других областях, например, на уровне сетевых протоколов, таких как Telnet, FTP, SMTP, HTTP и других.
UNIX способствовала широкому распространению регулярных выражений, которые были впервые реализованы в текстовом редакторе ed для UNIX. Возможности, предоставляемые UNIX-программам, стали основой стандартных интерфейсов операционных систем (POSIX).
Широко используемый в системном программировании язык Си, созданный изначально для разработки UNIX, превзошёл UNIX по популярности. Си был первым «веротерпимым» языком, который не пытался навязать программисту тот или иной стиль программирования. Си был первым высокоуровневым языком, предоставляющим доступ ко всем возможностям процессора, таким как ссылки, таблицы, битовые сдвиги, приращения и т. п. С другой стороны, свобода Си приводила к ошибкам переполнения буфера в таких функциях стандартной библиотеки Си, как gets и scanf. Результатом стали многие печально известные уязвимости, например, та, что эксплуатировалась в знаменитом черве Морриса.
Первые разработчики UNIX способствовали внедрению принципов модульного программирования и повторного использования в инженерную практику.
UNIX предоставлял возможность использования протоколов TCP/IP на сравнительно недорогих компьютерах, что привело к быстрому росту Интернета. Это, в свою очередь, способствовало быстрому обнаружению нескольких крупных уязвимостей в системе безопасности, архитектуре и системных утилитах UNIX.
Со временем ведущие разработчики UNIX разработали культурные нормы разработки программного обеспечения, которые стали столь же важны, как и сам UNIX (см. Философия UNIX).
Стандарты
Большое количество разных вариантов системы UNIX привело к необходимости стандартизовать её, чтобы упростить переносимость приложений и избавить пользователя от необходимости изучать особенности каждой разновидности UNIX. С этой целью ещё в 1980 была создана пользовательская группа /usr/group. Самые первые стандарты были разработаны в 1984—1985 гг. В настоящее время наиболее важными являются следующие стандарты:
Все стандарты POSIX объединены в документе IEEE 1003.
В начале 1990-х годов The Open Group предложила другой, похожий на POSIX стандарт — Common API Specification, или Spec 1170. Стандарт приобрёл большую популярность, чем POSIX, поскольку был доступен бесплатно, в то время как IEEE требовало немалую плату за доступ к своему стандарту.
В 1998 году были начаты работы по объединению данных стандартов. Благодаря этому в настоящее время данные стандарты почти идентичны. Совместный стандарт называется Single UNIX Specification Version 3 и доступен бесплатно в интернете [3].
В целях совместимости несколько создателей UNIX-систем предложили использовать ELF-формат систем SVR4 для двоичных и объектных файлов. Единый формат полностью обеспечивает соответствие двоичных файлов в рамках одной компьютерной архитектуры.
Структура каталогов некоторых систем, в частности, GNU/Linux, определена в стандарте Filesystem Hierarchy Standard. Однако во многих отношениях этот тип стандарта является спорным, и он, даже внутри сообщества GNU/Linux, далеко не универсален.
Канонические команды UNIX
Ниже приведён список 60 команд из раздела 1 первой версии UNIX:
ar, as, b, bas, bcd, boot, cat, chdir, check, chmod, chown, cmp, cp, date, db, dbppt, dc, df, dsw, dtf, du, ed, find, for, form, hup, lbppt, ld, ln, ls, mail, mesg, mkdir, mkfs, mount, mv, nm, od, pr, rew, rkd, rkf, rkl, rm, rmdir, roff, sdate, sh, stat, strip, su, sum, tap, tm, tty, type, un, wc, who, write.
Рождение и развитие Unix
Томпсон (сидит) и Ритчи работают на PDP-11, 1972 год.
Период 1968-69 гг. был очень неопределенным для Bell Labs: проект операционной системы с разделением времени Multics (Multiplexed Information and Computing Service), разрабатываемой с 1964 года для дорогой 36-битной ЭВМ GE-645, не имел четких перспектив и целей, а лишь разрастался в размерах и сложности, всё ясней был виден его предполагаемый провал. В конце концов, American Telephone & Telegraph вышла из проекта, в который за пять лет были вложены миллионы долларов.
Однако, некоторые из инженеров, работавших над Multics — Кен Томпсон, Деннис Ритчи, Малкольм Дуглас Макилрой, Джозеф Оссанна, — ощущали необходимость в продолжении работы над подобным проектом, и не хотели терять успевшую сформироваться уютную рабочую атмосферу. Поэтому в 1969 году они начали искать альтернативу Multics: Оссанна, Томпсон, Ритчи пытались протолкнуть покупку машины средней мощности, для которой группа обещала написать операционную систему. Заказ на предлагаемые ЭВМ DEC PDP-10 и Sigma 7 так и не был сделан, и хотя несколько раз ситуация выходила на грань получения нужного оборудования, было вполне очевидно, что команда просит слишком крупную сумму для проекта с расплывчатым планом, тем более, что после провала Multics операционные системы стали не настолько привлекательной сферой. Поэтому Томпсон (в основном это была его задумка), Кэнэдэй и Ритчи (привнесший идею файлов-устройств) разработали на обычных черных учебных досках и бумаге устройство файловой системы, которая позже стала сердцем Unix.
Начало работы
Томпсон написал для Multics симуляцию производительности предлагаемой файловой системы и страничного поведения программ, начал реализацию новой операционной системы для GE-645. Он разработал ассемблер для машины и рудиментарное системное ядро, способное лишь выводить приветственное сообщение. Сложность оборудования делала заметным достижение Томпсона, но как только выяснилось, что ввиду выхода из проекта Multics 645-ая серия в Bell Labs будет продолжать работать от силы несколько месяцев, работа была прекращена.
Также в 1969 году Томпсон написал игру Space Travel для Multics, пока ещё имел к ней доступ, а потом переписал её на Фортране для GECOS, операционной системы машин GE-635. Игра содержала всего лишь симуляцию движения основных тел Солнечной системы, среди которых игроку предлагалось провести корабль и приземлиться на планетах и их лунах. Игра в версии для GECOS имела два основных недостатка: высокая цена вычислительного времени ($75 за игру) и подтормаживания графики. Поискав, Кен нашел немного использовавшийся PDP-7 с отличным экраном, ранее машину купили как терминал Graphic-II для проекта анализа цепей.
Ритчи и Томпсон переписали Space Travel для запуска на этой ЭВМ. Работа над маленькой игрой была куда более важной, чем может показаться: поскольку они проигнорировали существующее программное обеспечение, приходилось писать пакет для обработки чисел с плавающей запятой, спецификации графических символов и систему отладки самостоятельно. Всё это было написано на GECOS на кросс-ассемблере для PDP-7, и процесс переноса ассемблерного кода на перфокартах использовался в дальнейшем для реализации уже файловой системы, проект которой уже был разработан.
Летом 1969 года жена Кена уехала к его родителям, чтобы показать новорожденного сына, и Томпсон с головой ушел в работу. Вместе с файловой системой новой операционной системы появился маленький набор пользовательских программ: копирование, печать, удаление, редактирование и, конечно же, интерпретатор команд, командный процессор. После доработки ассемблера отпала необходимость писать на GECOS и переносить файлы перфолентой. Хотя название Unix как отсылка к Miltics появилось только в 1970 году как шутка Брайана Кернигана на тему того, что новая система поддерживала лишь пользователя Томпсона, и поэтому должна носить название Un-multiplexed Information and Computing Service, операционная система уже родилась и жила.
Файловая система Unix для PDP-7 имела линейный массив индексных дескрипторов, каждый из которых описывал файл, директории (особый файл, содержащий имена и ассоциированный индекс), особые файлы, описывающие устройства. Вызовы файловой системы тоже не слишком отличаются от сегодняшних: read, write, open, creat, close. Отличие было в том, что единицей ввода-вывода в PDP-7 было машинное слово, а не байт. Примитивная по сегодняшним меркам операционная система предоставляла более удобную среду разработки, чем существовавшие аналоги. Всё очевиднее становилось, что изначально устаревшая PDP-7, накладывающая множество раздражающих ограничений на работу новой операционной системы, не сможет удовлетворить нужды для дальнейшего развития, как и вся серия машин PDP-7, а разрешать закупку нового оборудования руководство вряд ли решится.
Оссанна, до конца его дней увлекавшийся текстовым процессингом, предложил схитрить и попросить у начальства новейший микрокомпьютер компании DEC — PDP-11 — для создания инструментов редактирования и форматирования текста. А факт того, что для создания этих инструментов потребуется написать операционную систему, шел почти что как сноска. Запрашиваемая сумма была куда меньше, чем ранее — всего 65 тыс. долларов.
Предыдущие расплывчатые предложения встречались с неодобрением, это же было слишком узко́. Не сразу, но начальство клюнуло, уже в мае 1970 года благодаря усилиям Макмахона был произведен заказ на PDP-11. Машина прибыла в конце лета, но продукт был настолько новым, что накопительный диск пришлось ждать до декабря. Всё это время Томпсон, Ритчи и остальные продолжали работать над Unix на PDP-7. В это время новенький PDP-11 три месяца обсчитывал ходы шахматного коня на доске 6×8.
Лишь после установки накопителя PDP-11 всё усложняющаяся операционная система была переписана на новую машину. У версии Unix для PDP-11 не имелось особых преимуществ относительно версии для PDP-7. К примеру, всё так же не было многозадачности: лишь одна пользовательская программа могла находиться в ядре. Размеры системы были невелики: 24 килобайта ОЗУ (16 килобайт для операционной системы и 8 килобайт для пользовательских программ), диск с тысячей блоков (512 килобайт). Файлы были ограничены размером в 64 килобайта.
Затем была переписана программа roff, текстовый процессор, написанный Осанной. Впервые Unix испытали вне Bell Labs при работе в патентном отделе AT&T, где требовалось редактировать и форматировать заявки на патенты. Unix-система имела преимущества над испытываемой в это же время в патентном отделе коммерческой системой редактирования текста: во-первых, Unix имела поддержку 37-ой модели терминалов Teletype, печатавшей все требующиеся математические символы, во-вторых, в roff быстро добавили возможность нумеровать страницы, чем конкурент не обладал.
Во время второго полугодия 1971 года группа осуществляла поддержку трех машинисток и пыталась продолжать работу в свободное время. Unix получила хорошую репутацию за поддержку интересных функций на скромном оборудовании, и система была принята к использованию в патентном отделе AT&T, что давало возможность группе убедить руководство заказать ещё одну машину, другую модель PDP-11 — PDP-11/45, ещё более мощную, чем уже купленная.
В ранние годы Unix постоянно изменялась и эволюционировала, поэтому не было смысла выпускать версии или релизы, хотя периодически происходили издания программисткого руководства, и первые системы Unix носили названия этих изданий. Первое издание датируется ноябрем 1971 года.
Языки программирования высокого уровня
Каждая программа для Unix в версии PDP-7 писалась на очень слабом ассемблере — к примеру, не было макрокоманд. Первым интересным языком был TMG Макклура, реализованный Макилроем. Потом Томпсон решил, что нельзя предлагать компьютерную систему без Фортрана, поэтому он начал писать Фортран в TMG, но намерение реализовать его продлилось неделю. То, что он сделал, было компилятором для нового языка B. Новый язык испытал сильное влияние BCPL, вкуса Томпсона к спартанскому синтаксису и скромные размеры места для компилятора, который производил простой и медленный, но исполняемый код, что сделало жизнь программистов легче. Позже кросс-компилятор PDP-7 для PDP-11 был написан на B, и постепенно компилятор для PDP-7 был транслитерирован из TMG в B. С прибытием PDP-11 почти сразу же на ней был настроен B. Ещё до прибытия накопителя для новой машины на PDP-11 был написан калькулятор.
Над переписыванием операционной системы на B не особо задумывались, даже ассемблер для новой ЭВМ переписывался на ассемблере, поскольку интерпретируемый код был слишком медленным. Также стояла проблема несоответствия ориентированного на машинное слово B и PDP-11 с байтовой адресацией.
Поэтому в 1971 году была начата работа над тем, что стало языком C. Всем прекрасна известна связь BCPL → B → C, и нет смысла повторять её, стоит лишь отметить, что в 1973 году ядро операционной системы было переписано на C, и Unix приобрел черты своих современных версий. Было ещё множество внешних изменений, и внутреннее строение системы стало более рациональным и простым. Успех попытки подтвердил, что C является полезным и практически универсальным инструментом для системного программирования, а не игрушкой для простых приложений. Сегодня лишь самые важные программы Unix-подобных систем пишутся на ассемблере, почти все утилиты и приложения написаны на C.
Дальнейшее развитие
Годами Unix оставалась лишь исследовательским проектом Bell Labs, но в 1973 году авторы представили систему на симпозиуме Ассоциации по вычислительной технике, и запросы на предоставление копий посыпались сразу же. Это ставило AT&T в крайне неудобное положение: ещё в 1956 году монополист связи был ограничен от продажи продуктов и услуг, не связанных напрямую с телефонами и телекоммуникациями, и поэтому Unix не могла продаваться. Именно этим мы обязаны выпуску исходных кодов ранних версий практически всем желающим без поддержки, рекламы и исправлений.
И такая политика дала свои плоды: поклонники операционной системы уже тогда начали общаться и собираться вместе для обмена опытом, исправлениями и багфиксами, новыми инструментами и улучшениями системы. К популярности Unix в конечном счете привели не только простота, элегантность её устройства, востребованность и портируемость, но и формирование сплоченного комьюнити Usenix. Сообщества формировались не только в США, но и в Австралии (в университете Нового Южного Уэльса и Сиднейском университете), и все они обменивались магнитными лентами с новыми программами и исправлениями для системы. К середине 70-х годов именно это окружение сформировало современные традиции сообщества open-source.
Однако, чем популярнее становилась Unix, тем пристальнее юристы AT&T следили за несколько фривольным поведением лицензиатов. К примеру, Джон Лайонс, преподающий в университете Нового Южного Уэльса, в 1977 году опубликовал одну из самых известных книг всех времен «Комментарии к операционной системе Unix», включавшую и листинг исходных кодов ОС. Условия лицензирования Unix допускали обмен исходниками, поэтому вначале книга Лайона продавалась только лицензиатам. В 1979 году AT&T ужесточила наказание за использование книги в учебных классах, и нет ничего удивительного в том, что книга стихийно начала копироваться самиздатом, порой, фотокопии фотокопий имели практически нечитабельное состояние.
Юристы AT&T следили и за жизнью в Bell Labs. К примеру, между изданием шестого издания Unix в 1975 году и седьмого в 1979 Томпсон собрал из внешних и внутренних источников Bell Labs десятки важных исправлений для системы, которые собирался вбросить в пользовательскую базу. Юристы компании запретили ему это делать, поскольку это было бы формой поддержки. Но корректоры ошибок всё равно стали доступны: Лоу Кацу, основателю и презиенту Usenix, однажды позвонили и сообщили, что если он в 2 часа дня посетит определенное место на Маунтайн авеню (где и находится Bell Labs), то он найдет кое-что интересное. Кац последовал указаниям и нашел магнитную ленту с исправлениями, которые немедленно попали в руки бесчисленного числа пользователей.
80-е. Ответвления
После разрушения монополии Bell System компания AT&T более не была связана путами соглашения 1956 года. Одновременно с этим развивались многочисленные ответвления Unix, в первую очередь версия университета Беркли, которая была тщательно вычищена от кода AT&T, чтобы сделать её свободно распространяемой. После суда в 1992 году AT&T против университета Беркли законный статус Unix-клонов был подтвержден.
Если бы исходные коды Unix не были бы доступны общественности, Линус Торвальдс, как он сам говорит, вряд ли бы создал Linux, который в начале 90-х был написан с нуля. Сегодня именно Linux и семейство BSD несут крест отошедшей на задний план Unix и управляют всем: от мобильных телефонов до суперкомпьютеров.