Multics - Multics

Multics
Logo Multics.gif
Vývojář MIT , GE , Bell Labs
Napsáno PL/I , jazyk sestavení
Pracovní stav Zralý, historický, emulátor k dispozici
Zdrojový model Otevřený zdroj
První vydání 1969 ; Před 52 lety ( 1969 )
Poslední vydání 12.7 / 28. července 2021 ; před 2 měsíci ( 2021-07-28 )
Úložiště
K dispozici v Angličtina
Platformy Sálové počítače GE-645 , stroje řady Honeywell 6180
Typ jádra Monolitické jádro
Ovlivněn Unix , GEORGE 3 , ICL VME , PRIMOS , Domain/OS , Stratus VOS
Výchozí
uživatelské rozhraní
Rozhraní příkazového řádku
Licence Původně proprietární ,
Free software Multics License od roku 2007
Předchází Kompatibilní systém sdílení času
Oficiální webové stránky www .multicians .org

Multics („ Multiplexed Information and Computing Service “) je vlivný raný operační systém pro sdílení času založený na konceptu jednoúrovňové paměti . Bylo řečeno, že Multics „od té doby ovlivnil všechny moderní operační systémy, od mikropočítačů po sálové počítače“.

Počáteční plánování a vývoj pro Multics byl zahájen v roce 1964 v Cambridge, Massachusetts . Původně to byl kooperativní projekt vedený MIT ( Project MAC s Fernandem Corbató ) spolu s General Electric a Bell Labs . Byl vyvinut na počítači GE 645 , který byl k tomu speciálně navržen; první byl dodán MIT v lednu 1967.

Multics byl koncipován jako komerční produkt pro General Electric a stal se jedním pro Honeywell , i když ne příliš úspěšně. Díky mnoha novým a hodnotným myšlenkám má Multics přes své chyby značný dopad na počítačovou vědu.

Multics má mnoho funkcí, jejichž cílem je zajistit vysokou dostupnost, takže bude podporovat výpočetní nástroj podobný telefonním a elektrárenským společnostem . K tomu se používá modulární hardwarová struktura a softwarová architektura. Systém se může zvětšit pouhým přidáním dalšího příslušného zdroje, ať už jde o výpočetní výkon, hlavní paměť nebo diskové úložiště. Oddělené seznamy řízení přístupu u každého souboru poskytují flexibilní sdílení informací, ale v případě potřeby úplné soukromí. Multics má řadu standardních mechanismů, které umožňují technikům analyzovat výkon systému, a také řadu mechanismů adaptivní optimalizace výkonu.

Nové nápady

Referenční příručka Multics Commands

Multics implementuje jednoúrovňové úložiště pro přístup k datům, čímž ruší jasné rozlišení mezi soubory ( v Multics se nazývají segmenty ) a pamětí procesů . Paměť procesu se skládá pouze ze segmentů, které byly mapovány do jeho adresního prostoru . K jejich čtení nebo zápisu proces jednoduše používá běžné pokyny centrální procesorové jednotky (CPU) a operační systém se stará o to, aby všechny úpravy byly uloženy na disk . V terminologii POSIX je to, jako kdyby každý soubor byl mmap()upraven; nicméně v Multics neexistuje koncept procesní paměti , oddělený od paměti používané k uchovávání mapovaných souborů, jako to má Unix . Celá paměť v systému je součástí nějakého segmentu, který se objevuje v systému souborů ; to zahrnuje dočasnou stírací paměť procesu, jeho jádrový zásobník atd.

Jednou nevýhodou toho bylo, že velikost segmentů byla omezena na 256 kilowordů , něco přes 1  MB . To bylo způsobeno zejména hardwarové architektury ze strojů na kterých běžel Multics, který má 36-bitovou velikost slova a indexové registry (používá se na adresu v rámci segmentů) o poloviční velikosti (18 bitů). K práci na souborech větších než tento, nazývaných vícesegmentové soubory, bylo nutné použít zvláštní kód. V dobách, kdy byl jeden megabajt paměti neúměrně drahý, a před velkými databázemi a později obrovskou bitmapovou grafikou se s tímto limitem setkávalo jen zřídka.

