Multics - Multics
| Utvecklare | MIT , GE , Bell Labs |
|---|---|
| Skrivet i | PL/I , Monteringsspråk |
| Arbetsläge | Mogen, historisk, emulator tillgänglig |
| Källmodell | Öppen källa |
| Initial release | 1969 |
| Senaste släppningen | 12.7 / 28 juli 2021 |
| Förvar | |
| Tillgänglig i | engelsk |
| Plattformar | GE-645 stordatorer, maskiner från Honeywell 6180- serien |
| kernel typ | Monolitisk kärna |
| Påverkad | Unix , GEORGE 3 , ICL VME , PRIMOS , Domain/OS , Stratus VOS |
| Standard användargränssnitt |
Kommandoradsgränssnitt |
| Licens | Ursprungligen proprietär , Free software Multics License sedan 2007 |
| Föregås av | Kompatibelt tidsdelande system |
| Officiell hemsida | www |
Multics (" Multiplexed Information and Computing Service ") är ett inflytelserikt operativsystem som tidigt delar tid baserat på konceptet med ett nivåminne . Det har sagts att Multics "har påverkat alla moderna operativsystem sedan, från mikrodatorer till stordatorer".
Initial planering och utveckling för Multics startade 1964, i Cambridge, Massachusetts . Ursprungligen var det ett kooperativt projekt som leds av MIT ( Project MAC med Fernando Corbató ) tillsammans med General Electric och Bell Labs . Den utvecklades på GE 645 -datorn, som var speciellt utformad för den; den första levererades till MIT i januari 1967.
Multics var tänkt som en kommersiell produkt för General Electric och blev en för Honeywell , om än inte särskilt framgångsrikt. På grund av sina många nya och värdefulla idéer har Multics haft en betydande inverkan på datavetenskap trots sina fel.
Multics har många funktioner syftar till att säkerställa hög tillgänglighet så att det skulle stödja en beräkning verktyg liknar telefon- och el verktyg . Modulär hårdvarustruktur och mjukvaruarkitektur används för att uppnå detta. Systemet kan växa i storlek genom att helt enkelt lägga till mer av lämplig resurs, vare sig det är datorkraft, huvudminne eller hårddisklagring. Separata listor för åtkomstkontroll på varje fil ger flexibel informationsdelning, men fullständig integritet vid behov. Multics har ett antal standardmekanismer för att låta ingenjörer analysera systemets prestanda, liksom ett antal anpassningsbara mekanismer för prestandaoptimering.
Nya idéer
Multics implementerar en enda nivå lagra för dataåtkomst och kasta den tydliga skillnaden mellan filer (som kallas segment i Multics) och processminne . Minnet av en process består enbart av segment som kartlades till dess adressutrymme . För att läsa eller skriva till dem använder processen helt enkelt vanliga centralenheter (CPU), och operativsystemet ser till att alla ändringar sparades på hårddisken . I POSIX -terminologi är det som om varje fil redigerades; Men i Multics finns det inget begrepp om processminne , separat från minnet som används för att lagra mappade filer, som Unix har. Allt minne i systemet är en del av något segment som visas i filsystemet ; detta inkluderar processens tillfälliga skrapminne, dess kärnstapel, etc.
mmap()
En nackdel med detta var att segmentens storlek var begränsad till 256 kiloword , drygt 1 MB . Detta berodde på den speciella hårdvaruarkitekturen för de maskiner som Multics körde, med en 36-bitars ordstorlek och indexregister (används för att adressera inom segment) på hälften av den storleken (18 bitar). Extra kod måste användas för att arbeta på filer som är större än så kallade multisegmentfiler. Under de dagar då en megabyte minne var oöverkomligt dyrt, och före stora databaser och senare enorm bitmappsgrafik , möttes denna gräns sällan.
En annan stor ny idé med Multics var dynamisk länkning , där en löpande process kan begära att andra segment läggs till i adressutrymmet, segment som kan innehålla kod som den sedan kan köra. Detta gjorde att applikationer automatiskt kunde använda den senaste versionen av alla externa rutiner som de kallade, eftersom dessa rutiner hölls i andra segment, som endast dynamiskt länkades när en process först försökte starta körningen i dem. Eftersom olika processer kan använda olika sökregler kan olika användare automatiskt använda olika versioner av externa rutiner. Lika viktigt är att med lämpliga inställningar på Multics säkerhetsanläggningar kan koden i det andra segmentet sedan få åtkomst till datastrukturer som upprätthålls i en annan process.
Således, för att interagera med en applikation som delvis körs som en demon (i en annan process), utförde en användares process helt enkelt en normal proceduranropsinstruktion till ett kodsegment som den dynamiskt hade länkat till (ett kodsegment som genomförde en operation som är associerad med demonen). Koden i det segmentet kan sedan ändra data som underhålls och används i demonen. När åtgärden som var nödvändig för att påbörja begäran slutfördes, returnerade en enkel procedurreturinstruktion kontrollen över användarens process till användarens kod.
Multics stödde också extremt aggressiv onlinekonfiguration : centrala processorenheter , minnesbanker, hårddiskar etc. kunde läggas till och tas bort medan systemet fortsatte att fungera. På MIT-systemet, där den mest tidiga mjukvaruutvecklingen gjordes, var det vanligt att dela multiprocessorsystemet i två separata system under lediga timmar genom att gradvis ta bort tillräckligt med komponenter för att bilda ett andra fungerande system, så att resten fortfarande kör originalet loggat -in användare. Test av systemprogramvaruutveckling kan göras på det andra systemet, sedan läggs komponenterna i det andra systemet tillbaka till huvudanvändarsystemet, utan att någonsin behöva stänga av det. Multics stöder flera processorer; det var ett av de tidigaste multiprocessorsystemen.
Multics var det första stora operativsystemet som från början var utformat som ett säkert system . Trots detta bröt man in på tidiga versioner av Multics upprepade gånger. Detta ledde till ytterligare arbete som gjorde systemet mycket säkrare och förinställda moderna säkerhetstekniker . Inbrott blev mycket sällsynta när den andra generationens hårdvarubas antogs; den hade hårdvarusupport för ringorienterad säkerhet , en förädling på flera nivåer av konceptet master-läge . Ett tigerlagsprojekt från ett amerikanskt flygvapen testade Multics säkerhet 1973 under kodordet ZARF. Den 28 maj 1997 avklassificerade American National Security Agency denna användning av kodordet ZARF.
Multics var det första operativsystemet för att tillhandahålla ett hierarkiskt filsystem , och filnamn kan ha nästan godtycklig längd och syntax. En given fil eller katalog kan ha flera namn (vanligtvis en lång och kort form), och symboliska länkar mellan kataloger stöds också. Multics var först med att använda den nu standard begreppet per- process travar i kärnan , med en separat stack för varje säkerhetsring. Det var också den första som fick en kommandoprocessor implementerad som vanlig användarkod - en idé som senare användes i Unix -skalet . Det var också en av de första som skrevs på ett språk på hög nivå (Multics PL/I ), efter Burroughs MCP- system skrivet i ALGOL .
Utplaceringen av Multics i säkra datormiljöer stimulerade också utvecklingen av innovativa stödprogram. År 1975 utvecklade Morrie Gasser från MITER Corporation en uttalbar slumpmässig ordgenerator för att hantera lösenordskrav för installationer som Air Force Data Services Center (AFDSC) som behandlar sekretessbelagd information. För att undvika gissningsbara lösenord beslutade AFDSC att tilldela lösenord men drog slutsatsen att den manuella tilldelningen krävde för mycket administrativ kostnad. Således undersöktes en slumpmässig ordgenerator och utvecklades sedan i PL1. I stället för att baseras på fonem använde systemet fonemiska segment (andra ordningens approximationer av engelska) och andra regler för att förbättra uttalbarhet och slumpmässighet, vilket statistiskt modellerades mot andra tillvägagångssätt. En ättling till denna generator lades till Multics under Project Guardian.
Projekthistoria
År 1964 utvecklades Multics inledningsvis för GE-645 stordator, ett 36-bitars system. GE: s datorverksamhet, inklusive Multics, övertogs av Honeywell 1970; runt 1973 stöddes Multics på Honeywell 6180 -maskiner , som inkluderade säkerhetsförbättringar inklusive hårdvarustöd för skyddsringar .
Bell Labs drog sig ur projektet 1969; några av de människor som hade arbetat med det där fortsatte med att skapa Unix -systemet. Multics -utvecklingen fortsatte på MIT och General Electric.
Honeywell fortsatte systemutvecklingen fram till 1985. Cirka 80 miljarder platser installerades vid universitet, industri och myndigheter. Det franska universitetssystemet hade flera installationer i början av 1980 -talet. Efter att Honeywell slutade stödja Multics migrerade användare till andra system som Unix.
1985 utfärdades Multics certifiering som ett säkert operativsystem på B2 -nivå med hjälp av Trusted Computer System Evaluation Criteria från National Computer Security Center (NCSC), en division av NSA , det första operativsystemet som utvärderats till denna nivå.
Multics distribuerades från 1975 till 2000 av Groupe Bull i Europa och av Bull HN Information Systems Inc. i USA. 2006 släppte Bull SAS källkoden för Multics -versionerna MR10.2, MR11.0, MR12.0, MR12.1, MR12.2, MR12.3, MR12.4 och MR12.5 under en gratis mjukvarulicens .
Den senast kända Multics installation körs inbyggt på Honeywell hårdvara stängdes den 30 oktober 2000 vid den kanadensiska Department of National Defense i Halifax, Nova Scotia, Kanada.
Nuvarande status
2006 släppte Bull HN källkoden för MR12.5, den sista Multics -versionen 1992, till MIT. Det mesta av systemet är nu tillgängligt som gratis programvara med undantag för några valfria delar som TCP/IP .
2014 kördes Multics framgångsrikt på nuvarande hårdvara med hjälp av en emulator. 1.0 -versionen av emulatorn är nu tillgänglig. Release 12.6f of Multics följer med 1.0 -versionen av emulatorn och lägger till några nya funktioner, inklusive kommandoradsåterkallelse och redigering med videosystemet.
Kommandon
Följande är en lista över program och kommandon för vanliga datoruppgifter som stöds av kommandoradsgränssnittet Multics .
Retrospektiva observationer
Peter H. Salus , författare till en bok som täcker Unix tidiga år, uttalade en ståndpunkt: "Med Multics försökte de ha ett mycket mer mångsidigt och flexibelt operativsystem, och det misslyckades oerhört". Denna position har emellertid blivit allmänt diskrediterad i datorsamhället eftersom många av Multics tekniska innovationer används i moderna kommersiella datorsystem.
Den permanent bosatta kärnan i Multics, ett system som på sin tid ansågs vara för stor och komplex, var bara 135 KB kod. Som jämförelse kan ett Linux -system 2007 ha upptagit 18 MB. Den första MIT GE-645 hade 512 kiloword minne (2 MiB), en verkligt enorm mängd vid den tiden, och kärnan använde bara en måttlig del av Multics huvudminne.
Hela systemet, inklusive operativsystemet och den komplexa PL/1 -kompilatorn , användarkommandon och subrutinbibliotek, bestod av cirka 1500 källmoduler. Dessa var i genomsnitt ungefär 200 rader med källkod vardera och sammanställdes för att producera totalt ungefär 4,5 MiB förfarandekod, som var ganska stor enligt dagens standarder.
Multicompilatorer optimerade i allmänhet mer för koddensitet än CPU-prestanda, till exempel med små underrutiner som kallas operatörer för korta standardkodsekvenser, vilket gör jämförelse av objektkodstorlek med moderna system mindre användbar. Hög koddensitet var ett bra optimeringsval för Multics som ett fleranvändarsystem med dyrt huvudminne.
Under sin kommersiella produkthistoria kommenterades det ofta internt att Honeywell Information Systems (HIS) (senare Honeywell-Bull) sälj- och marknadsföringspersonal var mer bekant med och bekväm att göra affärscase för Honeywells andra datorlinje, DPS 6 som kör GCOS . DPS-6 och GCOS var en välrenommerad och pålitlig plattform för lager, redovisning, ordbehandling och vertikala marknadsapplikationer, till exempel bank, där den hade en betydande kundbas. Däremot var den fulla potentialen i Multics flexibilitet för även vardagliga uppgifter inte lätt att förstå under den tiden och dess funktioner var i allmänhet utanför kompetensuppsättningen för samtida affärsanalytiker. Omfattningen av denna koppling konkretiserades av en anekdot förmedlad av Paul Stachour, CNO/CSC:
När American Telephone and Telegraph bytte namn till just AT&T 1983, kom en personal från Honeywells juridiska avdelning upp och frågade en multiker om han kunde ordna att få namnet ändrat i alla deras datoriserade dokument. På frågan när processen kunde slutföras svarade Multician: "Det är klart." Personalen upprepade att han behövde uppdatera hundratals kanske tusentals dokument. Multician förklarade att han hade utfört en global sökning och ersättare när personalens talare var, och uppgiften var faktiskt klar.
Påverkan på andra projekt
Unix
Utformningen och funktionerna hos Multics påverkade starkt Unix -operativsystemet, som ursprungligen skrevs av två Multics -programmerare, Ken Thompson och Dennis Ritchie . Ytligt inflytande av Multics på Unix är uppenbart på många områden, inklusive namngivning av vissa kommandon. Men den interna designfilosofin var ganska annorlunda, med fokus på att hålla systemet litet och enkelt, och så korrigera vissa uppfattade brister hos Multics på grund av dess höga resurskrav på tidens begränsade datorhårdvara.
Namnet Unix (ursprungligen Unics ) är i sig en ordlek på Multics . Den U i Unix ryktas stå uniplexed i motsats till den multiplexas av Multics ytterligare understryker designers avslag av Multics' komplexitet till förmån för en mer rättfram och fungerande strategi för mindre datorer. (Garfinkel och Abelson citerar ett alternativt ursprung: Peter Neumann på Bell Labs, som såg en demonstration av prototypen, föreslog ordnamnet UNICS - uttalat " eunuchs " - som en "kastrerad Multics", även om Dennis Ritchie sägs ha förnekat detta. )
Ken Thompson, i en transkriberad 2007 -intervju med Peter Seibel, hänvisar till Multics som "överdesignat och överbyggt och över allt. Det var nästan oanvändbart. De [Massachusetts Institute of Technology] hävdar fortfarande att det är en monströs framgång, men det var helt klart inte ". På Multics inflytande på Unix konstaterade Thompson att "de saker som jag gillade tillräckligt (om Multics) att faktiskt ta var det hierarkiska filsystemet och skalet - en separat process som du kan ersätta med någon annan process".
Andra operativsystem
Den Prime Computer operativsystem, PRIMOS , kallades "Multics i en skokartong" av William Poduska , en av grundarna av företaget. Poduska gick senare vidare till grundade Apollo Computer , vars AEGIS- och senare domän-/OS -operativsystem, ibland kallade "Multics in a matchbox", utökade Multics -designen till en mycket nätverksmiljö för grafisk arbetsstation.
Den Stratus VOS operativsystem Stratus Computer (nu Stratus Technologies ) var mycket starkt påverkad av Multics, och båda de yttre användargränssnitt och inre struktur bära många nära likheter med den äldre projektet. Hög tillförlitlighet, tillgänglighet och säkerhetsfunktioner hos Multics utökades i Stratus VOS för att stödja en ny rad av feltoleranta datorsystem som stöder säker och pålitlig transaktionsbehandling . Stratus VOS är den mest direkt relaterade ättlingen till Multics som fortfarande är i aktiv utveckling och produktionsanvändning idag.
Multics skyddsarkitektur, som begränsar kodens förmåga på en nivå i systemet att komma åt resurser på en annan, antogs som grund för säkerhetsfunktionerna i ICL : s VME -operativsystem.
Se även
- Tidsdelande systemutveckling
- Peter J. Denning
- Jack B. Dennis
- Robert Fano - chef för Project MAC på MIT (1963–1968)
- Robert M. Graham (datavetare)
- JCR Licklider - chef för Project MAC på MIT (1968–1971)
- Peter G. Neumann
- Elliott Organick
- Louis Pouzin - introducerade termen skal för kommandospråket som används i Multics
- Jerome H. Saltzer
- Roger R. Schell
- Glenda Schroeder - genomfört den första kommandoraden användargränssnitt skal och föreslog det första e-postsystem med Pouzin och Crisman
- Victor A. Vyssotsky
Referenser
Vidare läsning
Litteraturen innehåller ett stort antal artiklar om Multics och olika komponenter i den; en ganska komplett lista finns tillgänglig på sidan Multics Bibliography och på en andra, kortare 1994 Multics bibliografi (textformat). De viktigaste och/eller informativaste listas nedan.
- FJ Corbató , VA Vyssotsky , Introduction and Overview of the Multics System ( AFIPS 1965) är en bra introduktion till systemet.
- FJ Corbató , CT Clingen, JH Saltzer , Multics - The First Seven Years (AFIPS, 1972) är en utmärkt recension, skriven efter en betydande tids användning och förbättring jämfört med de första insatserna.
- JJ Donovan, S. Madnick , operativsystem , är en grundläggande läsning om operativsystem.
- JJ Donovan, Systemprogrammering , är en bra introduktion till systemprogrammering och operativsystem.
Tekniska detaljer
- Jerome H. Saltzer , Introduction to Multics (MIT Project MAC, 1974) är en betydligt längre introduktion till systemet, inriktad på verkliga användare.
- Elliott I. Organick , The Multics System: An Examination of Its Structure (MIT Press, 1972) är standardarbetet på systemet, även om det dokumenterar en tidig version, och vissa funktioner som beskrivs däri har aldrig dykt upp i det faktiska systemet.
- VA Vyssotsky , FJ Corbató , RM Graham, Structure of the Multics Supervisor (AFIPS 1965) beskriver den grundläggande interna strukturen för Multics -kärnan.
- Jerome H. Saltzer , Traffic Control in a Multiplexed Computer System (MIT Project MAC, juni 1966) är den ursprungliga beskrivningen av tanken på att byta kärnstaplar; en av de klassiska datavetenskapliga artiklarna.
- RC Daley, PG Neumann , A General Purpose File System for Secondary Storage (AFIPS, 1965) beskriver filsystemet, inklusive åtkomstkontroll och säkerhetskopieringsmekanismer.
- RJ Feiertag, EI Organick , The Multics Input/Output System . Beskriver de lägre nivåerna av I/O -implementeringen.
- A. Bensoussan, CT Clingen, RC Daley, The Multics Virtual Memory: Concepts and Design , ( ACM SOSP , 1969) beskriver Multics minnessystem i detalj.
- Paul Green , Multics Virtual Memory-Tutorial and Reflections är en djupgående titt på Multics lagringssystem.
- Roger R. Schell , dynamisk omkonfiguration i ett modulärt datorsystem (MIT Project MAC, 1971) beskriver omkonfigureringsmekanismerna.
säkerhet
- Paul A. Karger, Roger R. Schell , Multics Security Evaluation: Vulnerability Analysis (Air Force Electronic Systems Division, 1974) beskriver de klassiska attackerna mot Multics säkerhet av ett " tigerteam ".
- Jerome H. Saltzer , Michael D. Schroeder , The Protection of Information in Computer Systems (Proceedings of the IEEE , September 1975) beskriver grunderna bakom den första omgången av säkerhetsuppgraderingar; ännu ett klassiskt papper.
- MD Schroeder , DD Clark, JH Saltzer , DH Wells. Slutrapport från Multics Kernel Design Project (MIT LCS, 1978) beskriver de säkerhetsuppgraderingar som har lagts till för att ge en ännu bättre version.
- Paul A. Karger, Roger R. Schell , Trettio år senare: Lessons from the Multics Security Evaluation (IBM, 2002) är en intressant retrospektiv som jämför verklig utplacerad säkerhet i dagens fientliga miljö med vad som visades sig vara möjligt för decennier sedan. Den drar slutsatsen att Multics erbjöd betydligt starkare säkerhet än de flesta system kommersiellt tillgängliga 2002.
externa länkar
-
multicians.org är en omfattande webbplats med mycket material
- Multipapper på nätet
- Multic ordlista
- Myter diskuterar många myter om Multics i detalj, inklusive myterna om att det misslyckades, att det var stort och långsamt, samt några begripliga missuppfattningar
- Multics säkerhet
- Unix och Multics
- Allmän information och vanliga frågor om Multics Inkluderar omfattande översikt över andra mjukvarusystem som påverkas av Multics
- Honeywell, Inc., MULTICS -poster, 1965–1982 . Charles Babbage Institute , University of Minnesota. Multics -utvecklingsrekord inkluderar den andra MULTICS System Programmerers Manual; MULTICS Tekniska bulletiner som beskriver procedurer, applikationer och problem, särskilt när det gäller säkerhet; och returnerade "Begäran om kommentarer formulär" som innehåller tekniska papper och avhandling förslag.
- Officiellt källkodarkiv på MIT
- Länksida till olika Multics-information på Library of Congress webbarkiv (arkiverad 2001-11-30)
- Multics repository på Stratus Computer
- Multics på Universitaet Mainz
- Aktivt projekt för att efterlikna Honeywell dps-8/m Multics CPU
- Olika skannade Multics manualer
- Multicians.org och History of Operating Systems , en kritisk granskning av Multicians.org, plus en kapselhistoria av Multics.