Мне кажется, что история - великая наука. Она дает нам шанс пробежать за пару минут несколько десятков лет, ощутить сложность становления и развития чего-то великого, в очередной раз убедить себя в том, что развитие человечества - это заслуга личностей, которые смогли несмотря ни на что остаться преданными своей идее и довести ее до логического завершения. Я бы хотел, дорогие читатели, окунуться вместе с вами в атмосферу конца 60-х годов, во времена рождения одной операционной системы, которая сделала просто огромный прорыв в развитии современной компьютерной науки, под ее четким руководством зарождалась глобальная сеть и сообщество людей, ставшими новой социальной группой - интернет-сообществом.
Все началось в далеком 1965-м... Четыре года компания American Telegraph&Telephone Bell Labs совместно с фирмой General Electric и группой исследователей из Массачусетского технологического института создавала проект OS Multics (также именуемый MAC). Целью проекта было создание многопользовательской интерактивной операционной системы, обеспечивающей большое число пользователей удобными и мощными средствами доступа к вычислительным ресурсам. Эта операционная система основывалась на принципах многоуровневой защиты. Виртуальная память имела сегментно-страничную организацию, с каждым сегментом связывался уровень доступа. Для того чтобы какая-либо программа могла вызвать программу или обратиться к данным, располагающимся в некотором сегменте, требовалось, чтобы уровень выполнения этой программы был не ниже уровня доступа соответствующего сегмента. Впервые в Multics была реализована полностью централизованная файловая система. Увы, все попытки наладить в системе относительно дружественный интерфейс провалились. Было вложено много денег, а результат был несколько иной, нежели того хотели спонсоры из Bell Labs. Проект был закрыт. Кстати, участниками проекта значились Кен Томпсон и Денис Ритчи, о них речь пойдет далее.
Итак, приблизительно в это же время сотрудник Bell Labs Кен Томпсон (Ken Thompson), который вскоре стал известен всему миру как один из создателей Unix, заинтересовался компьютером PDP-7 производства Digital Equipment Corporation (DEC), считавшимся тогда бесперспективным. Томпсон решил построить операционную систему, которая поддерживала бы совместную работу коллектива программистов при проведении исследований и разработке новых продуктов. Чтобы заручиться поддержкой руководства, Томпсон пообещал, что разрабатываемую систему можно будет использовать как инструментальное средство для подготовки патентной документации.
Первый этап работы Томпсона увенчался созданием операционной системы, ассемблера для PDP-7 и нескольких утилит. Более того, он написал новую файловую систему, включил понятие inodes, подсистему управления процессами и памятью, обеспечивающую работу в системе двух пользователей в режиме разделения времени и простой командный интерпретатор. Так как создание новой операционной системой происходило после провалившегося проекта Multics, то разработчики решили в память былых заслуг назвать новую операционную систему Томпсона похожим именем - UNICS (Uniplexed Information and Computing System). Через некоторое время название сократили до UNIX. Но к сожалению, изобретение, как это часто бывает, уперлось в трудности материального плана. Во-первых, PDP-7 было арендовано отделом, а не куплено, и рано или поздно пришлось бы его отдавать, а во-вторых, операционка разрослась настолько, что системных ресурсов уже устаревшего на то время компьютера ей не хватало.
Поэтому в 1971 году Кен Томпсон вместе со своими друзьями перенесли свою последнюю модификацию UNIX на более совершенный Digital Equipment PDP-11/20. Если учесть, что ОС была написана на ассемблере, а физически взять и перенести весь этот код было невозможно, то можете себе представить, чего это стоило. Зато PDP-11 без проблем поддерживала большое количество залогинившихся пользователей, да к тому же позволила, наконец, написать простенький интерпретатор текстового процессора.
В ноябре 1971 года был опубликован первый выпуск полноценной документации по Юниксу. В соответствии с этим операционная система была названа Первой редакцией UNIX. Вторая редакция вышла довольно быстро - меньше чем через год. Система была полностью переписана на язык B, созданный Томпсоном под влиянием языка BCPL. Третья редакция ничем особенным не отличалась. Разве что заставила Дениса Ритчи с головой уйти в работу над созданием нового языка программирования, вследствие чего тот написал собственный язык, известный сейчас как C. Он позволял расширить функции своего предшественника - B, и именно на нем была написана четвертая редакция UNIX в 1973 году. Ритчи разработал этот язык общего назначения специально для дальнейшей работы над системой UNIX. Язык C легко адаптировался для различных архитектур и вскоре начал применяться на различных машинах. Если бы система UNIX не была написана на переносимом языке, каковым является C, она была бы жестко привязана к одному типу компьютеров, в данной случае к PDP-7. В результате использования С система стала легко переносимой, и в настоящее ее можно сравнительно небольшими усилиями адаптировать для машины новой архитектуры.
Впервые UNIX была перенесена на другую платформу в 1976 году. Ритчи и Джонсон адаптировали систему для Interdata 8/32, затем был выполнен перенос Unix на различные популярные архитектуры, в частности Intel 8086/8088/80x86 и даже на суперкомпьютер Cray.
После того как система UNIX была принята на вооружение Bell Labs, началось ее распространение и в остальных компаниях Bell System. Приблизительно в то же время ею заинтересовались престижные учебные заведения, такие как Калифорнийский и Массачусетский Технологический Институт. В 1975 году Western Electric Company, входящая в состав AT&T, начала продавать независимым производителям исходные коды UNIX и лицензии на использование системы. В то же время учебным заведениям, желающим получить в свое распоряжение UNIX, достаточно было приобрести магнитную ленту и затратить незначительные средства на поддержку системы. Таким образом стимулировались дальнейшие работы по модификации данной операционной системы.
В отличие от большинства операционных систем, UNIX, по крайней мере на начальных стадиях разработки, создавалась не для того чтобы способствовать увеличению сбыта компьютеров. В течение первых десяти лет существования UNIX AT&T не занималась продажей вычислительных средств. Некоторая "коммерциализация" UNIX явилась лишь результатом огромного спроса на систему.
Все существующие в настоящее время версии UNIX берут свое начало из двух источников - AT&T System V и BSD (Berkeley Software Distribution) v 4 - системы коммерческой и системы некоммерческой, если можно так сказать. Об этом читайте далее.
AT&T System V
В 1976 году появилась Version 6, которая стала использоваться в Bell System и в университетах, расположенных по всему миру. Version 6 стала основой для нескольких разновидностей UNIX, включая систему реального времени MERT и PWB UNIX.
В 1978 году Bell Labs выпустила version 7 UNIX, ставшую прообразом современных систем UNIX. В ней была впервые реализована оболочка Bourne, содержащая мощный интерпретатор командного языка, и средства интерактивного взаимодействия с пользователем.
В конце 80-х годов в составе AT&T была создана компания под названием USL (UNIX System Laboratories), которая подготовила исходные коды для промышленного выпуска систем UNIX, базирующихся на System V. Последней версией UNIX, выпущенной USL, стала UNIX System V Release 4.2 (известная как SRV 4.2), которая увидела свет в начале 90-х годов. Эта версия включала в себя графический пользовательский интерфейс (GUI) под названием UNIX Desktop. Кроме того, в состав SVR4.2 вошли драйверы для обслуживания аппаратуры персональных компьютеров, например часто используемых типов жестких дисков и устройств чтения компакт-дисков, а также средства поддержки многопроцессорных систем.
Соглашение, заключенное в 1991 году между USL и компанией Novell привело к созданию версии SVR4.2 под названием UnixWare, предназначенной для аппаратных платформ Intel. В настоящее время эта система доступна в двух конфигурациях: Personal Edition (PE) и Application Server (AS).
В 1993 году компания Novell приобрела у AT&T USL вместе с продуктом UNIX System V, включила USL в состав Novell UNIX System Group и приступила к дальнейшей работе над UnixWare.
В начале 1997 года Novell реализовала в UnixWare v2 поддержку системы каталогов NDS (Novell Directory Services), в результате чего была создана единая структура для работы UNIX и Netware (сетевой операционной системы Novell).
В 1996 году SCO приобрела у Novell права на дальнейшее развитие UNIX, после чего начала самостоятельно поддерживать исходные коды и технологические решения системы. Тем не менее, SCO не получила прав на использование торговой марки UNIX.
BSD v4
В конце 70-х начале 80-х годов AT&T уделяла мало внимания развитию UNIX. В это же время профессоры и студенты факультета компьютерных наук Калифорнийского университета усиленно занимались поддержкой и доработкой данной системы. Одним из главных разработчиков и "доработчиков" UNIX был в то время дипломник, а в будущем создатель BSD (Berkeley Software Distribution), президент и основатель Sun Microsystems - Билл Джой. Пожалуй, если бы не он, то вряд ли бы сейчас называли многие из нас себя юниксоидами. Так как только благодаря усилиям Билла и его друзей родилась FreeBSD.
Итак, параллельно с улучшением UNIX шла разработка системы, известной нам как FreeBSD. Когда в 1976 году в Университет Беркли попала "шестерка", там возникли местные юникс-гуру. Одним из них был Билл Джой.
Собрав своих друзей-программистов, Билл начал разработку собственной системы на ядре UNIX. Запихнув помимо основных функций кучу своих (включая компилятор Паскаля), он назвал всю эту сборную солянку Berkeley Software Distribution (BSD 1.0). Вторая версия BSD носила следы попыток изнасилования :-) (то есть частичной перезаписи ядра системы). Третья версия BSD основывалась на переносе UNIX Version 7 на компьютеры семейства VAX, что дало систему 32/V, легшую в основу BSD 3.x. Ну, и самое главное: при этом был разработан стек протоколов TCP/IP; разработка финансировалась Министерством Безопасности США.
Начиная с версии 4.1 (1980 год), Berkeley Software Distribution распространялась практически бесплатно - сначала среди пользователей, обладавших лицензией Bell Labs, а позже, переименовавшись в FreeBSD, и вовсе для всех практически бесплатно.
Позже, в 1982-м Билл Джой основал Sun Microsystems, забрал себе исходники платной версии BSD и начал делать SunOS, которая в 1990-х мутировала в Solaris. Отдельные версии Solaris сейчас распространяются бесплатно. Пожалуй, самым значительным вкладом в BSD стала разработка утилит, обеспечивающих дружественный пользовательский интерфейс. Этому вопросу практически не уделялось внимания при создании AT&T первых версий UNIX.