stringtranslate.com

Мультикс

MulticsМультиплексная информационная и вычислительная служба ») — влиятельная ранняя операционная система с разделением времени, основанная на концепции одноуровневой памяти . [4] [5] Натан Грегори пишет, что Multics «с тех пор оказала влияние на все современные операционные системы, от микрокомпьютеров до мэйнфреймов». [6]

Первоначальное планирование и разработка Multics начались в 1964 году в Кембридже, штат Массачусетс . Первоначально это был совместный проект, возглавляемый MIT ( Проект MAC с Фернандо Корбато ) вместе с General Electric и Bell Labs . Он был разработан на специально разработанном для него компьютере GE 645 ; первый из них был доставлен в Массачусетский технологический институт в январе 1967 года. GE предлагала свои более ранние системы 635 с ранней системой разделения времени, известной как «Mark I», и намеревалась предложить 645 с Multics в качестве более крупного преемника. Bell вышла из проекта в 1969 году, поскольку стало ясно, что в краткосрочной перспективе она не сможет создать работающую систему. Вскоре после этого GE решила полностью выйти из компьютерной индустрии и в 1970 году продала это подразделение компании Honeywell. Honeywell предлагала Multics на коммерческой основе, но с ограниченным успехом.

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

Благодаря множеству новых и ценных идей Multics оказал значительное влияние на информатику , несмотря на свои недостатки. [7] Его наиболее продолжительное влияние на компьютерную индустрию было вдохновением на создание Unix, который сохранил многие функции Multics, но мог работать на менее дорогом оборудовании. Unix была разработана в Bell, чтобы позволить команде Multics продолжить исследования, используя машины меньшего размера, сначала PDP-7 , а затем PDP-11 .

Новые идеи

Справочное руководство по командам Multics

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

Сегменты ограничены 256 килословами , что чуть больше 1  МБ , поскольку аппаратное обеспечение Multics имело 18-битные адреса слов для содержимого сегмента. Файлы большего размера являются «многосегментными файлами» и обрабатываются по-другому. Ограничение в 256 кВт на практике встречалось редко, поскольку в то время один мегабайт памяти был непомерно дорогим.

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

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

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

Multics — первая крупная операционная система, изначально спроектированная как безопасная . [8] Несмотря на это, ранние версии Multics неоднократно подвергались риску. [9] Это привело к дальнейшей работе, которая сделала систему более безопасной и послужила прообразом современных методов обеспечения безопасности . После внедрения аппаратной базы второго поколения взломы стали очень редкими; имеет аппаратную поддержку кольцевой безопасности , многоуровневую доработку концепции ведущего режима . [ нужна цитата ] Проект группы тигров ВВС США проверял безопасность Multics в 1973 году под кодовым словом ZARF. 28 мая 1997 года американское агентство национальной безопасности рассекретило использование кодового слова ZARF.

Multics — первая операционная система, предоставляющая иерархическую файловую систему [10] [11] , а имена файлов могут иметь практически произвольную длину и синтаксис. Данный файл или каталог может иметь несколько имен (обычно длинную и короткую форму), также поддерживаются символические ссылки между каталогами. Multics — первая компания, которая использует в ядре ставшую стандартной концепцию стеков для каждого процесса [ оспаривается ] с отдельным стеком для каждого кольца безопасности. Это также первый процессор команд , реализованный в виде обычного пользовательского кода — идея, позже использованная в оболочке Unix . Это также один из первых языков высокого уровня (Multics PL/I ), [1] [12] после системы Burroughs MCP , написанной на ESPOL , расширенной версии ALGOL .

Внедрение Multics в защищенные вычислительные среды также стимулировало разработку инновационных вспомогательных приложений. В 1975 году Морри Гассер из корпорации MITRE разработал генератор произносимых случайных слов для удовлетворения требований к паролю на таких объектах, как Центр служб данных ВВС (AFDSC), обрабатывающий секретную информацию. Чтобы избежать угадывания паролей, AFDSC решил назначать пароли, но пришел к выводу, что назначение вручную требует слишком больших административных затрат. Таким образом, генератор случайных слов был исследован и затем разработан в PL/I. Вместо того, чтобы основываться на фонемах , система использовала фонематические сегменты (аппроксимации второго порядка английского языка) и другие правила для улучшения произношения и случайности, что статистически моделировалось на основе других подходов. [13] Потомок этого генератора был добавлен в Multics во время Project Guardian. [14]

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

В 1964 году Multics был первоначально разработан для мэйнфрейма GE-645 , 36-битной системы. Компьютерный бизнес GE, включая Multics, был передан Honeywell в 1970 году; Примерно в 1973 году Multics стал поддерживаться на машинах Honeywell 6180 , что включало улучшения безопасности, включая аппаратную поддержку защитных колец .

