Программированиеи компьютеры /
←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10
Содержание
Содержание 1
Проект операционной системы Multics: неудача с положительными последствиями 2
Возникновение и первая редакция ОС UNIX 3
Исследовательский UNIX 5
Первый перенос ОС UNIX 5
Седьмая редакция 6
Возникновение группы университета г. Беркли (BSD) 7
UNIX System III и первые коммерческие версии системы 8
AT&T System V Release 2 и Release 3 9
Пользователь 9
Интерфейс пользователя 10
Привилегированный пользователь 10
Ядро ОС UNIX 11
Общая организация традиционного ядра ОС UNIX 12
Основные функции 13
Принципы взаимодействия с ядром 14
Принципы обработки прерываний 15
Файловая система 16
Структура файловой системы 16
Монтируемые файловые системы 18
Защита файлов 18
Драйверы устройств 19
Внешний и внутренний интерфейсы устройств 20
Сетевая файловая система (NFS) 21
Основные функции и компоненты ядра ОС UNIX 22
Управление памятью 22
Виртуальная память 23
Перспективные ОС, поддерживающие среду ОС UNIX 28
Понятие микроядра 29
Микроядро Mach университета Карнеги-Меллон 31
Микроядро Chorus компании Chorus Systems 33
Примеры микроядерных реализаций ОС UNIX 33
OSF-1 компании Open Software Foundation 33
MiX компании Chorus Systems 33
Hurd Free Software Foundation 34
Проект операционной системы Multics: неудача с положи-тельными последствиями
С 1965 по 1969 год компания Bell Labs совместно с компанией General Electric и группой исследователей из Масачусетского технологического института участ-вовала в проекте ОС Multics. Целью проекта было создание многопользова-тельской интерактивной операционной системы, обеспечивающей большое число пользователей удобными и мощными средствами доступа к вычисли-тельным ресурсам. В этом курсе мы не ставим задачу познакомить слушателей с ОС Multics. Это могло бы быть темой отдельного большого курса. Однако от-метим хотя бы некоторые идеи, которые содержались в проекте MAC (так на-зывался проект ОС Multics).
Во-первых, эта система основывалась на принципах многоуровневой защиты. Виртуальная память имела сегментно-страничную организацию, разделялись сегменты данных и сегменты программного кода, и с каждым сегментом связы-вался уровень доступа (по выполнению для сегментов команд и уровень чтения и записи для сегментов данных). Для того, чтобы какая-либо программа могла вызвать программу или обратиться к данным, располагающимся в некотором сегменте, требовалось, чтобы уровень выполнения этой программы (точнее, сегмента, в котором эта программа содержалась, был не ниже уровня доступа соответствующего сегмента). Такая организация позволяла практически полно-стью и с полной защитой содержать операционную систему в системных сег-ментах любого пользовательского виртуального адресного пространства.
Во-вторых, в ОС Multics была спроектирована и реализована полностью цен-трализованная файловая система. В централизованной файловой системе фай-лы, физически располагающиеся на разных физических устройствах внешней памяти, логически объединяются в один централизованный архив или древо-видную иерархическую структуру, промежуточными узлами которой являются именованные каталоги, а в листьях содержатся ссылки на файлы. В том случае, когда при поиске файла в архиве по его имени оказывалось, что соответствую-щий накопитель (магнитный диск или магнитная лента) не был установлен на устройство внешней памяти, ОС обращалась к оператору с требованием уста-новить нужный том внешней памяти. Естественно, такая дисциплина сущест-венно облегчала операторскую работу и администрирование файловой систе-мы, хотя и затрудняла выполнение таких рутинных действий как перенос части файловой системы с одного компьютера на другой. Позже мы увидим, какой изящный компромисс был выбран при реализации ОС UNIX.
Далее, наличие большой сегментно-страничной виртуальной памяти позволило использовать отображение файлов в сегменты виртуальной памяти. Другими словами, при открытии файла в виртуальной памяти соответствующего процес-са образовывался сегмент, в который полностью отображался файл, распола-гающийся во внешней памяти. (Следует отметить, что в файловой системе ОС Multics на базовом уровне поддерживались файлы со страничной структурой. Более сложные организации являлись надстройкой). Дальнейшая работа с фай-лом происходила на основе общего механизма управления виртуальной памя-тью.
Операционная система Multics, хотя и не была полностью доведена до стадии коммерческого продукта, обогатила мировое сообщество системных програм-мистов массой ценных идей, многие из которых сохраняют свою актуальность по сей день и используются применительно не только к операционным систе-мам. Основным недостатком ОС Multics, который, по всей видимости, и поме-шал довести систему до уровня программного продукта, была ее чрезмерная сложность. Среди участников проекта Multics находились Кен Томпсон и Ден-нис Ритчи.
Решение о прекращении участия в проекте Multics было принято на самом верхнем уровне руководства Bell Labs, и сотрудники, по существу, были по-ставлены перед свершившимся фактом. Более того, руководство компании, разочарованное результатами весьма дорогостоящего проекта, вообще не жела-ло больше вести какие-либо работы, связанные с операционными системами.
Возникновение и первая редакция ОС UNIX
Принято считать, что исходным толчком к появлению ОС UNIX явилась работа Кена Томпсона по созданию компьютерной игры "Space Travel". Он делал это в 1969 году на компьютере Honeywell 635, который до этого использовался для разработки проекта MAC. В это же время Кен Томпсон, Деннис Ритчи и другие сотрудники Bell Labs предложили идею усовершенствованной файловой систе-мы, прототип которой был реализован на компьютере General Electric 645. Од-нако компьютер GE-645, который был рассчитан на работу в режиме разделе-ния времени и не обладал достаточной эффективностью, не годился для пере-носа Space Travel. Томпсон стал искать замену и обнаружил, что появившийся к этому времени 18-разрядный компьютер PDP-7 с 4 килословами оперативной памяти и качественным графическим дисплеем вполне для этого подходит.
После того, как игра была успешно перенесена на PDP-7, Томпсон решил реа-лизовать на PDP-7 разработанную ранее файловую систему. Дополнительным основанием для этого решения было то, что компания Bell Labs испытывала по-требность в удобных и дешевых средствах подготовки и ведения документации. В скором времени на PDP-7 работала файловая система, в которой поддержива-лись: понятие inodes, подсистема управления процессами и памятью, обеспечи-вающая использование системы двумя пользователями в режиме разделения времени, простой командный интерпретатор и несколько утилит. Все это еще не называлось операционной системой UNIX, но уже содержало родовые черты этой ОС.
Название придумал Брайан Керниган. Он предложил назвать эту двухпользова-тельскую систему UNICS (Uniplexed Information and Computing System). Назва-ние понравилось, поскольку, помимо прочего, оно напоминало об участии со-трудников Bell Labs в проекте Multics. В скором времени UNICS превратилось в UNIX (произносится так же, но на одну букву короче).
Первыми реальными пользователями UNIX стали сотрудники патентного отде-ла Bell Labs. Однако существовали некоторые проблемы, связанные с PDP-7. Во-первых, эта машина не принадлежала компьютерной группе (была только во временном пользовании). Во-вторых, возможности этого компьютера не удов-летворяли потребности исследователей. Поэтому в 1971 году был приобретен новый 16-разрядный компьютер фирмы Digital Equipment PDP-11/20, и на него была перенесена UNIX. Существовавший к этому времени вариант системы был написан на языке ассемблера, так что можно представить, что перенос был совсем не простым делом. На PDP-11 система поддерживала большее число пользователей. Кроме того, была реализована утилита форматирования тексто-вых документов roff (тоже на языке ассемблера).
В ноябре 1971 года был опубликован первый выпуск документации по ОС UNIX ("Первая редакция"). В соответствии с этой "Первой редакцией" назвали и соответствующий документации вариант системы. Впоследствии это стало традицией: новая редакция ОС UNIX объявлялась при выходе в свет новой ре-дакции документации.
Вторая редакция появилась в 1972 году. Наиболее существенным качеством "Второй редакции" было то, что система была переписана на языке Би ("B"). Язык и интерпретирующая система программирования были разработаны Ке-ном Томпсоном под влиянием существовавшего языка BCPL. Во второй редак-ции появились программные каналы ("pipes").
Появление варианта системы, написанного не на языке ассемблера, было за-метным продвижением. Однако сам язык Би во многом не удовлетворял разра-ботчиков. Подобно языку BCPL язык Би был бестиповым, в нем поддерживался только один тип данных, соответствующий машинному слову. Другие типы данных эмулировались библиотекой функций. Деннис Ритчи, который всегда увлекался языками программирования, решил устранить ограничения языка Би, добавив в язык систему типов. Так возник язык Си ("C"). В 1973 году Томпсон и Ритчи переписали систему на языке Си. К этому времени существовало около 25 установок ОС UNIX, и это была "Четвертая редакция".
В июле 1974 года Томпсон и Ритчи опубликовали в журнале Communications of the ACM историческую статью "UNIX Timesharing Operating System", которая положила начало новому этапу в истории системы. ОС UNIX заинтересовались
←предыдущая следующая→
1 2 3 4 5 6 7 8 9 10
|
|