Электронная версия известного компьютерного журнала
Прочая компьютерная литература / Книги по IT18+Теория
История UNIX / Как это было…
Roman aka Docent
История *nix-систем насчитывает более 30 лет. Давай совершим небольшое путешествие во времени к самым истокам этой оси, в то время, когда компы были большие, а собственную ОС не писал разве что ленивый программер. Конечно, большая часть таких осей не дожила до нашего времени, а о многих из них не сохранилось даже малейших сведений.
UNIX был разработан американской лабораторией Bell Labs, входившей в состав конторы Bell Systems. История этой компании в области информационных технологий началась в 1957 году, когда ее сотрудникам потребовалась операционная система для собственного вычислительного центра, в котором использовалась ЭВМ второго поколения. От такой системы требовалось автоматизировать запуск некоторых программ и управление вычислительными ресурсами. Новоиспеченную систему назвали BESYS. Разумеется, она была совершенно не похожа на современные операционные системы, и применять ее могли разве что сами разработчики для собственных целей. А в те времена больше ничего и не требовалось – компьютеров было мало, и работали с ними лишь программисты и ученые, а уж о необходимости компьютера дома или в офисе никто не задумывался. В 1964 году контора приобрела более мощную машину третьего поколения, и тут же возник вопрос о новой оси, так как старая годилась лишь для той машины, для которой ее делали. Никаких общих стандартов совместимости тогда не существовало. Для участия в разработке операционной системы были приглашены специалисты из Массачусетского института и корпорации General Electric. И закипела работа над новой осью, названной впоследствии Multics (Multiplexed Information and Computing System), – многозадачной, многопользовательской ОС с разделением времени и пользовательским интерфейсом. С помощью нее несколько пользователей одновременно могли получать доступ к вычислительным ресурсам. При создании были использованы наработки Массачусетского института, реализованные ранее в другой экспериментальной оси – CTSS. В итоге, получилась достаточно сложная в использовании, громоздкая и дорогая операционка, в которой, к тому же, существовал ряд ошибок, связанных, в основном, с неудачно выбранным языком программирования PL/I. Кроме этого, среди разработчиков возникли некоторые организационные разногласия. Короче говоря, проект загнулся. Но оставил после себя различные идеи, в частности, идеи по файловой системе, которые были использованы в дальнейших разработках.
После закрытия проекта сотрудники Bell Labs на некоторое время пересели на созданную компанией General Electrics систему GECOS. Узкие возможности этой системы никого из работников лаборатории не устраивали. И в это время, как гласит легенда создания UNIX, один из разработчиков, принимавших активное участие в проекте Multics, Кеннет Томпсон, создал простенькую по тем временам игрушку – Space Travel, которая, к сожалению, не могла нормально работать на тех машинах, что имелись в лаборатории. Компьютеры ведь применялись лишь для научных задач, и никто не думал тогда об их использовании в качестве игровых автоматов. По официальной версии, Томпсон и его коллега Денис Ритчи написали начальству заявку на приобретение более мощной машины для разработки новой операционной системы. Если верить легенде, им всего лишь хотелось нормально поиграть в свое творение :). Заявку, разумеется, отклонили, и пришлось новоявленным геймерам довольствоваться небольшим (по тогдашним меркам) компьютером PDP-7, хотя он вполне подходил по объему оперативной памяти, да к тому же обладал графическим дисплеем. Тут-то и пришла им в головы мысль использовать эту машину для написания собственной универсальной операционки (а может, чтобы просто оправдаться перед начальством в потребности более мощной машины :)). Томпсон решил воплотить в невиданной доселе операционке все самые удачные идеи, которые появились при разработке Multics, а именно: иерархическая древовидная структура файловой системы, концепции файла и процесса, командный интерпретатор для пользователя, многопользовательский режим работы (могли работать два пользователя одновременно) и много чего еще. Работа шла таким образом: на имевшемся до этого компьютере General Electric 635 писали ассемблерный код и потом с помощью перфоленты переносили на PDP-7, на которой впоследствии отлаживали. Так было получено простенькое ядро будущей системы, текстовый редактор, несколько утилит и собственный Ассемблер.