Bell Labs вышла из проекта в 1969 году; некоторые из людей, которые там работали над этим, впоследствии создали систему Unix . Разработка Multics продолжалась в Массачусетском технологическом институте и General Electric. В Массачусетском технологическом институте в 1975 году использование Multics сокращалось и не вернулось к 1976 году до прежнего уровня. [15] [16] Наконец, снизив цены, MIT удалось переманить пользователей обратно в Multics в 1978 году. [17]

Компания Honeywell продолжала разработку системы до 1985 года. Было установлено около 80 объектов стоимостью в несколько миллионов долларов в университетах, на промышленных предприятиях и в государственных учреждениях. В начале 1980-х годов во французской университетской системе было несколько объектов. После того, как Honeywell прекратила поддержку Multics, пользователи перешли на другие системы, такие как Unix.

В 1985 году Multics получила сертификат безопасной операционной системы уровня B2 с использованием критериев оценки доверенной компьютерной системы Национального центра компьютерной безопасности (NCSC), подразделения АНБ , и стала первой операционной системой, оцененной до этого уровня.

Multics распространялся с 1975 по 2000 год компанией Groupe Bull в Европе и компанией Bull HN Information Systems Inc. в США. В 2006 году Bull SAS выпустила исходный код версий Multics MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 и MR12.5 под лицензией свободного программного обеспечения . [18]

Последняя известная установка Multics, изначально работавшая на оборудовании Honeywell, была остановлена ​​30 октября 2000 года в Министерстве национальной обороны Канады в Галифаксе, Новая Шотландия, Канада. [19]

Текущее состояние

В 2006 году Bull HN предоставил MIT исходный код MR12.5, последней версии Multics 1992 года. [20] Большая часть системы теперь доступна в виде бесплатного программного обеспечения , за исключением некоторых дополнительных компонентов, таких как TCP/IP . [21]

В 2014 году Multics был успешно запущен на современном оборудовании с использованием эмулятора, созданного мультицианцами Гарри Ридом и Чарльзом Энтони. [22] Версия эмулятора 1.0 доступна с 2017 года . [23] Версия 12.6f Multics сопровождает версию 1.0 эмулятора и добавляет несколько новых функций, включая вызов командной строки и редактирование с использованием видеосистемы. [24]

Команды

Ниже приведен список программ и команд [25] для распространенных вычислительных задач, которые поддерживаются интерфейсом командной строки Multics . [26] [27]

Команды доступа к файлам и каталогам

Текстовые редакторы

Форматеры документов

Компиляторы и интерпретаторы

Электронная почта

Он-лайн документация

Сценарии

Обработка данных

Сеансы входа в систему

Активные функции

Язык оболочки Multics поддерживает «активные функции», которые похожи на команды, но возвращают строковое значение. Активная функция вызывается путем помещения имени активной функции и аргументов активной функции в квадратные скобки [ и ] . Строка, возвращаемая активной функцией, подставляется в команду вместо вызова активной функции. Например, при обработке команды echo [рабочий_каталог] запускается активная функция рабочий_каталог ; он возвращает полный путь к рабочему каталогу , который подставляется в команду, так что команда echo печатает рабочий каталог.

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

Некоторые общие активные функции:

Ретроспективные наблюдения

Питер Х. Салус , автор книги, посвященной ранним годам Unix, [28] высказал одну позицию: «С помощью Multics они пытались создать гораздо более универсальную и гибкую операционную систему, но это с треском провалилось». [29] Однако эта позиция, как говорят, была дискредитирована в компьютерном сообществе, поскольку многие технические инновации Multics используются в современных коммерческих вычислительных системах. [7] [ нужен лучший источник ]

Постоянно резидентное ядро ​​Multics, системы, которую в свое время высмеивали как слишком большую и сложную, содержало 135 КБ кода. [ нужна цитата ] Первый MIT GE-645 имел 512 килослов памяти (2 МБ), поистине огромный объем в то время, и ядро ​​использовало умеренную часть основной памяти Multics.

Вся система, включая операционную систему и сложный PL/I- компилятор , пользовательские команды и библиотеки подпрограмм, состоит примерно из 1500 исходных модулей. В среднем они содержат около 200 строк исходного кода каждый, а общий объем кода процедур составляет примерно 4,5 МБ, что было довольно большим по стандартам того времени.

Компиляторы Multics обычно оптимизируют больше для плотности кода , чем для производительности ЦП, например, используя небольшие подпрограммы, называемые операторами , для коротких стандартных последовательностей кода, что делает сравнение размера объектного кода с современными системами менее полезным. Высокая плотность кода — хороший выбор для оптимизации Multics как многопользовательской системы с дорогой основной памятью.