Další hlavní novou myšlenkou Multics bylo dynamické propojení , ve kterém běžící proces mohl požadovat, aby do jeho adresního prostoru byly přidány další segmenty, segmenty, které mohly obsahovat kód, který pak mohl spustit. To umožnilo aplikacím automaticky používat nejnovější verzi jakékoli externí rutiny, kterou nazývali, protože tyto rutiny byly uchovávány v jiných segmentech, které byly dynamicky propojeny pouze tehdy, když se v nich proces poprvé pokusil spustit provádění. Protože různé procesy mohly používat různá pravidla vyhledávání , mohli různí uživatelé automaticky používat různé verze externích rutin. Stejně důležité je, že s příslušným nastavením bezpečnostních zařízení Multics by kód v druhém segmentu mohl získat přístup k datovým strukturám udržovaným v jiném procesu.

Aby tedy interagoval s aplikací běžící částečně jako démon (v jiném procesu), uživatelský proces jednoduše provedl normální instrukci volání procedury do segmentu kódu, se kterým byl dynamicky propojen (segment kódu, který implementoval nějakou operaci spojenou s démon). Kód v tomto segmentu pak mohl upravovat data udržovaná a používaná v démonu. Když byla akce nezbytná k zahájení požadavku dokončena, instrukce pro vrácení jednoduchého postupu vrátila kontrolu nad procesem uživatele do uživatelského kódu.

Multics také podporoval extrémně agresivní on-line rekonfiguraci : centrální procesorové jednotky , paměťové banky, diskové jednotky atd. Bylo možné přidávat a odebírat, zatímco systém pokračoval v provozu. V systému MIT, kde byla provedena většina raného vývoje softwaru, bylo běžnou praxí rozdělit víceprocesorový systém na dva oddělené systémy v době mimo pracovní dobu postupným odebíráním dostatečného počtu součástí, aby se vytvořil druhý pracovní systém, přičemž zbytek stále běžel s původním přihlášeným -u uživatelů. Testování vývoje systémového softwaru bylo možné provést na druhém systému, poté byly komponenty druhého systému přidány zpět do hlavního uživatelského systému, aniž by bylo nutné jej vypnout. Multics podporoval více CPU; byl to jeden z prvních multiprocesorových systémů.

Multics byl první hlavní operační systém, který byl od samého počátku navržen jako zabezpečený systém . Navzdory tomu byly rané verze Multics opakovaně rozděleny. To vedlo k dalším pracím, díky nimž byl systém mnohem bezpečnější a předznamenal moderní techniky bezpečnostního inženýrství . Vloupání se stala velmi vzácnou, jakmile byla přijata hardwarová základna druhé generace; měl hardwarovou podporu pro prstenově orientované zabezpečení , víceúrovňové zdokonalení konceptu hlavního režimu . Projekt amerického tygřího tygřího týmu testoval zabezpečení Multics v roce 1973 pod kódovým slovem ZARF. Dne 28. května 1997 americká národní bezpečnostní agentura odtajnila toto použití kódového slova ZARF.

Multics byl první operační systém, který poskytoval hierarchický souborový systém a názvy souborů mohly mít téměř libovolnou délku a syntaxi. Daný soubor nebo adresář může mít více jmen (obvykle dlouhý a krátký tvar) a podporovány byly také symbolické odkazy mezi adresáři. Multics byl první používat dnes již standardní koncept osob- procesních stohů v jádře , s odděleným zásobníku pro každou bezpečnostní kroužek. Byl to také první, kdo měl příkazový procesor implementovaný jako běžný uživatelský kód - nápad, který byl později použit v unixovém shellu . Byl to také jeden z prvních napsaných v jazyce na vysoké úrovni (Multics PL/I ), po systému Burroughs MCP napsaném v ALGOLU .

Nasazení Multics do bezpečných výpočetních prostředí také urychlilo vývoj inovativních podpůrných aplikací. V roce 1975 vyvinul Morrie Gasser z MITER Corporation vyslovitelný generátor náhodných slov, který řešil požadavky na hesla instalací, jako je Air Force Data Services Center (AFDSC) zpracovávající utajované informace. Aby se vyhnul uhodnutelným heslům, rozhodl se AFDSC přiřadit hesla, ale dospěl k závěru, že ruční přiřazení vyžaduje příliš mnoho administrativní režie. Generátor náhodných slov byl tedy prozkoumán a poté vyvinut v PL1. Místo toho, aby byl systém založen na fonémech, používal fonematické segmenty (aproximace angličtiny druhého řádu) a další pravidla pro posílení vyslovitelnosti a nahodilosti, která byla statisticky modelována proti jiným přístupům. Potomek tohoto generátoru byl přidán do programu Multics během projektu Guardian.

Historie projektu

