IT-юбилей: 40 лет UNIX

Нынешней осенью исполняется 40 лет едва ли не самой знаменитой операционной системе в мире – UNIX. В августе 1969-го компьютерные специалисты Кен Томпсон и Дэнис Ритчи – сотрудники Bell Telephone Laboratories – начали разрабатывать ядро и небольшой набор утилит новой системы, получившей первоначально название UNICS (Uniplexed Information and Computing System). Основные коды новинки были написаны к октябрю. Сегодня мы знаем эту ОС как UNIX – родоначальника огромного семейства разнообразных операционных систем.

Предтечи UNIX

В середине 50-х годов исследовательский отдел корпорации Bell System приобрел для своего компьютерного центра у IBM несколько новых компьютеров- мейнфреймов (собственно, других тогда не существовало). Вычислительные системы, на которые было потрачено несколько миллионов долларов, должны были помочь Bell System создавать собственную компьютерную технику.

Однако вскоре инженерам Bell стало понятно: имеющееся ПО не подходит для исследовательской и конструкторской работы. К тому же в те годы из-за отсутствия операционных систем как таковых все приходилось делать вручную, что отнимало много времени и сил. В общем, программисты исследовательского отдела Bell System решили разработать ОС собственными силами.

Работа по созданию операционной системы для собственных нужд Bell Labs началась в 1957 году – и через несколько месяцев была закончена. Руководил проектом программист Виктор Высотский, а созданная система получила название BESYS. Впоследствии Высотский возглавил проект Multics, а затем стал главой информационного подразделения Bell Labs.

Разработчики BESYS не собирались распространять ОС за пределами Bell – она предназначалась исключительно для внутренних нужд. Но когда некоторые исследовательские институты проявили интерес к разработке, сотрудники Bell выслали всем желающим копии на магнитных лентах – тогда в компьютерном сообществе просто не существовало понятия «проприетарное ПО».

В 1964 году в Bell Labs был кардинально обновлен компьютерный парк. Программисты компании столкнулись с проблемой: BESYS была «заточена» под конкретную платформу и не работала на новых машинах, а IBM по-прежнему мало заботилась о софте для производимого ею железа. Опять пришлось писать собственную ОС...

В то время в компьютерном сообществе была популярна идея разделения машинного времени (Compatible Time Sharing System – CTSS), позволяющая работать на одном компьютере нескольким пользователям одновременно. Идея создать Multics (Multiplexed Information and Computing Service) – операционную систему с поддержкой CTSS – родилась в Массачусетском технологическом институте. За реализацию проекта взялась компания General Electric, а финансированием разработки Multics занимался департамент безопасности знаменитого Advanced Research Projects Agency (DARPA). Несколько лучших программистов Bell под руководством Виктора Высоцкого предложили свою помощь и вскоре присоединились к остальным разработчикам Multics. Несмотря на энтузиазм создателей, работа затянулась на несколько лет. Разработчики, особенно представители МТИ, хотели создать идеальную систему; многие новые задумки реализовывались впервые, а потому требовали тщательного тестирования. Это, а также отсутствие хорошей финансовой поддержки, вынуждало снова и снова откладывать выход ОС.

В апреле 1969-го программисты Bell вышли из состава разработчиков Multics. Виктор Высотский и его коллеги поняли: создаваемая система с каждым годом все сильнее отличалась от того, что планировалось в начале. Ее полезность в экономическом плане вызывала серьезные сомнения.

Спустя полгода, в октябре 1969 года, сильно сокращенная и явно недоработанная Multics была представлена общественности. Вскоре на авторов обрушился буквально шквал рекламаций – пользователи перечисляли многочисленные баги и рассказывали о регулярных сбоях. Только в середине 1970-го первая система с разделением времени обрела более-менее стабильную рабочую форму.

Справка «КГ»:

Bell Laboratories (известна также как Bell Labs, прежние названия – AT&T Bell Laboratories, Bell Telephone Laboratories) – американская компания, крупный исследовательский центр в области телекоммуникаций, электронных и компьютерных систем. Основана в 1925 году как исследовательский центр компании AT&T. В 1995-м Bell Labs была куплена Lucent Technologies, которая в 2006 году после слияния с французской компанией Alcatel преобразовалась в Alcatel-Lucent. В настоящее время является исследовательским центром корпорации Alcatel-Lucent. Штаб квартира Bell Labs находится в Мюррей Хилл (Нью-Джерси, США).

Наиболее известные разработки: транзистор (1947 год), фотоэлементы (1954), ОС UNIX и язык С (1970-е), язык C++ (1980-е).

Рождение UNIX

После ухода из проекта Multics сотрудники Bell Labs некоторое время использовали систему GECOS, созданную компанией General Electrics. Но ее слабые возможности никого не устраивали.

