Multics

Multics
Розробник MIT, GE, Bell Labs
Написано на PL/1, мова асемблера
Робочий стан історична
Початковий випуск 1969
Репозиторій
  • p1324 Редагувати інформацію у Вікіданих
Мови англійська
Платформи GE-645, Honeywell 6180
Тип ядра монолітне
Інтерфейс
користувача
інтерфейс командного рядка
Ліцензія спочатку власницька, з 2007 - ліцензія MIT
Multicians,
Multics Internet Server

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

Опис

Розробка операційної системи Multics була розпочата в 1964 році. Спочатку в цьому проекті були зайняті Массачусетський технологічний інститут (MIT), а також компанії General Electric (GE) і Bell Labs. Компанія Bell Labs вийшла з проекту в 1969 році, а в 1970 році комп'ютерний бізнес компанії General Electric (разом з Multics) відійшов до компанії Honeywell, яка продала його 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 MCP для комп'ютерів серії B5000, що використовувала діалект АЛГОЛу).

Історія проекту

Спочатку 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 [Архівовано 30 жовтня 2019 у Wayback Machine.]
  • Код системи Multics [Архівовано 10 лютого 2014 у Wayback Machine.]


Операційні системи Це незавершена стаття про операційні системи.
Ви можете допомогти проєкту, виправивши або дописавши її.
Цю статтю треба вікіфікувати для відповідності стандартам якості Вікіпедії. Будь ласка, допоможіть додаванням доречних внутрішніх посилань або вдосконаленням розмітки статті. (жовтень 2011)
Перегляд цього шаблону
  Тематичні сайти
Quora
Словники та енциклопедії
Encyclopædia Britannica
Нормативний контроль
BNF: 119348359 · Freebase: /m/04rnb
  • п
  • о
  • р

Honeywell Aerospace[en]  • Honeywell Performance Materials and Technologies  • Honeywell Building Technologies  • Honeywell Safety and Productivity Solutions
Пов'язані
особи
  • Дарій Адамчик[en]
  • Альберт Бутц[en]
  • Марк Ганівелл[en]
  • Девід Кот[en]
  • Вільям Світт[en]
Рада директорів
  • Дарій Адамчик[en]
  • Кевін Берк[en]
  • Джадд Грегг
  • Скотт Девіс[en]
  • Джордж Пац[en]
Придбання
та злиття
  • AdvanSix[en]
  • AlliedSignal[en]
  • Bendix Corporation
  • Bunker Ramo[en]
  • EMS Technologies[en]
  • Fire-Lite Alarms[en]
  • First Alert[en]
  • Garrett AiResearch
  • Gents' of Leicester[en]
  • Hand Held Products[en]
  • Honeywell Turbo Technologies[en]
  • Hymatic[en]
  • Intelligrated[en]
  • Intermec[en]
  • King Radio[en]
  • Leeds & Northrup[en]
  • MK Electric[en]
  • Normalair[en]
  • Notifier[en]
  • Novar Controls[en]
  • Novar plc[en]
  • Pittway[en]
  • Sperry[en]
  • System Sensor[en]
  • UOP[en]
  • Xtralis[en]
  • Zellweger Analytics[en]
Спільні підприємства
  • Advanced Turbine Engine Company[en]
  • ConverDyn[en]
  • International Turbine Engine Company[en]
Продукти
(список[en])
Авіабудівництво
Авіоніка
  • Airplane Information Management System (AIMS)[en]
  • Honeywell Primus[en]
Двигуни
  • Garrett ATF3[en]
  • Garrett F109[en]
  • Garrett TFE731[en]
  • Honeywell FX5[en]
  • Honeywell TPE331
  • Honeywell HTF7000[en]
  • Honeywell HTS900[en]
  • Honeywell/ITEC F124[en]
  • Lycoming ALF 502[en]
  • Lycoming LTS101[en]
Інше
  • Auxiliary power unit (APU)[en]
  • Honeywell RQ-16 T-Hawk[en]
Автомобільні комплектуючі
  • Solstice YF[en]
Військові товари
Комп'ютерні системи
Комп'ютери
  • DATAmatic 1000[en]
  • Honeywell 200[en]
  • Honeywell 316[en]
  • Honeywell 6000[en]
  • Honeywell 800[en]
  • Honeywell Level 6[en]
Мікроелектроніка
  • General Instrument CP1600[en]
  • RH-32[en]
  • RHPPC[en]
Програмне забезпечення
  • ARGUS[en]
  • CP-6[en]
  • Multics
Інше
  • Fenzy[en]
  • HORTA[en]
  • Ізолювальний костюм з надлишковим тиском[en]
Виробничі об'єкти
Пов'язані теми
  • Категорія
  •  Військова техніка
  •  Авіація
  •  Інформаційні технології
  •  США
  • П:  Інформаційні технології П:  Вільне програмне забезпечення П:  США