V roce 1964 byl vyvinut Multics zpočátku pro GE-645 sálovém počítači, na 36-bitový systém. Počítačový byznys GE, včetně Multics, převzal v roce 1970 Honeywell; kolem roku 1973 byla na strojích Honeywell 6180 podporována technologie Multics , která zahrnovala vylepšení zabezpečení včetně hardwarové podpory ochranných kroužků .

Bell Labs z projektu odstoupili v roce 1969; někteří lidé, kteří tam pracovali, vytvořili unixový systém. Vývoj multics pokračoval na MIT a General Electric.

Společnost Honeywell pokračovala ve vývoji systému až do roku 1985. Bylo instalováno asi 80 mnohamilionových webů, na univerzitách, v průmyslu a na vládních pracovištích. Systém francouzské univerzity měl na začátku 80. let několik instalací. Poté, co Honeywell přestal podporovat Multics, uživatelé migrovali do jiných systémů, jako je Unix.

V roce 1985 byla společnosti Multics vydána certifikace jako zabezpečený operační systém na úrovni B2 pomocí kriterií hodnocení důvěryhodného počítačového systému od Národního centra počítačové bezpečnosti (NCSC) divize NSA , prvního operačního systému hodnoceného na tuto úroveň.

Společnost Multics byla v letech 1975 až 2000 distribuována společností Groupe Bull v Evropě a společností Bull HN Information Systems Inc. ve Spojených státech. V roce 2006 společnost Bull SAS uvolnila zdrojový kód verzí Multics MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 & MR12.5 na základě licence na bezplatný software .

Poslední známá instalace Multics běžící nativně na hardwaru Honeywell byla ukončena 30. října 2000 na kanadském ministerstvu národní obrany v Halifaxu, Nové Skotsko, Kanada.

Aktuální stav

V roce 2006 společnost Bull HN uvolnila zdrojový kód MR12.5, konečné vydání Multics z roku 1992, na MIT. Většina systému je nyní k dispozici jako bezplatný software s výjimkou některých volitelných částí, jako je TCP/IP .

V roce 2014 byl Multics úspěšně spuštěn na aktuálním hardwaru pomocí emulátoru. Nyní je k dispozici emulátor verze 1.0. Vydání 12.6f aplikace Multics doprovází vydání emulátoru 1.0 a přidává několik nových funkcí, včetně vyvolání příkazového řádku a úprav pomocí video systému.

Příkazy

Následuje seznam programů a příkazů pro běžné výpočetní úlohy, které jsou podporovány rozhraním příkazového řádku Multics .

Retrospektivní pozorování

Peter H. Salus , autor knihy pokrývající raná léta Unixu, uvedl jednu pozici: „S Multics se snažili mít mnohem univerzálnější a flexibilnější operační systém a to selhalo“. Tato pozice však byla ve výpočetní komunitě široce zdiskreditována, protože mnoho technických inovací společnosti Multics se používá v moderních komerčních výpočetních systémech.

Trvale rezidentní jádro Multics, systém, který se ve své době považoval za příliš velký a složitý, měl pouze 135 kB kódu. Pro srovnání, systém Linux v roce 2007 mohl obsadit 18 MB. První MIT GE-645 měl 512 kilowordů paměti (2 MiB), v té době opravdu obrovské množství, a jádro používalo jen mírnou část hlavní paměti Multics.

Celý systém, včetně operačního systému a komplexního překladače PL/1 , uživatelských příkazů a podprogramových knihoven, se skládal z asi 1 500 zdrojových modulů. Ty měly v průměru zhruba 200 řádků zdrojového kódu a zkompilovány tak, aby vytvořily celkem zhruba 4,5 MiB kódu procedury, což bylo na tehdejší standardy poměrně velké.

Kompilátory Multics jsou obecně optimalizovány více pro hustotu kódu než pro výkon CPU, například pomocí malých dílčích rutin nazývaných operátory pro krátké standardní sekvence kódu, což činí srovnání velikosti objektového kódu s moderními systémy méně užitečnými. Vysoká hustota kódu byla dobrou volbou optimalizace pro Multics jako víceuživatelský systém s drahou hlavní pamětí.

