COCS22 Multics
Меню сайта

Реклама
:)

Мини-чат

Друзья сайта
  • Все для мобільного
  • Антибукмекерский фронт
  • Зароботок в інтернеті

  • Статистика
    Rambler's Top100 :)

    Реклама

    Multics
    Multics (Multiplexed Information and Computing Service) была одной из первых операционных систем с разделением времени исполнения программ (time-sharing operating system).

    Содержание
    1 Описание
    2 Инновационные идеи
    3 История проекта
    4 Дополнительные замечания
    5 Смотри также
    6 Дополнительный материал
    7 Ссылки




    Описание

    Разработка операционной системы Multics была начата в 1964 году. Изначально в этом проекте были заняты Массачусетский Технологический Институт (MIT), а также компании General Electric (GE) и Bell Labs. Компания Bell Labs вышла из проекта в 1969 году, а в 1970 году компьютерный бизнес компании General Electric (вместе с Multics), отошел к компании Honeywell, которая продала его BULL (en:Groupe Bull). Multics был задуман компанией General Electric как коммерческий продукт, и стал таковым уже под руководством компании Honeywell, хотя так никогда и не нашел успеха на компьютерном рынке.

    Как бы там ни было, система Multics оказала очень большое влияние на компьютерную индустрию, благодаря многим новаторским и ценным идеям, заложенным в нее. Хотя система и подвергалась многочисленным насмешкам со стороны критиков , она все же показала что заложенные в нее концепции имеют право на долгосрочную жизнь в мире операционных систем.

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


    Инновационные идеи

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

    Таким образом в Multics была спроектирована и реализована полностью централизованная файловая система, в которой файлы, физически располагающиеся на разных физических устройствах внешней памяти, логически объединяются в один централизованный архив или древовидную иерархическую структуру, промежуточными узлами которой являются именованные директории (или каталоги), а в листьях содержатся файлы.

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

    Одним из главных неудобств такого подхода (появившемся в основном из-за различий электронных архитектур вычислительных машин, на которой система работала), было ограничение размера сегмента до 256 * 1024 32-битных слов, что приблизительно равно 1 Мегабайту по сегодняшним стандартам. Поэтому для работы с файлами, большими по размеру чем установленный лимит, должен был использоваться дополнительный код в исполняемых программах. Сами файлы, по размеру большие чем 256 * 1024 32-битных слов, представлялись системой в виде ряда соединенных воедино сегментов.

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

    В системе Multics была впервые реализована и следующая инновационная идея, а именно — динамическое связывание (dynamic linking) исполняемой программы с библиотеками кода. Благодаря динамическому связыванию, исполняемый процесс мог запрашивать у системы о подключении дополнительных сегментов к собственному адресному пространству, а именно сегментов, содержащих полезный код для исполняемой программы.

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

    В равной степени важным являлось и то, что с правильной настройкой системы безопасности в Multics, код из одного сегмента мог получать доступ к структурам данных, инициализированными в совершенно другом процессе. Для такого взаимодействия между пользовательскими и отдельными daemon-процессами(или просто демонами), процесс пользователя должен был динамически подключить сегмент кода, ассоциированный с этим процессом, и вызывать находящиеся там методы. Код, находящийся в подключенном сегменте мог напрямую работать с используемыми в демоне структурами данных. Когда вызванный код из подключенного сегмента заканчивал работу, выполнение возвращалось в пользовательский процесс через обычную процедуру возвращения из вызываемого метода.

    Стоит заметить, что две приведенные выше идеи так до сих пор и не были реализованы в полной мере на сегодняшних самых распространенных операционных системах, несмотря на большое развитие компьютерной техники, начавшееся в 60-х годах; хотя в своей нынешней реализации эти идеи формируют то что мы называем динамическими связями (dynamic linking) в компьютерных системах.

    Отдельно стоит упомянуть о том, что система Multics поддерживала весьма агрессивную переконфигурацию всей системы «на ходу», позволяя подключать, отключать и настраивать центральные процессоры, блоки памяти, жесткие диски, и другие устройства, не останавливая при этом всю систему. Например в MIT во время профилактики системы Multics было обычной практикой разделять систему — которая была мультипроцессорной — на две, постепенно конфигурируя компьютерные устройства для создания двух независимых друг от друга систем. Одна из получившихся систем продолжала обслуживать всех подключенных пользователей, а другая позволяла проводить профилактику, установку новых устройств или обновление программного обеспечения. Когда все необходимые мероприятия завершались, систему вновь собирали в единое целое без всяких перезагрузок.

    Как было уже упомянуто, система Multics могла работать на многопроцессорных компьютерах, по существу явившись одной из самых первых мульти-процессорных операционных систем.

    Multics была также одной из первой систем, в которой большое внимание уделялось безопасности взаимодействия между программами и пользователями. Более того, Multics возможно была самой первой операционной системой, задуманной изначально и реализованной как безопасная, не смотря на то что ранние версии системы Multics все-таки неоднократно взламывались хакерами. Взломы системы приводили к доработкам системы безопасности, которые в конечном счете определили широко распространенные подходы к архитектуре безопасности в операционных системах, и сделали саму систему Multics более безопасной. Как только в систему было установлено электронное оборудование второго поколения со встроенной поддержкой привилегий пользователей (определяющих права пользователя на доступ к данным и программам), взломы системы Multics стали очень редким явлением.

    Дополнительно к тому, что в Multics одной из первых была реализована иерархическая файловая система, имена файлов могли быть практически произвольной длины и содержать любые символы. Файл или директория могли иметь несколько имен (короткое и длинное); также были доступны для использования символьные ссылки (symlink) между директориями.

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

    Multics также явилась одной из самых первых операционных систем, написанных на языке высокого уровня. Изначально был использован PL/I, а для компьютеров Burroughs B5000 Multics была переписана на Алголе.


    История проекта

    Изначально Multics была разработана для 36-битных мэйнфреймов GE-645, а позднее — и для машин серии Honeywell 6180.

    Компания Bell Labs вышла из проекта в 1969-м году. Несколько человек, разрабатывающих систему Multics в этой компании перешли к созданию системы UNIX. Позднее созданная система UNIX показала внешнее сходство с системой Multics, в том числе, названия используемых команд. Однако, философия дизайна UNIX была совершенно другой, ориентированной на создание системы как можно меньших размеров, и настолько простой, насколько это будет возможно, в чем и было ее основное отличие от системы Multics.

    Название «UNIX» (изначально «Unics») было образовано от «Multics». Буква U в названии UNIX означала «Uniplexed» («односложная») в противоположность слову «Multiplexed» («комплексная»), лежащему в основе названия системы Multics, для того чтобы подчеркнуть попытку создателей UNIX-а отойти от сложностей системы Multics для выработки более простого и работоспособного подхода.

    Компания Honeywell выкупила компьютерное подразделение компании GE, и продолжила разработку системы Multics до 1985 года. Около 80 многомиллионных установок было поставлено в университетские, индустриальные и государственные вычислительные центры.

    Также в начале 80-х во Франции в нескольких университетах были установлены компьютеры с системой Multics.

    После того как компания Honeywell прекратила поддержку системы Multics, пользователи мигрировали на другие системы, в том числе и системы UNIX.

    Последняя машина с Multics была остановлена 31 октября 2000-го года в канадском Министерстве Обороны.

    В 2007 году исходный код и документация Multics были переданы компанией BULL Массачусетскому Технологическому Институту и опубликованы на сайте MIT.


    Дополнительные замечания

    Удивительно что ядро системы Multics, находящееся постоянно в памяти компьютера, и в те далекие дни часто высмеиваемое за свой размер и сложность, занимало всего 135 Килобайт кода.

    Первые компьютеры GE-645 имели память размером 512 * 1024 32-х битных слов (или 2 Мегабайта по сегодняшним меркам), поэтому ядро системы занимало не так уж и много места.

    Стоит так же заметить, что вся операционная система, включая сложный компилятор языка PL/I, пользовательские команды и дополнительные библиотеки, состояла из примерно полутора тысяч исходных файлов, каждый из которых содержал примерно по 200 строк кода. В скомпилированном виде весь этот код занимал около 4.5 Мегабайт, что было огромным размером по тем временам.

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

    Multics
    Разработчик MIT, GE, Bull
    Исходный код Semi-free; Free и open source ПО с 2007
    Последняя версия MR 12.5 — 1992
    Тип ядра монолитное
    Лицензия MIT License
    Состояние историческое
    Веб-сайт
    "Multics Internet Server"



    Google
     



    Hosted by uCoz

    ROVO © COCS22®