К тому времени уже появились сравнительно небольшие компьютеры PDP-7, помимо прочих достоинств, обладавшие графическим дисплеем. Сотрудники Bell Labs Кен Томпсон, Денис Ритчи и Дуглас МакИлрой решились на авантюру: использовать эту машину для написания собственной универсальной ОС. В частности, Томпсон решил воплотить в новинке самые удачные идеи, рожденные при разработке Multics. Этими инновациями тогда были хорошо нам теперь знакомые иерархическая древовидная структура файловой системы, концепции файла и процесса, командный интерпретатор для пользователя, многопользовательский режим работы и многое другое.

Программисты работали следующим образом: на имевшемся в их распоряжении компьютере General Electric 635 писали ассемблерный код, который затем посредством перфоленты переносили на PDP-7, где и отлаживали. Так родилось ядро будущей системы, текстовый редактор, несколько утилит и собственный Ассемблер.
Первоначально будущая UNIX требовала всего 12 Кб оперативной памяти (размер ядра системы), еще 8 Кб уходило на ПО, а предельно допустимый размер файла составлял 64 Кб. Сегодня подобное выглядит чем-то невероятным, но тогда такие цифры были в порядке вещей.

Далее разработчики действовали уже полностью на PDP-7 в создаваемой по ходу дела ОС. Первоначальное название нового продукта было UNICS (Uniplexed Information and Computing System). Привычное нам название UNIX появилось немного позднее, но все в том же 1969 году.

В начале 1970 года система уже могла полностью функционировать самостоятельно. В 1971 году лаборатории Bell Labs потребовалась система обработки текстов, и в качестве платформы для нее был выбран именно UNIX, к тому времени уже реализованный на более мощной машине – PDP-11. Как раз в то время Кен Томпсон работал над компилятором языка Fortran, но в итоге у него получился т.н. «язык B», который немного позднее превратился во всем хорошо известный C.

Проект развивался, и в 1973 году вышла третья редакция UNIX, со встроенным компилятором языка С. 15 октября того же года появилась четвертая редакция, с переписанным на С системным ядром, а в 1975-м – пятая редакция, уже полностью переписанная на С. Это сделало систему полностью переносимой. Тогда же о новой ОС узнали за пределами телефонной компании, и она стала быстро завоевывать популярность. Этому способствовало ее умение легко адаптироваться к самым разным компьютерным платформам.

В 1974 исходники UNIX стали распространяться в университетах за символическую плату, что начало вовлекать в разработку ОС все новых и новых программистов. Безусловными преимуществами UNIX на тот момент были небольшая цена, понятный и доступный для изучения код на C, гибкость и переносимость, возможность настроить ОС под любую конфигурацию. В результате вскоре для большинства исследовательских институтов в США эта ОС стала стандартом де-факто. С 70-х по 90-е годы вышло множество UNIX-клонов (AIX, CLIX, Ultrix, Xenix, IRIX, HP-UX, Solaris, Unixware и т.д.).

Создатели UNIX, или почему админу положено быть бородатым

Денис Ритчи (родился 9 сентября 1941 года) – компьютерный специалист, известный своим участием в проектах ALTRAN, B, BCPL, С, Multics, и UNIX. Ритчи окончил Гарвард со степенью бакалавра по физике и прикладной математике. В 1967-м начал работать в Bell Labs. Сегодня Ритчи продолжает исследования в области операционных систем и языков программирования, участвует в разработке ОС Plan 9 и Inferno, а также языка Limbo. Кен Томпсон (родился 4 февраля 1943 года) известен по большей части своим вкладом в создание языка С и ОС UNIX. Томпсон родился в Новом Орлеане. Получил степень бакалавра наук в 1965 году и магистра в области электротехники и информатики в калифорнийском университете в Беркли. В конце 2000-го Томпсон ушел из Bell Labs. Он до 2006 года работал в компании Entrisphere, а сейчас работает в Google.

В 1960-х Кен Томпсон и Денис Ритчи работали над ОС Multics, «попутно» создав язык программирования Bon. В 1969 году Томпсон и Ритчи стали создателями Unix, языка программирования B (предшественника языка С) и текстового редактора QED, впервые в мире использовавшего регулярные выражения для поиска текста.

В 1983 году Ритчи и Томпсон совместно получили Премию Тьюринга за разработку общей теории операционных систем и, в частности, за создание UNIX. А в 1999-м Ритчи и Томпсон вместе получили национальную медаль за достижения в области технологий от президента Билла Клинтона – опять же за создание ОС UNIX и языка программирования С.

Дальнейшее развитие

В 1970-х AT&T была правительственной монополией, и потому ей было запрещено продавать код UNIX на открытом рынке. Во многом по этой причине в Калифорнийском университете в Беркли была создана отдельная группа для развития проекта UNIX, названная Computer System Research Group. Интерес к UNIX в Калифорнийском университете был связан с переходом туда Кена Томпсона из Bell Laboratories в 1975 году (позднее Томпсон на некоторое время вернулся в Bell). Вскоре университет выпустил свою версию UNIX – Berkley Software Distribution (сокращенно BSD). В эту версию были включены редактор vi и командный процессор c shell, популярные и по сей день.

