Multics - Multics
Dezvoltator | MIT , GE , Bell Labs |
---|---|
Scris in | PL / I , limbaj de asamblare |
Starea de lucru | Matur, istoric, emulator disponibil |
Modelul sursă | Sursa deschisa |
Eliberarea inițială | 1969 |
Ultima lansare | 12.7 / 28 iulie 2021 |
Repertoriu | |
Disponibil in | Engleză |
Platforme | Mașini principale GE-645 , mașini din seria Honeywell 6180 |
Tipul de nucleu | Nucleul monolitic |
Influențat | Unix , GEORGE 3 , ICL VME , PRIMOS , Domain / OS , Stratus VOS |
Interfață de utilizator implicită |
Linia de comandă |
Licență | Licență Multics pentru software gratuit , proprietară inițială din 2007 |
Precedat de | Sistem de partajare a timpului compatibil |
Site oficial | www |
Multics ( „ Multiplexate Serviciul de Informații și Computing “) este un influent timpuriu time-sharing sistem de operare bazat pe conceptul de memorie de un singur nivel . S-a spus că Multics „a influențat toate sistemele de operare moderne de atunci, de la microcomputere la mainframes”.
Planificarea și dezvoltarea inițiale pentru Multics au început în 1964, în Cambridge, Massachusetts . Inițial a fost un proiect de cooperare condus de MIT ( Project MAC cu Fernando Corbató ) împreună cu General Electric și Bell Labs . A fost dezvoltat pe computerul GE 645 , care a fost special conceput pentru acesta; primul a fost livrat MIT în ianuarie 1967.
Multics a fost conceput ca un produs comercial pentru General Electric și a devenit unul pentru Honeywell , deși nu cu mare succes. Datorită numeroaselor sale idei noi și valoroase, Multics a avut un impact semnificativ asupra informaticii în ciuda defecțiunilor sale.
Multics are numeroase caracteristici menite să asigure o disponibilitate ridicată , astfel că va susține un utilitar de calcul similar cu telefon si electricitate utilitati . Structura hardware modulară și arhitectura software sunt utilizate pentru a realiza acest lucru. Sistemul poate crește în dimensiune prin simpla adăugare a resurselor adecvate, fie că este vorba de putere de calcul, memorie principală sau stocare pe disc. Listele separate de control al accesului din fiecare fișier oferă schimb de informații flexibil, dar confidențialitate completă atunci când este necesar. Multics are o serie de mecanisme standard pentru a permite inginerilor să analizeze performanța sistemului, precum și o serie de mecanisme de optimizare a performanței adaptive.
Idei noi
Multics implementează un magazin cu un singur nivel pentru accesul la date, eliminând distincția clară între fișiere (numite segmente în Multics) și memoria de proces . Memoria unui proces constă numai din segmente care au fost mapate în spațiul său de adrese . Pentru a le citi sau scrie, procesul folosește pur și simplu instrucțiunile normale ale unității centrale de procesare (CPU), iar sistemul de operare se asigură că toate modificările au fost salvate pe disc . În terminologia POSIX , este ca și cum fiecare fișier ar fi mmap()
ed; cu toate acestea, în Multics nu există un concept de memorie de proces , separat de memoria utilizată pentru a păstra fișierele mapate, așa cum a făcut Unix . Toată memoria din sistem face parte dintr- un anumit segment, care apare în sistemul de fișiere ; aceasta include memoria temporară de zgârieturi a procesului, stiva sa de nucleu etc.
Un dezavantaj a fost că dimensiunea segmentelor era limitată la 256 kilowords , puțin peste 1 MB . Acest lucru s-a datorat arhitecturii hardware specifice a mașinilor pe care rulează Multics, având o dimensiune a cuvintelor de 36 de biți și registre de index (utilizate pentru adresarea în segmente) de jumătate din această dimensiune (18 biți). Trebuia folosit codul suplimentar pentru a lucra la fișiere mai mari decât acestea, numite fișiere multisegment. În zilele în care un megabyte de memorie era prohibitiv de scump și înaintea bazelor de date mari și mai târziu a graficelor uriașe bitmap , această limită era rar întâlnită.
O altă idee nouă majoră a Multics a fost legarea dinamică , în cadrul căreia un proces de execuție ar putea solicita adăugarea altor segmente în spațiul său de adrese, segmente care ar putea conține cod pe care să le poată executa apoi. Acest lucru a permis aplicațiilor să utilizeze automat cea mai recentă versiune a oricărei rutine externe pe care au apelat-o, deoarece aceste rutine au fost păstrate în alte segmente, care au fost legate dinamic doar atunci când un proces a încercat mai întâi să înceapă execuția în ele. Deoarece diferite procese ar putea folosi reguli de căutare diferite , diferiți utilizatori ar putea ajunge să folosească automat diferite versiuni ale rutinelor externe. La fel de important, cu setările corespunzătoare pentru facilitățile de securitate Multics, codul din celălalt segment ar putea avea apoi acces la structurile de date menținute într-un proces diferit.
Astfel, pentru a interacționa cu o aplicație care rulează parțial ca un daemon (într-un alt proces), procesul unui utilizator pur și simplu a efectuat o instrucțiune normală de apel procedură la un segment de cod de care a fost legat dinamic (un segment de cod care a implementat o operație asociată cu demonul). Codul din acel segment ar putea modifica datele păstrate și utilizate în daemon. Când acțiunea necesară pentru a începe solicitarea a fost finalizată, o instrucțiune simplă de returnare a procedurii a returnat controlul procesului utilizatorului în codul utilizatorului.
Multics a acceptat, de asemenea, reconfigurarea online extrem de agresivă : unitățile centrale de procesare , băncile de memorie, unitățile de disc etc. puteau fi adăugate și eliminate în timp ce sistemul continua să funcționeze. La sistemul MIT, unde s-a realizat cea mai timpurie dezvoltare software, era o practică obișnuită să împărțiți sistemul multiprocesor în două sisteme separate în timpul orelor libere, eliminând în mod incremental suficiente componente pentru a forma un al doilea sistem de lucru, lăsând restul în continuare să ruleze înregistrarea originală -în utilizatori. Testarea dezvoltării software-ului de sistem ar putea fi făcută pe al doilea sistem, apoi componentele celui de-al doilea sistem au fost adăugate înapoi la sistemul principal al utilizatorului, fără ca acesta să fi fost închis vreodată. Multics a acceptat mai multe procesoare; a fost unul dintre primele sisteme multiprocesor.
Multics a fost primul sistem de operare major care a fost proiectat ca un sistem sigur de la început. În ciuda acestui fapt, versiunile timpurii ale Multics au fost împărțite în mod repetat. Acest lucru a condus la lucrări suplimentare care au făcut sistemul mult mai sigur și au prefigurat tehnicile moderne de inginerie de securitate . Break-in-urile au devenit foarte rare odată cu adoptarea bazei hardware a doua generație; avea suport hardware pentru securitate orientată către inel , un rafinament pe mai multe niveluri al conceptului de mod master . Un proiect al echipei de tigri din Forțele Aeriene din SUA a testat securitatea Multics în 1973 sub cuvântul cod ZARF. La 28 mai 1997, Agenția Națională de Securitate Americană a declasificat această utilizare a cuvântului cod ZARF.
Multics a fost primul sistem de operare care a oferit un sistem de fișiere ierarhic , iar numele fișierelor ar putea avea o lungime și o sintaxă aproape arbitrare. Un anumit fișier sau director ar putea avea mai multe nume (de obicei o formă lungă și scurtă), iar legăturile simbolice între directoare au fost, de asemenea, acceptate. Multics a fost primul care a folosit acum conceptul standard de stive per- proces în nucleu , cu o stivă separată pentru fiecare inel de securitate. De asemenea, a fost primul care a implementat un procesor de comandă ca un cod de utilizator obișnuit - o idee folosită ulterior în shell-ul Unix . A fost, de asemenea, unul dintre primele scrise într-un limbaj de nivel înalt (Multics PL / I ), după sistemul Burroughs MCP scris în ALGOL .
Implementarea Multics în medii de calcul securizate a stimulat, de asemenea, dezvoltarea de aplicații inovatoare de sprijin. În 1975, Morrie Gasser de la MITRE Corporation a dezvoltat un generator de cuvinte pronunțabil aleatoriu pentru a răspunde cerințelor de parolă ale instalațiilor, cum ar fi Centrul de servicii de date ale forțelor aeriene (AFDSC) care prelucrează informații clasificate. Pentru a evita parolele ghicibile, AFDSC a decis să atribuie parole, dar a concluzionat că atribuirea manuală necesită prea multe cheltuieli administrative. Astfel, a fost cercetat un generator de cuvinte aleatoriu și apoi dezvoltat în PL1. În loc să se bazeze pe foneme, sistemul a folosit segmente fonemice (aproximări de ordinul doi al englezei) și alte reguli pentru a spori pronunțabilitatea și aleatoritatea, care a fost modelată statistic în raport cu alte abordări. Un descendent al acestui generator a fost adăugat la Multics în timpul Project Guardian.
Istoria proiectului
În 1964, Multics a fost dezvoltat inițial pentru mainframe - ul GE-645 , un sistem de 36 de biți . Activitatea de calculatoare a GE, inclusiv Multics, a fost preluată de Honeywell în 1970; în jurul anului 1973, Multics a fost acceptat pe mașinile Honeywell 6180 , care au inclus îmbunătățiri de securitate, inclusiv suport hardware pentru inele de protecție .
Bell Labs a ieșit din proiect în 1969; unii dintre oamenii care lucraseră acolo au continuat să creeze sistemul Unix . Dezvoltarea Multics a continuat la MIT și General Electric.
Honeywell a continuat dezvoltarea sistemului până în 1985. Aproximativ 80 de site-uri de milioane de dolari au fost instalate, la universități, industrie și site-uri guvernamentale. Sistemul universitar francez avea mai multe instalații la începutul anilor 1980. După ce Honeywell a încetat să accepte Multics, utilizatorii au migrat către alte sisteme precum Unix.
În 1985, Multics a primit o certificare ca sistem de operare securizat la nivel B2, utilizând criteriile de evaluare a sistemului computerizat de încredere de la Centrul Național de Securitate a Computerelor (NCSC), o divizie a NSA , primul sistem de operare evaluat la acest nivel.
Multics a fost distribuit între 1975 și 2000 de Groupe Bull în Europa și de Bull HN Information Systems Inc. în Statele Unite. În 2006, Bull SAS a lansat codul sursă al versiunilor Multics MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 și MR12.5 sub o licență de software gratuit .
Ultima instalație Multics cunoscută care rulează nativ pe hardware-ul Honeywell a fost oprită la 30 octombrie 2000, la Departamentul canadian de apărare națională din Halifax, Nova Scotia, Canada.
Statusul curent
În 2006 Bull HN a lansat codul sursă pentru MR12.5, ultima versiune Multics din 1992, către MIT. Cea mai mare parte a sistemului este acum disponibilă ca software gratuit, cu excepția unor piese opționale, cum ar fi TCP / IP .
În 2014, Multics a fost rulat cu succes pe hardware-ul actual folosind un emulator. Versiunea 1.0 a emulatorului este acum disponibilă. Versiunea 12.6f Multics însoțește versiunea 1.0 a emulatorului și adaugă câteva caracteristici noi, inclusiv reamintirea în linie de comandă și editarea utilizând sistemul video.
Comenzi
Următoarea este o listă de programe și comenzi pentru sarcini de calcul obișnuite care sunt acceptate de interfața liniei de comandă Multics .
Observații retrospective
Peter H. Salus , autorul unei cărți care acoperă primii ani ai Unix, a afirmat o poziție: „Cu Multics au încercat să aibă un sistem de operare mult mai versatil și mai flexibil și a eșuat lamentabil”. Cu toate acestea, această poziție a fost discreditată în comunitatea de calcul, deoarece multe dintre inovațiile tehnice ale Multics sunt utilizate în sistemele moderne de calcul comercial.
Nucleul rezident permanent al Multics, un sistem ridiculizat la vremea sa ca fiind prea mare și complex, avea doar 135 KB de cod. În comparație, un sistem Linux în 2007 ar fi putut ocupa 18 MB. Primul MIT GE-645 avea 512 kilowords de memorie (2 MiB), o cantitate cu adevărat enormă în acel moment, iar nucleul folosea doar o porțiune moderată de memorie principală Multics.
Întregul sistem, inclusiv sistemul de operare și compilatorul complex PL / 1 , comenzile utilizatorului și bibliotecile de subrutine, constau din aproximativ 1500 de module sursă. Acestea au avut în medie aproximativ 200 de linii de cod sursă fiecare și au fost compilate pentru a produce un total de aproximativ 4,5 MiB de cod de procedură, care a fost destul de mare în conformitate cu standardele zilei.
Compilatoarele Multics, în general, au optimizat mai mult pentru densitatea codului decât performanța procesorului, de exemplu folosind mici subrutine numite operatori pentru secvențe de cod standard scurte, ceea ce face ca comparația dimensiunii codului obiectului cu sistemele moderne să fie mai puțin utilă. Densitatea ridicată a codului a fost o alegere bună de optimizare pentru Multics ca sistem multi-utilizator cu memorie principală scumpă.
În timpul istoriei sale de produse comerciale, a fost adesea comentat pe plan intern că personalul de vânzări și marketing Honeywell Information Systems (HIS) (mai târziu Honeywell-Bull) era mai familiarizat și mai confortabil făcând argumentul pentru cealaltă linie de calculatoare Honeywell, DPS 6 care rulează GCOS . DPS-6 și GCOS erau o platformă bine considerată și fiabilă pentru inventar, contabilitate, procesare de text și aplicații verticale de piață, cum ar fi serviciile bancare, unde avea o bază de clienți considerabilă. În contrast, întregul potențial al flexibilității Multics pentru sarcini chiar banale nu a fost ușor de înțeles în acea epocă, iar caracteristicile sale erau, în general, în afara setului de competențe al analiștilor de afaceri contemporani. Scopul acestei deconectări a fost concretizat printr-o anecdotă transmisă de Paul Stachour, CNO / CSC:
Când American Telephone și Telegraph și-a schimbat numele în AT&T în 1983, un personal din departamentul juridic al lui Honeywell a apărut și l-a întrebat pe un Multician dacă poate aranja schimbarea numelui în toate documentele computerizate ale acestora. Când a fost întrebat când se poate finaliza procesul, Multicianul a răspuns: „S-a terminat”. Personalul a repetat că are nevoie de sute, poate mii de documente actualizate. Multicianul a explicat că a executat o căutare și o înlocuire globală în timp ce personalul vorbea, iar sarcina a fost de fapt finalizată.
Influența asupra altor proiecte
Unix
Designul și caracteristicile Multics au influențat foarte mult sistemul de operare Unix , care a fost scris inițial de doi programatori Multics, Ken Thompson și Dennis Ritchie . Influența superficială a Multics pe Unix este evidentă în multe domenii, inclusiv denumirea unor comenzi. Dar filozofia de proiectare internă era destul de diferită, concentrându-se pe menținerea sistemului mic și simplu și, astfel, corectarea unor deficiențe percepute ale Multics din cauza cerințelor sale mari de resurse pentru hardware-ul computerului limitat al vremii.
Numele Unix (inițial Unics ) este el însuși un joc de cuvinte pentru Multics . Se zvonește că U în Unix ar reprezenta uniplex , spre deosebire de multiplexul Multics, subliniind în continuare respingerea de către proiectanți a complexității Multics în favoarea unei abordări mai simple și mai viabile pentru computerele mai mici. (Garfinkel și Abelson citează o origine alternativă: Peter Neumann de la Bell Labs, urmărind o demonstrație a prototipului, a sugerat numele de joc UNICS - pronunțat „ eunuc ” - ca „Multics castrat”, deși se spune că Dennis Ritchie a negat acest lucru. )
Ken Thompson, într-un interviu transcris din 2007 cu Peter Seibel, se referă la Multics ca fiind „supradiseinat și supraconstruit și peste tot. Era aproape inutilizabil. Ei [Institutul de Tehnologie din Massachusetts] susțin în continuare că este un succes monstruos, dar pur și simplu nu a fost ". În ceea ce privește influența Multics pe Unix, Thompson a afirmat că „lucrurile pe care mi-au plăcut suficient (despre Multics) să le iau de fapt erau sistemul de fișiere ierarhic și shell-ul - un proces separat pe care îl puteți înlocui cu un alt proces”.
Alte sisteme de operare
Sistemul de operare Prime Computer , PRIMOS , a fost denumit „Multics in a shoebox” de William Poduska , fondatorul companiei. Ulterior, Poduska a fondat Apollo Computer , ale cărui sisteme de operare AEGIS și ulterior Domain / OS , numite uneori „Multics într-o cutie de chibrituri”, au extins designul Multics la un mediu de lucru grafic puternic conectat la rețea.
Sistemul de operare Stratus VOS al computerului Stratus (acum Stratus Technologies ) a fost foarte puternic influențat de Multics și atât interfața sa externă de utilizator, cât și structura internă au multe asemănări strânse cu proiectul mai vechi. Caracteristicile de înaltă fiabilitate, disponibilitate și securitate ale Multics au fost extinse în Stratus VOS pentru a sprijini o nouă linie de sisteme informatice tolerante la erori care acceptă procesarea tranzacțiilor sigure și fiabile . Stratus VOS este descendentul cel mai direct legat de Multics aflat încă în dezvoltare și utilizare activă în prezent.
Arhitectura de protecție a Multics, limitând capacitatea de cod la un nivel al sistemului de acces la resurse la altul, a fost adoptată ca bază pentru caracteristici de securitate , a ICL lui VME sistem de operare.
Vezi si
- Evoluția sistemului de partajare a timpului
- Peter J. Denning
- Jack B. Dennis
- Robert Fano - director al Proiectului MAC la MIT (1963–1968)
- Robert M. Graham (informatician)
- JCR Licklider - director al proiectului MAC la MIT (1968-1971)
- Peter G. Neumann
- Elliott Organick
- Louis Pouzin - a introdus termenul shell pentru limbajul de comandă utilizat în Multics
- Jerome H. Saltzer
- Roger R. Schell
- Glenda Schroeder - a implementat prima linie de comandă interfață de utilizator shell și a propus primul e - mail sistem cu Pouzin și Crisman
- Victor A. Vyssotsky
Referințe
Lecturi suplimentare
Literatura conține un număr mare de lucrări despre Multics și diverse componente ale acestuia; o listă destul de completă este disponibilă pe pagina Multics Bibliography și pe o a doua bibliografie Multics 1994 mai scurtă (format text). Cele mai importante și / sau informative sunt enumerate mai jos.
- FJ Corbató , VA Vyssotsky , Introducere și prezentare generală a sistemului Multics ( AFIPS 1965) este o bună introducere în sistem.
- FJ Corbató , CT Clingen, JH Saltzer , Multics - The First Seven Years (AFIPS, 1972) este o recenzie excelentă, scrisă după o perioadă considerabilă de utilizare și îmbunătățire față de eforturile inițiale.
- JJ Donovan, S. Madnick , Sisteme de operare , este o lectură fundamentală a sistemelor de operare.
- JJ Donovan, Programarea sistemelor , este o bună introducere în programarea sistemelor și sistemele de operare.
Detalii tehnice
- Jerome H. Saltzer , Introducere în Multics (MIT Project MAC, 1974) este o introducere considerabil mai lungă a sistemului, orientată către utilizatorii reali.
- Elliott I. Organick , Sistemul Multics: o examinare a structurii sale (MIT Press, 1972) este lucrarea standard a sistemului, deși documentează o versiune timpurie, iar unele caracteristici descrise în acesta nu au apărut niciodată în sistemul actual.
- VA Vyssotsky , FJ Corbató , RM Graham, Structura supervizorului Multics (AFIPS 1965) descrie structura internă de bază a nucleului Multics.
- Jerome H. Saltzer , Controlul traficului într-un sistem de calcul multiplexat (MIT Project MAC, iunie 1966) este descrierea originală a ideii de comutare a stivelor de nucleu; una dintre lucrările clasice de informatică.
- RC Daley, PG Neumann , A General Purpose File System for Secondary Storage (AFIPS, 1965) descrie sistemul de fișiere, inclusiv controlul accesului și mecanismele de backup.
- RJ Feiertag, EI Organick , Sistemul de intrare / ieșire Multics . Descrie nivelurile inferioare ale implementării I / O.
- A. Bensoussan, CT Clingen, RC Daley, The Multics Virtual Memory: Concepts and Design , ( ACM SOSP , 1969) descrie sistemul de memorie Multics în detaliu.
- Paul Green , Multics Virtual Memory - Tutorial and Reflections este o bună privire aprofundată asupra sistemului de stocare Multics.
- Roger R. Schell , Dynamic Reconfiguration in a Modular Computer System (MIT Project MAC, 1971) descrie mecanismele de reconfigurare.
Securitate
- Paul A. Karger, Roger R. Schell , Multics Security Evaluation: Vulnerability Analysis (Air Force Electronic Systems Division, 1974) descrie atacurile clasice asupra securității Multics de către o „ echipă tigru ”.
- Jerome H. Saltzer , Michael D. Schroeder , The Protection of Information in Computer Systems (Proceedings of the IEEE , septembrie 1975) descrie fundamentele din spatele primei runde de modernizare a securității; o altă hârtie clasică.
- MD Schroeder , DD Clark, JH Saltzer , DH Wells. Raportul final al proiectului Multics Kernel Design (MIT LCS, 1978) descrie actualizările de securitate adăugate pentru a produce o versiune și mai îmbunătățită.
- Paul A. Karger, Roger R. Schell , Treizeci de ani mai târziu: Lecții din evaluarea securității multice (IBM, 2002) este o retrospectivă interesantă care compară securitatea reală desfășurată în mediul ostil de astăzi cu ceea ce s-a dovedit a fi posibil în urmă cu zeci de ani. Conchide că Multics a oferit o securitate considerabil mai puternică decât majoritatea sistemelor disponibile comercial în 2002.
linkuri externe
-
multicians.org este un site cuprinzător cu multe materiale
- Lucrări Multics online
- Glosar Multics
- Myths discută numeroase mituri despre Multics în detaliu, inclusiv miturile că a eșuat, că a fost mare și lent, precum și câteva neînțelegeri greșite de înțeles
- Securitate multimedia
- Unix și Multics
- Informații generale și întrebări frecvente despre Multics Include o prezentare generală extinsă a altor sisteme software influențate de Multics
- Honeywell, Inc., înregistrări MULTICS, 1965–1982 . Institutul Charles Babbage , Universitatea din Minnesota. Înregistrările de dezvoltare Multics includ al doilea Manual al programatorilor de sistem MULTICS; Buletine tehnice MULTICS care descriu proceduri, aplicații și probleme, în special în ceea ce privește securitatea; și a returnat „Formulare de solicitare de comentarii” care includ lucrări tehnice și propuneri de teză.
- Arhiva oficială a codului sursă la MIT
- Conectați pagina la diverse informații Multics la Biblioteca Congresului Arhivele Web (arhivat 2001-11-30)
- Depozit Multics la Stratus Computer
- Multics la Universitaet Mainz
- Proiect activ de emulare a procesorului Multics Honeywell dps-8 / m
- Diverse manuale Multics scanate
- Multicians.org și Istoria sistemelor de operare , o recenzie critică a Multicians.org, plus o istorie a capsulelor Multics.