Multics - Multics

Multics
Multics logo.gif
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 ; 52 år sedan ( 1969 )
Senaste släppningen 12.7 / 28 juli 2021 ; 2 månader sedan ( 2021-07-28 )
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 .multicians .org

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

Image
Multics Commands referenshandbok

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

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.

Tekniska detaljer

säkerhet

externa länkar