50 оттенков Unix за 50 лет

В августе 2019 года системе Unix исполнилось 50 лет. Как система появилась, развивалась и насколько далеко всё зашло.

В начале была AT&T

История Unix напрямую связана с американской компанией AT&T. Заходя издалека, Министерство юстиции США судилось с AT&T из-за её монополии на рынке телефонии. Компания не терпела конкуренции и не давала никому зайти на рынок. В 1956 году AT&T и Минюст пришли к консенсусу: компания получает доступ только на контролируемые рынки, даёт все свои патенты в открытый доступ и её насильно не разделяют. Появилась предпосылка к свободному программному обеспечению, чувствуете?

В 1964 году началась разработка системы Multics. Ею занялись General Electric, MIT и подразделение AT&T — Bell Labs. Multics была инновационной: в системе была централизованная файловая система, реализована виртуальная память и много чего ещё. Из недостатков — высокая сложность и стоимость проекта. Из-за этого в 1979 году Bell Labs выходит из проекта.

В августе 1969 году бывшие разработчики Multics из Bell Labs Кен Томпсон, Деннис Ритчи, Дуглас Макилрой и Джо Оссанна создали неофициальную упрощённую версию системы без названия. Написали её на языке ассемблера специально для мини-компьютера PDP-7. В 1970 году вышла официальная первая редакция системы. Её назвали UNICS, а потом переименовали в Unix.

Весил PDP-7 полтонны

В 1972 году Томпсон и Ричи создали интерпретируемый язык B. Он был сокращённой версией языка BCPL, до одной буквы сократилось и название. В том же году на нём переписывают Unix и выпускают вторую редакцию.

В 1973 Ричи и Томпсон улучшают B и создают компилируемый язык C. В том же году выходит третья редакция Unix со встроенным компилятором C, а 15 октября на языке переписали ядро системы и выпустили четвёртую редакцию.

Кен Томпсон и Деннис Ритчи

В 1974 году исходный код Unix передали в Калифорнийский университет в Беркли по запросу профессора компьютерных наук Боба Фарби. Он увидел систему на симпозиуме и заинтересовался её развитием. Из-за консенсуса 1956 года AT&T не могли ему отказать, но брали высокую плату за доставку и носитель. По легенде, Кен Томпсон без разрешения компании отправлял копии Unix с подписью “Love, Ken”.

В 1975 году Unix полностью переписали на C и выпустили пятую редакцию. С некоторыми изменениями в том же году вышла шестая редакция. Чем она примечательна? Она была первой, которая вышла за стены Bell Labs. Исходный код системы распространялся по лицензии “как есть”: со всеми костылями, багами и детскими болезнями. Но на помощь пришла книга по функционалу Unix Джона Лайонса. Он преподавал компьютерные науки, а его книга была популярной среди пользователей и открывала им систему. Пользователи начали создавать независимые от Bell Labs версии Unix.

И тут понеслось

В 1975 году Кен Томпсон взял годовой отпуск в Bell Labs и отправился в Калифорнийский университет в Беркли. Он помог установить шестую редакцию Unix на местный компьютер и начал внедрять компилятор языка Паскаль. Аспиратны Чак Хейли и Билл Джой доработали компилятор и добавили текстовый редактор ex.

Другие университеты интересовались наработками в Беркли, поэтому Билл Джой продолжил работу с Unix. 9 марта 1978 года мир увидел 1BSD (Berkeley Software Distribution) — не то, чтобы самобытная система, а дополненный Unix. В мае 1979 года вышла 2BSD с новым текстовым редактором vi и командной оболочкой C shell.

В 1978 году в Беркли установили компьютер с новой 32-битной архитектурой VAX. Существовала UNIX/32V — 32-битная версия седьмой редакции Unix, но она не использовала плюсы виртуальной памяти VAX. Студенты университета в Беркли переписали ядро 32V, совместили с 2BSD, взяли немного из UNIX/32V и получили 3BSD в конце 1979 года.

VAX ещё мало похож на современный ПК. Совсем мало

В 1980 году Боб Фарби и его команда из Беркли заключили контракт с DARPA — подразделением Министерства обороны США. Им нужно было подогнать Unix под сеть ARPANET — маму нынешнего Интернета. На деньги DARPA Фарби организовал Группу исследования компьютерных систем — CSRG.

