Операционная система UNIX. Руководство программиста

     

Предыстория


Возможно, Вы уже читали о том, что первоначально реализация новой операционной системы, впоследствии названной UNIX, проводилась группой Кена Томпсона и Денниса Ритчи на неиспользуемом компьютере DEC PDP-7, стоявшем в коридоре AT&T Bell Laboratories. Причем целью этих работ было построение удобного окружения для собственного использования. Никто не собирался разрабатывать операционную систему, способную завоевать мировую известность.

Интересно проследить последовательность, в которой реализовывались различные элементы операционной системы. Сначала была построена простая файловая система, не имеющая древовидной структуры. Затем она была организована как система каталогов и файлов. Говоря о файлах, необходимо подчеркнуть две основные идеи. Во-первых, в ОС UNIX данные, программы, каталоги и даже физические устройства рассматриваются как файлы того или иного типа. Во-вторых, сам файл понимается как одномерный массив байт, лишенный какой-либо другой структуры. Очевидность и простота такого подхода способствовали построению удобного окружения как для программистов, так и для других пользователей.

Следующая идея состояла в том, чтобы рассматривать выполняющиеся программы как процессы. При этом каждый процесс может порождать другой и обмениваться с ним информацией. В результате такого подхода стало естественным разделение сегментов команд между несколькими процессами (это является характерной особенностью ОС UNIX).

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

Следующим важным шагом было приобретение компьютера DEC PDP-11 и установка на нем новой операционной системы. По мнению Ритчи это была большая удача, поскольку PDP-11 была очень хорошей машиной и успех самого компьютера в определенной степени способствовал признанию операционной системы, ставшей известной под названием UNIX.

К 1972 году в системе была реализована возможность организации межпроцессных каналов (такого способа связи, при котором вывод одного процесса становится вводом другого). Операционная система была переписана на языках более высокого уровня (сначала на языке B, затем C) и получила название UNIX, придуманное Брайаном Керниганом. Таким образом, задача, поставленная Томсоном и Ритчи, то есть построение удобного программного окружения, была выполнена.


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

Начиная с 1971 года система стала использоваться внутри AT&T Bell Laboratories, а вскоре (в 1974 году) стала продаваться колледжам и университетам, причем цена была невысокой и никакой поддержки не предполагалось. Эти, так называемые исследовательские версии, нумеровались арабскими цифрами, начиная с 7. Иногда они самостоятельно развивались и обогащали систему новыми элементами. Например, широко известный экранный редактор vi был добавлен к системе Уильямом Джоем из Университета Беркли. В 1979 году, согласно коммерческим требованиям, AT&T начала поставлять поддерживаемые версии ОС UNIX. Они нумеровались римскими цифрами, и кроме того, часто снабжались номером модификации. Например, текущая версия называется UNIX System V Release 3.1.

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




Содержание раздела