В ходе истории коммерческого продукта внутри компании часто отмечалось, что сотрудники отдела продаж и маркетинга Honeywell Information Systems (HIS) (позже Honeywell-Bull) были более знакомы и комфортно обосновывали экономическое обоснование другой линейки компьютеров Honeywell - DPS 6 под управлением GCOS. . DPS-6 и GCOS были уважаемой и надежной платформой для инвентаризации, бухгалтерского учета, обработки текстов и приложений вертикального рынка, таких как банковское дело, где у нее была значительная клиентская база. Напротив, в ту эпоху было нелегко осознать весь потенциал гибкости Multics даже для повседневных задач, и его возможности обычно находились за пределами навыков современных бизнес-аналитиков. [ нужна цитация ] Масштабы этого разногласия были конкретизированы анекдотом, рассказанным Полом Стахуром, CNO/CSC:

Когда в 1983 году компания American Telephone and Telegraph меняла свое название на AT&T, появился сотрудник юридического отдела Honeywell и спросил у Multician, может ли он организовать изменение имени во всех их компьютеризированных документах. Когда его спросили, когда процесс может быть завершен, Мультициан ответил: «Все готово». Сотрудник повторил, что ему необходимо обновить сотни, возможно, тысячи документов. Мультицианец объяснил, что он выполнил глобальный поиск и замену, пока говорил сотрудник, и задача фактически была выполнена. [ нужна цитата ]

Влияние на другие проекты

Юникс

Дизайн и особенности Multics повлияли на операционную систему Unix , которая изначально была написана двумя программистами Multics, Кеном Томпсоном и Деннисом Ритчи . [30] Влияние Multics на Unix очевидно во многих областях, включая иерархическую файловую систему , перенаправление , оболочку и именование некоторых команд. Но философия внутреннего дизайна совершенно иная: она сосредоточена на том, чтобы система оставалась маленькой и простой, и таким образом исправляла некоторые очевидные недостатки Multics из-за ее высоких требований к ресурсам на ограниченном компьютерном оборудовании того времени.

Название Unix (первоначально Unics ) само по себе является каламбуром от Multics . Ходят слухи, что буква U в Unix означает « униплексный» , а не « мультиплексный » Multics, что еще раз подчеркивает отказ дизайнеров от сложности Multics в пользу более простого и работоспособного подхода для небольших компьютеров. (Гарфинкель и Абельсон [31] указывают на альтернативное происхождение: Питер Нейман из Bell Labs, наблюдая за демонстрацией прототипа, предложил каламбур UNICS – произносится как « евнухи » – как «кастрированный Multics», хотя говорят, что Деннис Ритчи отрицал это. [32] )

Кен Томпсон в расшифрованном интервью Питеру Сейбелю в 2007 году [30] называет Multics «перепроектированным, перестроенным и поверх всего. Он был почти непригоден для использования. Они [Массачусетский технологический институт] до сих пор утверждают, что это чудовищный успех, но это совершенно очевидно. не было». Что касается влияния Multics на Unix, Томпсон заявил, что «что мне понравилось (в Multics), так это иерархическая файловая система и оболочка — отдельный процесс, который можно заменить каким-либо другим процессом».

Деннис Ритчи писал, что на дизайн UNIX повлиял CTSS . [33]

Другие операционные системы

Операционную систему Prime Computer , PRIMOS , Уильям Подуска , основатель компании, назвал «Multics в обувной коробке» . Позже Подуска основал компанию Apollo Computer , чьи операционные системы AEGIS и более поздние версии Domain/OS , иногда называемые «Multics в спичечном коробке», расширяют дизайн Multics до среды сетевых графических рабочих станций.

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

Многоконсольная система разделения времени (MCTS) компании General Motors для компьютера STAR-100 Control Data Corporation была основана на Multics.

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

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

Смотрите также