Během své historie komerčních produktů bylo často interně komentováno, že prodejní a marketingoví pracovníci Honeywell Information Systems (HIS) (později Honeywell-Bull) byli lépe obeznámeni s obchodováním s další počítačovou řadou Honeywell, DPS 6 se systémem GCOS, a usnadnili jim to. . DPS-6 a GCOS byly uznávanou a spolehlivou platformou pro inventář, účetnictví, zpracování textu a vertikální tržní aplikace, jako je bankovnictví, kde měla značnou zákaznickou základnu. Naproti tomu plný potenciál flexibility společnosti Multics pro i všední úkoly nebylo v té době snadné pochopit a její rysy byly obecně mimo soubor dovedností současných obchodních analytiků. Rozsah tohoto odpojení byl konkretizován anekdotou od Paula Stachoura, CNO/CSC:

Když v roce 1983 společnost American Telephone and Telegraph změnila název na AT&T, objevil se pracovník právního oddělení společnosti Honeywell a zeptal se Multician, zda by mohl zajistit změnu názvu ve všech jejich počítačových dokumentech. Na otázku, kdy je možné proces dokončit, odpověděl Multician: „Je hotovo.“ Zaměstnanec zopakoval, že potřebuje aktualizovat stovky možná tisíců dokumentů. Multician vysvětlil, že když hovořil zaměstnanec, provedl globální vyhledávání a nahrazení a úkol byl ve skutečnosti splněn.

Vliv na jiné projekty

Unix

Design a funkce Multics výrazně ovlivnily operační systém Unix , který původně napsali dva programátoři Multics, Ken Thompson a Dennis Ritchie . Povrchní vliv Multics na Unix je evidentní v mnoha oblastech, včetně pojmenování některých příkazů. Filozofie interního designu byla ale zcela odlišná, zaměřovala se na udržení systému v malém a jednoduchém provedení, a tak napravila některé vnímané nedostatky Multicsu kvůli jeho vysokým nárokům na zdroje na omezený počítačový hardware té doby.

Název Unix (původně Unics ) je sám o sobě hříčkou na Multics . O U v Unixu se říká, že stojí za uniplexem, na rozdíl od multiplexu Multics, což ještě více podtrhuje odmítnutí návrhářů složitostí Multics ve prospěch přímějšího a proveditelnějšího přístupu pro menší počítače. (Garfinkel a Abelson uvádějí alternativní původ: Peter Neumann v Bell Labs, který sledoval ukázku prototypu, navrhl název hříčky UNICS - vyslovuje se „ eunuchové “ - jako „kastrovaný Multics“, ačkoli Dennis Ritchie to údajně popřel. )

Ken Thompson v přepsaném rozhovoru s Peterem Seibelem z roku 2007 hovoří o Multics jako o „předimenzovaném a přebudovaném a nad vším. Bylo to téměř nepoužitelné. [Massachusettský technologický institut] stále tvrdí, že je to obrovský úspěch, ale zjevně to nebylo ". O vlivu Multics na Unix Thompson uvedl, že „věci, které se mi dost líbily (o Multics), abych skutečně vzal, byly hierarchický souborový systém a shell - samostatný proces, který můžete nahradit jiným procesem“.

Jiné operační systémy

Prime Computer operační systém, PRIMOS , byl označován jako „Multics v krabici od bot“ od Williama Poduška , zakladatel společnosti. Poduska později přešel k založení Apollo Computer , jehož operační systémy AEGIS a později Domain/OS , někdy nazývané „Multics in a matchbox“, rozšířily design Multics na prostředí silně síťové grafické pracovní stanice.

Stratus VOS operační systém Stratus Computer (nyní Stratus Technologies ) byl velmi silně ovlivněn Multics, a oba jeho externí uživatelské rozhraní a vnitřní struktura nést mnoho úzké podobnosti ke staršímu projektu. Vysoce spolehlivé, dostupné a bezpečnostní funkce Multics byly v systému Stratus VOS rozšířeny o podporu nové řady počítačových systémů odolných proti chybám podporujících bezpečné a spolehlivé zpracování transakcí . Stratus VOS je nejpříměji příbuzný potomek společnosti Multics, který je dnes stále v aktivním vývoji a produkci.

Ochrana architektura Multics, omezí schopnost kódu na jedné úrovni systému přístup k prostředkům na jiného, bylo přijato jako základ pro zabezpečení funkce systému ICL ‚s VME operačního systému.

Viz také

Reference

Další čtení

Literatura obsahuje velké množství prací o Multics a jeho různých součástech; poměrně úplný seznam je k dispozici na stránce Multics bibliografie a na druhé, stručnější 1994 Multics bibliografii (textový formát). Níže jsou uvedeny ty nejdůležitější a/nebo informativní.

Technické údaje

Bezpečnostní

externí odkazy