В 1977 году американское правительство разрешило продажу ОС UNIX разработки AT&T. Вскоре ряд молодых софтверных компаний начал продавать модифицированные версии UNIX для различных готовых решений. Так UNIX стал коммерчески применимой системой.

В конце 70-х Пентагон решил использовать UNIX в подразделении Advanced Research Project Agency (ARPA), причем в качестве базовой была принята версия BSD. Правительство выставило определенные требования: поддержка сети и устойчивость системы. Именно тогда очередная версия BSD была сделана многопользовательской и многозадачной.

К 1978 году UNIX был установлен более чем на 600 мэйнфреймах, прежде всего, в университетах. Седьмая редакция была последней единой версией UNIX. В ней появился близкий к современному интерпретатор командной строки Bourne shell.

С 1978 года начинает свою историю BSD UNIX, созданный в университете Беркли. Его первая версия была основана на шестой редакции. В 1979 выпущена новая версия, названная 3BSD, основанная на седьмой редакции. BSD поддерживал такие свойства, как виртуальную память и замещение страниц по требованию.

В начале 1980-х компания AT&T, которой принадлежали Bell Labs, поняла ценность UNIX и начала создание коммерческой версии UNIX. Эта версия, поступившая в продажу в 1982 году, была названа UNIX System III.

Незадолго до этого в UNIX был реализован стек протоколов TCP/IP. До этого межмашинное взаимодействие в UNIX было весьма слабым – самым распространенным способом связи был UUCP (средство копирования файлов из одной UNIX-системы в другую, изначально работавшее по телефонным сетям с помощью модемов).

Было предложено два интерфейса программирования сетевых приложений: Berkley sockets и интерфейс транспортного уровня TLI (Transport Layer Interface). Интерфейс Berkley sockets был разработан в университете Беркли и использовал стек протоколов TCP/IP, разработанный там же. TLI был создан AT&T в соответствии с определением транспортного уровня модели OSI и впервые появился в системе System V версии 3. Хотя эта версия содержала TLI и потоки, первоначально в ней не было реализации TCP/IP или других сетевых протоколов, но подобные реализации предоставлялись сторонними фирмами. Реализация TCP/IP официально и окончательно была включена в базовую поставку System V версии 4. Это привело к окончательному размежеванию двух ветвей UNIX – BSD (университета Беркли) и System V (коммерческая версия от AT&T).

Птенцы гнезда UNIX-ового

В 1983 году Ричард Столлман запустил проект GNU, цель которого – создание свободной UNIX-подобной ОС с нуля, без использования оригинального исходного кода. Однако работы по созданию современного ядра на основе микроядерной архитектуры Mach и сегодня еще далеки от завершения. Намного более «везучим» оказался другой проект. В 1991 году Линус Торвальдс опубликовал ядро Linux. Очень скоро дистрибутивы этой системы, включающие ядро, утилиты GNU и дополнительное ПО, стали весьма популярны во всем мире.

Появлялись и другие успешные UNIX-проекты. Так, в 1992 году вышел дистрибутив 386/BSD, основанный на Networking Release 2, распространяемый компанией BSDI по весьма демократической цене. Таким образом ОС UNIX была портирована на платформу x86. Компания UNIX Systems Laboratories (USL) тогда подала иск против BSDI и против университета Беркли, допустившей распространение файлов UNIX в исходных и двоичных форматах фактически за бесценок, что подрывало бизнес самой USL. Однако суд ни к чему не привел, а к началу 1993 года дистрибутив 386/BSD сменил название на NetBSD. А в декабре 1993-го появился другой дистрибутив – FreeBSD, ориентированный на широкий круг пользователей для выполнения каждодневной, разноплановой работы. Позднее в самостоятельные проекты выделились OpenBSD, TrustedBSD и DragonFlyBSD.

В последние годы GNU/Linux и семейство BSD быстро отвоевывают рынок у коммерческих UNIX-систем, попутно обосновываясь на ПК конечных пользователей, в мобильных и встраиваемых системах.

В конце 1970-х бывший студент Беркли – Билл Джой, участвовавший в разработке BSD, создал собственную софтверную компанию, которую назвал SUN Microsystems. Быстро завоевавшие популярность рабочие станции Sun работали под управлением ОС на базе BSD – она получила название SunOS. Ну и, конечно, нельзя забывать о еще одной важной ветви UNIX. Когда компания Apple подбирала основу для своей новой ОС, она выбрала NEXTSTEP – систему со свободно распространяемым ядром, разработанную фирмой NeXT. После приобретения фирмой Apple она была переименована в Darwin. Эта система относится к семейству BSD и основана на ядре Mach. Применение Darwin BSD UNIX в Mac OS X делает его одной из самых широко используемых пользовательских версий UNIX.

Денис Лавникевич


Компьютерная газета. Статья была опубликована в номере 36 за 2009 год в рубрике бизнес

©1997-2024 Компьютерная газета