Рекомендации

  1. ^ ab RA Freiburghouse, «Компилятор Multics PL/1», General Electric Company, Кембридж, Массачусетс, 1969.
  2. ^ «Лицензия Multis (Multics) - инициатива с открытым исходным кодом» . сайт opensource.org . 5 февраля 2008 года . Проверено 11 апреля 2018 г.
  3. ^ «Мифы о мультиках». www.multicians.org . Проверено 11 апреля 2018 г.
  4. ^ Деннис М. Ричи, «Эволюция системы разделения времени Unix», Communications of ACM, Vol. 17, 1984, стр. 365–375.
  5. ^ Дэн Мерфи (1996) [1989]. «Истоки и развитие ТОПС-20».
  6. ^ Грегори, Натан (май 2018 г.). Тим раньше. Лулу.com. п. 66. ИСБН 9781387824755. Проверено 29 марта 2020 г.
  7. ^ ab «Мифы о мультиках». www.multicians.org . Проверено 11 апреля 2018 г.
  8. ^ Зальцер, Джером Х. (февраль 1974 г.). «Защита и контроль обмена информацией в Multics» (PDF) . Введение в Multics», MAC TR-123 (Отчет). Кембридж, Массачусетс: Массачусетский технологический институт и Honeywell Information Systems Inc., стр. 2–41 . Проверено 16 марта 2022 г ..
  9. ^ Том Ван Флек (2002). «Как ВВС взломали Multics Security».
  10. ^ "Глоссарий Multics -F-" . www.multicians.org . Проверено 11 апреля 2018 г.
  11. ^ RC Daley и PG Neumann, «Файловая система общего назначения для вторичного хранилища», AFIPS '65 (осень, часть I), Материалы 30 ноября - 1 декабря 1965 г.
  12. ^ Брайан Керниган о происхождении Unix LWN.net. 2022.
  13. ^ «Генератор случайных слов для произносимых паролей» (PDF) . Бедфорд, Массачусетс: Отдел электронных систем, Командование систем ВВС, ВВС США. Ноябрь 1975 г. ОУР-ТР-75-97. Архивировано (PDF) из оригинала 8 апреля 2022 г. Проверено 8 марта 2021 г.
  14. ^ Ван Флек, Том. "Генератор паролей" . Проверено 8 марта 2021 г.
  15. ^ «Доклад президента» (PDF) . Бюллетень Массачусетского технологического института . 111 (4): 355. Декабрь 1975 г. Проверено 12 апреля 2022 г. Использование сервиса Multics, работающего в системе Honeywell 6180, сократилось... на 15 процентов.
  16. ^ «Доклад президента» (PDF) . Бюллетень Массачусетского технологического института . 112 (4): 392. Ноябрь 1976 г. Проверено 12 апреля 2022 г. ... закрытие нескольких проектов Multics, которым не удалось получить финансирование.
  17. ^ «Отчет президента и канцлера» (PDF) . Массачусетский Институт Технологий. 1978. с. 450 . Проверено 12 апреля 2022 г. Однако эта новая цена оказалась настолько привлекательной для многих людей, что количество пользователей и объем использования Multics значительно возросли.
  18. ^ "Мультикс". материал.mit.edu . Проверено 25 июля 2022 г.
  19. ^ «Даты истории мультиков» . Проверено 13 сентября 2015 г. Отключение ДНД-Х (17:08З 30.10.00)
  20. ^ Ван Флек, Том. «Открытый исходный код для Multics». Multicians.org . Проверено 11 апреля 2016 г.
  21. ^ Энтони, Чарльз. «(электронная почта) Re: [dps8m-developers] Мультипроцессоры и/или сетевые мультипроцессоры». Sourceforge.net . Проверено 11 апреля 2016 г.
  22. ^ "RingZero - возрождение Multics" . ВикидотКом . Проверено 11 апреля 2015 г.
  23. ^ «Мультисимулятор» . Проверено 9 июля 2017 г.
  24. ^ «Установка мультиков» . Проверено 19 мая 2020 г.
  25. ^ Honeywell Bull, Inc. (февраль 1985 г.). Команды Multics и активные функции (AG92-06) (PDF) . Проверено 30 марта 2023 г.
  26. ^ «Unix и Multics».
  27. ^ ab «Мульти-команды».
  28. ^ Салус, Питер Х. (1994). Четверть века UNIX (перепечатано с исправлениями, январь 1995 г., ред.). Ридинг, Массачусетс: Паб Addison-Wesley. ISBN компании 978-0-201-54777-1.
  29. Уорд, Марк (20 августа 2009 г.). «40 лет Unix». Новости BBC . Проверено 27 апреля 2010 г.Цитирую Питера Салуса.
  30. ^ аб Питер Зейбель. Программисты за работой : размышления о ремесле программирования. Публикации Apress, 2007. ISBN 978-1-4302-1948-4. 
  31. ^ Гарфинкель, Симсон и Абельсон, Гарольд. Архитекторы информационного общества: тридцать пять лет Лаборатории компьютерных наук Массачусетского технологического института. MIT Press, 1999. ISBN 978-0262071963. 
  32. Карн, Фил (28 октября 1981 г.). «Происхождение Unix». Группа новостей : fa.unix-wizards. Usenet:  [email protected] . Проверено 11 апреля 2014 г.
  33. ^ Ричи, Деннис М. (1977). Система разделения времени Unix: ретроспектива (PDF) . Десятая Гавайская международная конференция по системным наукам. можно привести хороший пример того, что UNIX, по сути, является современной реализацией системы CTSS MIT.

дальнейшее чтение

В литературе содержится большое количество статей о Multics и различных его компонентах; довольно полный список доступен на странице библиографии Multics, а также во второй, более краткой библиографии Multics 1994 года (текстовый формат). Наиболее важные и/или информативные из них перечислены ниже.

Технические детали

Безопасность

Внешние ссылки