Відмінності між версіями «MULTICS»
(не показані 3 проміжні версії цього учасника) | |||
Рядок 1: | Рядок 1: | ||
− | ''' | + | '''Розробник''' - MIT, GE, Bell |
+ | |||
+ | '''Остання версія''' - MR 12.5 - 1992 | ||
+ | |||
+ | '''Тип ядра''' - багаторівневе | ||
+ | |||
+ | '''Ліцензія''' - MIT License | ||
''' Multics ''' (англ. Multiplexed Information and Computing Service ) - одна з перших операційних систем з поділом часу виконання програм (англ. time - sharing operating system ) . | ''' Multics ''' (англ. Multiplexed Information and Computing Service ) - одна з перших операційних систем з поділом часу виконання програм (англ. time - sharing operating system ) . | ||
Рядок 11: | Рядок 17: | ||
Як би там не було , система Multics зробила дуже великий вплив на комп'ютерну індустрію завдяки багатьом новаторським і цінним ідеям , закладеним в неї. Хоча система і піддавалася численним глузуванням з боку критиків , вона все ж показала , що закладені в неї концепції мають право на довгострокову життя в світі операційних систем . | Як би там не було , система Multics зробила дуже великий вплив на комп'ютерну індустрію завдяки багатьом новаторським і цінним ідеям , закладеним в неї. Хоча система і піддавалася численним глузуванням з боку критиків , вона все ж показала , що закладені в неї концепції мають право на довгострокову життя в світі операційних систем . | ||
− | Система Multics мала безліч характерних особливостей , що забезпечували її безвідмовність і високу продуктивність. Наприклад , додатково до підтримки модульності програмного забезпечення , система також була орієнтована на модульну підтримку | + | Система Multics мала безліч характерних особливостей , що забезпечували її безвідмовність і високу продуктивність. Наприклад , додатково до підтримки модульності програмного забезпечення , система також була орієнтована на модульну підтримку в її роботі електронних пристроїв , що дозволило нарощувати обчислювальні можливості системи простою заміною її модулів: центрального процесора , пам'яті , дискового простору , і т. д. Окремі для кожного користувача списки доступу до файлів забезпечили дуже гнучкий механізм колективного використання інформації в системі , яка гарантує також забезпечення повної конфіденційності інформації. Також система Multics мала поруч стандартних механізмів , що дозволяли інженерам аналізувати обчислювальні потужності системи , а також набором механізмів , що забезпечували оптимізацію роботи самої операційної системи. |
= Інноваційні ідеї = | = Інноваційні ідеї = | ||
− | Multics була однією з перших операційних систем , що реалізувала плоску модель зберігання даних , чітко розділяла концепції файлів ( званих в системі Multics сегментами ) і пам'яті обчислювальних процесів . Пам'ять обчислювальних процесів складалася з сегментів , кожен з яких мав свій | + | Multics була однією з перших операційних систем , що реалізувала плоску модель зберігання даних , чітко розділяла концепції файлів ( званих в системі Multics сегментами ) і пам'яті обчислювальних процесів . Пам'ять обчислювальних процесів складалася з сегментів , кожен з яких мав свій адресний простір. Для читання чи запису в сегменти обчислювальний процес використовував інструкції центрального процесора системи , а операційна система брала на себе всю турботу щодо збереження змінених даних на пристрої зовнішньої пам'яті комп'ютера. |
Таким чином , в Multics була спроектована і реалізована повністю централізована файлова система , в якій файли , фізично розташовані на різних фізичних пристроях зовнішньої пам'яті , логічно об'єднуються в один централізований архів або деревоподібну ієрархічну структуру , проміжними вузлами якої є іменовані директорії ( або каталоги) , а в листі містяться файли. | Таким чином , в Multics була спроектована і реалізована повністю централізована файлова система , в якій файли , фізично розташовані на різних фізичних пристроях зовнішньої пам'яті , логічно об'єднуються в один централізований архів або деревоподібну ієрархічну структуру , проміжними вузлами якої є іменовані директорії ( або каталоги) , а в листі містяться файли. | ||
Рядок 26: | Рядок 32: | ||
В системі Multics була вперше реалізована і наступна інноваційна ідея - динамічне зв'язування ( dynamic linking ) виконуваної програми з бібліотеками коду. Завдяки динамічному зв'язуванню виконуваний процес міг запитувати у системи про підключення додаткових сегментів до власного адресного простору , а саме сегментів , що містять корисний код для виконуваної програми . | В системі Multics була вперше реалізована і наступна інноваційна ідея - динамічне зв'язування ( dynamic linking ) виконуваної програми з бібліотеками коду. Завдяки динамічному зв'язуванню виконуваний процес міг запитувати у системи про підключення додаткових сегментів до власного адресного простору , а саме сегментів , що містять корисний код для виконуваної програми . | ||
− | Таким чином програми змогли автоматично використовувати зовнішні бібліотеки коду , збережені в окремих сегментах , створюючи при цьому динамічні зв'язки з функціями , збереженими в цих бібліотеках. | + | Таким чином програми змогли автоматично використовувати зовнішні бібліотеки коду , збережені в окремих сегментах , створюючи при цьому динамічні зв'язки з функціями , збереженими в цих бібліотеках. Динамічний зв'язок із зовнішнім виконуваним кодом створювався всього один раз , під час першого виклику функції з бібліотеки , і надалі вона могла бути використана повторно . Оскільки кожному користувачеві в системі відповідали окремі процеси , то різні зовнішні бібліотеки могли бути підключені до однієї програми , в залежності від потреб користувача. |
− | В рівній мірі важливим було і те , що з | + | В рівній мірі важливим було і те , що з правильним налаштуванням системи безпеки в Multics код з одного сегмента міг отримувати доступ до структур даних , ініціалізованих в абсолютно іншому процесі . Для такої взаємодії між призначеними для користувача і окремими daemon -процесами ( або просто демонами ) процес користувача повинен був динамічно підключити сегмент коду , асоційований з цим процесом і викликати методи . Код , що знаходиться в підключеному сегменті , міг напряму працювати з використовуваними в демоні структурами даних. Коли викликаний код з підключеного сегмента закінчував роботу, виконання поверталося в користувальницький процес через звичайну процедуру повернення з методу . |
Варто зауважити , що дві наведені вище ідеї так до цих пір і не були реалізовані повною мірою на сьогоднішніх найпоширеніших операційних системах , незважаючи на великий розвиток комп'ютерної техніки , що почалося в 60 -х роках ; хоча в своїй нинішній реалізації ці ідеї формують те , що ми називаємо динамічними зв'язками ( dynamic linking ) в комп'ютерних системах . | Варто зауважити , що дві наведені вище ідеї так до цих пір і не були реалізовані повною мірою на сьогоднішніх найпоширеніших операційних системах , незважаючи на великий розвиток комп'ютерної техніки , що почалося в 60 -х роках ; хоча в своїй нинішній реалізації ці ідеї формують те , що ми називаємо динамічними зв'язками ( dynamic linking ) в комп'ютерних системах . | ||
− | Окремо варто згадати про те , що система Multics підтримувала вельми агресивну переконфігурацію всієї системи «на ходу» , дозволяючи підключати , відключати і налаштовувати центральні процесори , блоки пам'яті , жорсткі диски та інші пристрої , не зупиняючи при цьому всю систему. Наприклад в MIT під час профілактики системи Multics було звичайною практикою розділяти систему - яка була | + | Окремо варто згадати про те , що система Multics підтримувала вельми агресивну переконфігурацію всієї системи «на ходу» , дозволяючи підключати , відключати і налаштовувати центральні процесори , блоки пам'яті , жорсткі диски та інші пристрої , не зупиняючи при цьому всю систему. Наприклад в MIT під час профілактики системи Multics було звичайною практикою розділяти систему - яка була мультипроцессорною - на дві , поступово конфігуровані комп'ютерні пристрої для створення двох незалежних одна від одної систем . Одна з систем продовжувала обслуговувати всіх підключених користувачів , а інша дозволяла проводити профілактику , установку нових пристроїв або оновлення програмного забезпечення. Коли всі необхідні заходи завершувалися , систему знову збирали в єдине ціле без всяких перезавантажень . |
Як вже було згадано , система Multics могла працювати на багатопроцесорних комп'ютерах , по суті з'явившись однією з найперших мультипроцесорних операційних систем . | Як вже було згадано , система Multics могла працювати на багатопроцесорних комп'ютерах , по суті з'явившись однією з найперших мультипроцесорних операційних систем . | ||
− | Multics була також однією з перших систем , в якій велика увага приділялася | + | Multics була також однією з перших систем , в якій велика увага приділялася безпеці взаємодії між програмами та користувачами . Більш того , Multics , можливо , була самою першою операційною системою , задуманою спочатку і реалізованою як безпечна , незважаючи на те , що ранні версії системи Multics таки неодноразово зламувалися хакерами. Зломи системи приводили до доробок системи безпеки , які в кінцевому рахунку визначили широко поширені підходи до архітектури безпеки в операційних системах , і зробили саму систему Multics більш безпечною. Як тільки в систему було встановлено електронне обладнання другого покоління з вбудованою підтримкою привілеїв користувачів ( що визначають права користувача на доступ до даних і програм ) , зломи системи Multics стали дуже рідкісним явищем. |
Додатково до того , що в Multics однією з перших була реалізована ієрархічна файлова система , імена файлів могли бути практично довільної довжини і містити будь-які символи . Файл або директорія могли мати кілька імен (коротке й довге) ; також були доступні для використання символьних посилання ( symlink ) між директоріями . | Додатково до того , що в Multics однією з перших була реалізована ієрархічна файлова система , імена файлів могли бути практично довільної довжини і містити будь-які символи . Файл або директорія могли мати кілька імен (коротке й довге) ; також були доступні для використання символьних посилання ( symlink ) між директоріями . | ||
Також в Multics був вперше реалізований (тепер уже стандартний ) підхід використання стеків для кожного обчислювального процесу в ядрі системи , з окремим стеком для кожного рівня безпеки навколо ядра. | Також в Multics був вперше реалізований (тепер уже стандартний ) підхід використання стеків для кожного обчислювального процесу в ядрі системи , з окремим стеком для кожного рівня безпеки навколо ядра. | ||
− | Multics також з'явилася однією з перших операційних систем , написаних мовою високого рівня PL / I ( | + | Multics також з'явилася однією з перших операційних систем , написаних мовою високого рівня PL / I ( найпершою такою системою була MCP для комп'ютерів Burroughs B5000 , яка використовувала діалект Алгола ) . |
= Історія проекту = | = Історія проекту = | ||
Рядок 46: | Рядок 52: | ||
Спочатку Multics була розроблена для 36 - бітних мейнфреймів GE- 645 , а пізніше - і для машин серії Honeywell 6180 . | Спочатку Multics була розроблена для 36 - бітних мейнфреймів GE- 645 , а пізніше - і для машин серії Honeywell 6180 . | ||
− | Компанія Bell Labs вийшла з проекту в 1969 -му році. Кілька людей , які розробляли систему Multics в цій компанії , перейшли до створення системи UNIX. Пізніше створена система UNIX показала зовнішню схожість з системою Multics , у тому числі в назвах використовуваних команд. Однак , філософія дизайну UNIX була зовсім іншою , | + | Компанія Bell Labs вийшла з проекту в 1969 -му році. Кілька людей , які розробляли систему Multics в цій компанії , перейшли до створення системи UNIX. Пізніше створена система UNIX показала зовнішню схожість з системою Multics , у тому числі в назвах використовуваних команд. Однак , філософія дизайну UNIX була зовсім іншою , орієнтованою на створення системи якомога менших розмірів, і настільки простої , наскільки це буде можливо , в чому і була її основна відмінність від системи Multics . |
Назва « UNIX » ( спочатку « Unics » ) було утворено від « Multics ». Буква U у назві UNIX означала « Uniplexed » (« односкладова » ) в протилежність слову « Multiplexed » (« комплексна » ) , що лежав в основі назви системи Multics , для того , щоб підкреслити спробу творців UNIX- а відійти від складнощів системи Multics для вироблення більш простого і працездатного підходу . | Назва « UNIX » ( спочатку « Unics » ) було утворено від « Multics ». Буква U у назві UNIX означала « Uniplexed » (« односкладова » ) в протилежність слову « Multiplexed » (« комплексна » ) , що лежав в основі назви системи Multics , для того , щоб підкреслити спробу творців UNIX- а відійти від складнощів системи Multics для вироблення більш простого і працездатного підходу . | ||
− | Компанія Honeywell викупила комп' | + | Компанія Honeywell викупила комп'ютерний підрозділ компанії GE і продовжувала розробку системи Multics до 1985 року. Близько 80 багатомільйонних установок було поставлено в університетські , індустріальні та державні обчислювальні центри. |
Також на початку 80 -х у Франції в декількох університетах були встановлені комп'ютери з системою Multics . | Також на початку 80 -х у Франції в декількох університетах були встановлені комп'ютери з системою Multics . | ||
Рядок 59: | Рядок 65: | ||
У 2007 році вихідний код і документація Multics були передані компанією BULL Массачусетського технологічного інституту і опубліковані на сайті MIT . | У 2007 році вихідний код і документація Multics були передані компанією BULL Массачусетського технологічного інституту і опубліковані на сайті MIT . | ||
− | Дивно , що ядро системи Multics , що знаходилося постійно в пам'яті комп'ютера і в ті далекі роки часто | + | Дивно , що ядро системи Multics , що знаходилося постійно в пам'яті комп'ютера і в ті далекі роки часто висміюване за свій розмір і складність , займало всього 135 Кілобайт коду. |
Перші комп'ютери GE- 645 мали пам'ять розміром 512 * 1024 32 -х бітних слів (або 2 Мегабайта за сьогоднішніми мірками) , тому ядро системи займало не так вже й багато місця. | Перші комп'ютери GE- 645 мали пам'ять розміром 512 * 1024 32 -х бітних слів (або 2 Мегабайта за сьогоднішніми мірками) , тому ядро системи займало не так вже й багато місця. | ||
Варто також зауважити , що вся операційна система , включаючи складний компілятор мови PL / I , для користувача команди і додаткові бібліотеки , складалася з приблизно півтора тисяч вихідних файлів , кожен з яких містив приблизно по 200 рядків коду. У скомпільованому вигляді весь цей код займав близько 4,5 Мегабайт , що було величезним розміром на ті часи. | Варто також зауважити , що вся операційна система , включаючи складний компілятор мови PL / I , для користувача команди і додаткові бібліотеки , складалася з приблизно півтора тисяч вихідних файлів , кожен з яких містив приблизно по 200 рядків коду. У скомпільованому вигляді весь цей код займав близько 4,5 Мегабайт , що було величезним розміром на ті часи. | ||
− | Компілятори Multics в основному оптимізували код за розміром , а не по ефективності використання центрального процесора , що було обгрунтовано прагненням до економії пам'яті | + | Компілятори Multics в основному оптимізували код за розміром , а не по ефективності використання центрального процесора , що було обгрунтовано прагненням до економії пам'яті багатокористувацької системі . |
Поточна версія на 22:00, 11 грудня 2013
Розробник - MIT, GE, Bell
Остання версія - MR 12.5 - 1992
Тип ядра - багаторівневе
Ліцензія - MIT License
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 ( 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 ( найпершою такою системою була MCP для комп'ютерів Burroughs 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 в основному оптимізували код за розміром , а не по ефективності використання центрального процесора , що було обгрунтовано прагненням до економії пам'яті багатокористувацької системі .