За два с половиной года CSRG выпустила 4BSD, а затем 4.1BSD с версиями 4.1a, 4.1b и 4.1c. В 1983 году выходит 4.2BSD — та самая версия, которая была нужна DARPA. Она вместила всё лучшее как от ранних наработок в Беркли, так и от опыта CSRG. 

А тем временем, в 1982 году AT&T выпускает свой Unix System III — солянку из седьмой редакции и кучи узконаправленных Unixов для внутреннего использования AT&T. System III мог распространяться лицензиатами всего за $100, поэтому рассматривается как первая коммерческая система AT&T.

В 1983 году появилась Unix System V — коммерчески самая успешная версия системы. Всего AT&T выпустили 4 редакции системы с дополнениями: последняя версия вышла в 1989 году и получила технологии из 4.3BSD и SunOS. Кстати, Sun Microsystems — компания Билла Джоя, аспиранта-разработчика первой BSD.

Модель рабочей станции Sun-1. Производство Sun Microsystems

От BSD и System V произошло несчётное количество систем. Многие из них давно забыты, некоторые до сих пор на плаву. Но мало кто помнит, что всё началось с одного университета и телекоммуникационной компании.

GNU is not Unix

27 сентября 1983 году сотрудник MIT Ричард Столлман опубликовал объявление о проекте по разработке свободного программного обеспечения. Назвал он свой проект GNU — “GNU is not Unix”. В первую очередь, GNU начинался с операционной системы. Столлман планировал создать её на тех же принципах, что и Unix, но полностью свободной. Мало того, все программы GNU должны были быть совместимы с коммерческими версиями Unix.

Ричард Столлман

Какие цели были у проекта GNU? Кратко: создать столько свободного ПО, чтобы оно полностью заменило проприетарное. Такое ПО должно соответствовать 4 принципам: исходный код свободен для изучения, оно свободно распространяется, свободно модифицируется и его модификации свободно распространяются.

Первыми сделали приложения пользовательского окружения. Они сразу стали популярнее проприетарных аналогов, проект набирал обороты.

В 1985 году появился GNU FSF — Фонд свободного ПО, в 1988 — лицензия на свободное ПО GNU General Public License. К 1990-му система GNU была почти готова, осталось сделать ядро системы. Его разработка затянулась из-за задержки открытия кода микроядра Mach под свободной лицензией — именно на его базе планировали сделать ядро GNU Hurd.

И тут мы подошли к переломному моменту.

Ваш покорный слуга. Linux

В 1991 году молодой аспирант Линус Торвальдс получил копию Unix-like операционной системы Minix. Это была разработка американца Эндрю Таненбаума, которую он сделал как учебное пособие для студентов. Торвальдсу не понравилось использование Minix лишь для образовательных целей, а ещё он нашёл недостатки Minix. В апреле он начал переписывать код программы эмуляции терминала без привязки к конкретной ОС.

Эндрю Таненбаум

Накодил Торвальдс не на программу, а почти на ядро системы. Свои труды выложил в открытый доступ, и тут началась магия Интернета: активисты начали дорабатывать код вместе с Торвальдсом просто так. 

Линус Торвальдс

В один момент все поняли, что приложения GNU удобнее, чем Minix, поэтому начали работать с ними. А ядро Linux + софт от GNU = Unix-like система GNU/Linux. Столлман настаивает именно на такой формулировке: его бесит, когда систему называют просто Linux. Торвальдс его в этом стремлении игнорирует и ссылается на то, что он простой программист.

И это не всё

А что, если я скажу, что macOS и iOS тоже дальние родственницы Unix? macOS — это развитие Unix-like системы Darwin от компании Apple, a Darwin произошла от Unix-like системы NeXTSTEP — разработки компании Стива Джобса NeXT.

Ноги Android тоже растут из Unix: самая популярная система для смартфонов работает на ядре Linux. Кто-то даже называет её дистрибутивом Linux.

Мораль сей басни

Заслуги Кена Томпсона и Денниса Ритчи не забыли. В 1999 году президент США Билл Клинтон вручил им Национальную медаль в области технологий.

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

Unix дала толчок появлению свободного ПО. Все пазлы сложились в цельную картину благодаря влиянию системы. И, как это бывает в истории, воле случая.

И история разделилась на до 01.01.1970 и после.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *