Проект операционной системы Multics: неудача с положительными последствиями
С 1965 по 1969 год компания Bell Labs
совместно с компанией General Electric и
группой исследователей из
Масачусетского технологического
института участвовала в проекте ОС
Multics. Целью проекта было создание
многопользовательской
интерактивной операционной
системы, обеспечивающей большое
число пользователей удобными и
мощными средствами доступа к
вычислительным ресурсам. В этом
курсе мы не ставим задачу
познакомить слушателей с ОС Multics.
Это могло бы быть темой отдельного
большого курса. Однако отметим хотя
бы некоторые идеи, которые
содержались в проекте MAC (так
назывался проект ОС Multics).
Во-первых, эта система
основывалась на принципах
многоуровневой защиты. Виртуальная
память имела сегментно-страничную
организацию, разделялись сегменты
данных и сегменты программного
кода, и с каждым сегментом
связывался уровень доступа (по
выполнению для сегментов команд и
уровень чтения и записи для
сегментов данных). Для того, чтобы
какая-либо программа могла вызвать
программу или обратиться к данным,
располагающимся в некотором
сегменте, требовалось, чтобы
уровень выполнения этой программы
(точнее, сегмента, в котором эта
программа содержалась, был не ниже
уровня доступа соответствующего
сегмента). Такая организация
позволяла практически полностью и
с полной защитой содержать
операционную систему в системных
сегментах любого
пользовательского виртуального
адресного пространства.
Во-вторых, в ОС Multics была
спроектирована и реализована
полностью централизованная
файловая система. В
централизованной файловой системе
файлы, физически располагающиеся
на разных физических устройствах
внешней памяти, логически
объединяются в один
централизованный архив или
древовидную иерархическую
структуру, промежуточными узлами
которой являются именованные
каталоги, а в листьях содержатся
ссылки на файлы. В том случае, когда
при поиске файла в архиве по его
имени оказывалось, что
соответствующий накопитель
(магнитный диск или магнитная
лента) не был установлен на
устройство внешней памяти, ОС
обращалась к оператору с
требованием установить нужный том
внешней памяти. Естественно, такая
дисциплина существенно облегчала
операторскую работу и
администрирование файловой
системы, хотя и затрудняла
выполнение таких рутинных действий
как перенос части файловой системы
с одного компьютера на другой.
Позже мы увидим, какой изящный
компромисс был выбран при
реализации ОС UNIX.
Далее, наличие большой
сегментно-страничной виртуальной
памяти позволило использовать
отображение файлов в сегменты
виртуальной памяти. Другими
словами, при открытии файла в
виртуальной памяти
соответствующего процесса
образовывался сегмент, в который
полностью отображался файл,
располагающийся во внешней памяти.
(Следует отметить, что в файловой
системе ОС Multics на базовом уровне
поддерживались файлы со страничной
структурой. Более сложные
организации являлись надстройкой).
Дальнейшая работа с файлом
происходила на основе общего
механизма управления виртуальной
памятью.
Операционная система Multics, хотя и
не была полностью доведена до
стадии коммерческого продукта,
обогатила мировое сообщество
системных программистов массой
ценных идей, многие из которых
сохраняют свою актуальность по сей
день и используются применительно
не только к операционным системам.
Основным недостатком ОС Multics,
который, по всей видимости, и
помешал довести систему до уровня
программного продукта, была ее
чрезмерная сложность. Среди
участников проекта Multics находились
Кен Томпсон и Деннис Ритчи.
Решение о прекращении участия в
проекте Multics было принято на самом
верхнем уровне руководства Bell Labs, и
сотрудники, по существу, были
поставлены перед свершившимся
фактом. Более того, руководство
компании, разочарованное
результатами весьма
дорогостоящего проекта, вообще не
желало больше вести какие-либо
работы, связанные с операционными
системами.
Предыдущая
глава | Оглавление
| Следующая глава
|