Kompatibelt tidsdelningssystem
Utvecklare | MIT Computation Center , Project MAC |
---|---|
Skrivet i | FAP-montering , MAD |
Arbetstillstånd | Utgått, simulator tillgänglig |
Källmodell | Öppen källa |
Initial release | 1961 |
Marknadsföringsmål | Högskolor och universitet |
Tillgänglig i | engelsk |
Plattformar | IBM 7090 , IBM 7094 |
Typ av kärna | Monolitisk , skyddad |
Standardanvändargränssnitt _ |
Kommandoradsgränssnitt |
Licens | [ data okänd/saknas ] |
Efterträdde av | Multics |
Officiell hemsida |
Historik för IBM stordatoroperativsystem |
---|
Det kompatibla tidsdelningssystemet ( CTSS ) var det första operativsystemet för tidsdelning för allmänna ändamål . Kompatibel tidsdelning hänvisade till tidsdelning som var kompatibel med batchbearbetning ; det kan erbjuda både tidsdelning och batchbearbetning samtidigt.
CTSS utvecklades vid MIT Computation Center ("Comp Center"). CTSS demonstrerades första gången på MIT:s modifierade IBM 709 i november 1961. Hårdvaran ersattes med en modifierad IBM 7090 1962 och senare en modifierad IBM 7094 kallad "blå maskinen" för att skilja den från Project MAC CTSS IBM 7094. Rutintjänst till Användare av MIT Comp Center började sommaren 1963 och drevs där fram till 1968.
En andra utplacering av CTSS på en separat IBM 7094 som togs emot i oktober 1963 ("den röda maskinen") användes tidigt i Project MAC fram till 1969 då den röda maskinen flyttades till Information Processing Center och kördes till 20 juli 1973 CTSS körde endast på dessa två maskiner, men det fanns fjärranvändare av CTSS utanför MIT, inklusive sådana i Kalifornien, Sydamerika, University of Edinburgh och University of Oxford .
Historia
John Backus sa i sommarsessionen 1954 vid MIT att "Genom tidsdelning kan en stor dator användas som flera små; det skulle behöva finnas en lässtation för varje användare". Datorer på den tiden, som IBM 704 , var inte tillräckligt kraftfulla för att implementera ett sådant system, men i slutet av 1958 lade MIT:s Computation Center ändå till en skrivmaskinsinmatning till sin 704 med avsikten att en programmerare eller operatör kunde "få ytterligare svar från maskinen på tidsdelningsbasis med andra program som använder maskinen samtidigt".
I juni 1959 publicerade Christopher Strachey en artikel "Time Sharing in Large Fast Computers" vid UNESCOs informationsbehandlingskonferens i Paris, där han föreställde sig en programmerare som skulle felsöka ett program på en konsol (som en teletyp ) ansluten till datorn, medan ett annat program körde i datorn samtidigt. Att felsöka program var ett viktigt problem på den tiden, för med batchbearbetning tog det sedan ofta en dag från att man skickade in en ändrad kod, till att man fick resultatet. John McCarthy skrev ett memo om det på MIT, varefter en preliminär studiekommitté och en arbetskommitté inrättades vid MIT, för att utveckla tidsdelning. Kommittéerna förutsåg att många användare skulle använda datorn samtidigt, bestämde detaljerna för att implementera ett sådant system vid MIT och startade utvecklingen av systemet.
Experimentellt tidsdelningssystem
I juli 1961 hade några kommandon för tidsdelning blivit operativa på Computation Centers IBM 709, och i november 1961 demonstrerade Fernando J. Corbató vid MIT vad som kallades Experimental Time-Sharing System . Den 3 maj 1962 publicerade FJ Corbató, MM Daggett och RC Daley ett papper om det systemet vid Spring Joint Computer Conference . Robert C. Daley, Peter R. Bos och minst 6 andra programmerare implementerade operativsystemet, delvis baserat på Fortran Monitor System .
Systemet använde en IBM 7090 , modifierad av Herbert M. Teager, med ytterligare 3 Flexowriters för användarkonsoler, och kanske en timer . Var och en av de 3 användarna hade två bandenheter , en för användarens filkatalog och en för att dumpa kärnan (program i minnet). Det fanns också en bandenhet för systemkommandon, det fanns inga diskenheter. Minnet ( operativsystem). Indata från konsolerna skrevs till buffertarna i supervisorn, genom avbrott , och när ett returtecken mottogs gavs kontrollen till supervisorn, som dumpade den löpande koden till bandet och bestämde vad som skulle köras härnäst. Konsolkommandona som implementerades vid den tiden var inloggning, logga ut, input, edit, fap, mad, madtrn, load, use, start, skippm, listf, printf, xdump och xundump . [ citat behövs ]
Detta blev den första versionen av det kompatibla tidsdelningssystemet. Detta var tydligen den första offentliga demonstrationen någonsin av tidsdelning ; det finns andra påståenden, men de hänvisar till system för speciella ändamål, eller utan några kända artiklar publicerade. "Kompatibiliteten" för CTSS var med bakgrundsjobb som kördes på samma dator, som i allmänhet använde mer av beräkningsresurserna än tidsdelningsfunktionerna.
Ansökningar
DOTSYS och BRAILLEMBOSS
Den första versionen av DOTSYS punktskriftsöversättningsprogram kördes på CTSS och kunde matas ut till en BRAILLEMBOSS punktskriftsskrivare. DOTSYS på CTSS demonstrerades första gången den 18 augusti 1966 som en del av en förstudie där telesetterband, i form av nyheter, konverterades till grad 2 punktskrift. Följande månad demonstrerades framgångsrikt möjligheten att konvertera läroboksinformation på fjärrskrivarband till felfri grad 2 punktskrift. Eftersom MIT CTSS var ett akademiskt system, ett forskningsfordon och inte ett system för kommersiell datoranvändning, användes två år senare en version av DOTSYS utan CTSS-beroenden för mjukvaruportabilitet på en IBM 709 på American Printing House for the Blind för att skriva ut första punktskriftsupplagan av en bok som producerats från teleskrivare, bara några veckor efter den bläcktryckta versionen. Året därpå visades på CTSS en demonstration av utskrift av matematiska tabeller i punktskrift. Ett kort FORTRAN II-program skrevs för att producera en omvandlingstabell från tum till millimeter i punktskrift via punktskriftsskrivaren BRAILLEMBOSS.
Intrex
Intrex Retrieval System körde på CTSS. Intrex var ett experimentellt maskinorienterat bibliografiskt bibliografiskt lagrings- och hämtningssystem i pilotmodell med en databas som lagrade en katalog med ungefär 15 000 tidskriftsartiklar. Den användes för att utveckla och testa koncept för biblioteksautomatisering. En utplacering av tre BRISC CRT- konsoler för testning vid MIT Engineering Library visade att det föredrogs framför två andra system, ARDS och DATEL.
Funktioner
- Den ursprungliga ELIZA körde på CTSS.
- CTSS var det första datorsystemet som implementerade lösenordsinloggning .
- CTSS hade en av de första datoriserade textredigerings- och formateringsverktygen, kallad TYPSET och RUNOFF (efterföljarna till MEMO, MODIFY och DITTO).
- CTSS hade en av de första implementeringarna för meddelandehantering mellan användare, banbrytande elektronisk post .
- CTSS hade ett av de första snabbmeddelandesystemen som liknar write .
- MIT Computation Center-medarbetaren Louis Pouzin skapade för CTSS ett kommando som heter RUNCOM , som körde en lista med kommandon som finns i en fil. RUNCOM tillhandahöll också parametersubstitution. Han skapade senare en design för Multics -skalet som implementerades av Glenda Schroeder som i sin tur inspirerade Unix- skalskript .
- CTSS hade en implementering av textredigeraren QED , föregångaren till ed , vi och vim , med reguljära uttryck tillagda av Ken Thompson .
Genomförande
Kärna
CTSS använde en modifierad IBM 7090 stordator som hade två 32 768 (32K) 36-bitars- ordbanker av kärnminne istället för standardkonfigurationen som bara ger en. En bank var reserverad för övervakningsprogrammet för tidsdelning, den andra för användarprogram. CTSS hade en kärna i skyddat läge, arbetsledarens funktioner i A-kärnan (minnesbank A) kunde endast anropas genom programvaruavbrott, som i moderna operativsystem. Att orsaka minnesskyddsavbrott användes för programvaruavbrott. Processorallokeringsschemaläggning med en kvanttidsenhet 200 ms, styrdes av en återkopplingskö med flera nivåer . Den hade också en del speciell minneshanteringshårdvara, ett klockavbrott och möjligheten att fånga vissa instruktioner.
Arbetsledare subrutiner
- RDFLXA – Läs en ingångsrad från konsolen
- WRFLX – Skriv en utdatarad till konsolen
- DEAD – Sätt användaren i död status, utan program i minnet
- DORMNT – Sätt användaren i viloläge, med program i minnet
- GETMEM – Få storleken på minnesallokeringen
- SETMEM – Ställ in storleken på minnesallokeringen
- TSSFIL – Få tillgång till CTSS-systemfilerna på disken
- USRFIL – Byt tillbaka till användarens egen katalog
- GETBRK – Hämta instruktionsplatsräknaren vid avsluta
Programmeringsspråk
CTSS hade först bara en assembler, FAP , och en kompilator, MAD . Fortran II- kod kan också översättas till MAD-kod genom att använda MADTRN. Senare hälften av systemet skrevs i MAD. Senare fanns det andra programmeringsspråk inklusive COMIT II , LISP 1.5 och en version av ALGOL .
Filsystem
Varje användare hade sin egen katalog , och det fanns också delade kataloger för grupper av personer med samma "problemnummer". Varje fil hade två namn, det andra indikerar dess typ liksom tillägget i senare system. Till en början kunde varje fil ha ett av fyra lägen: temporär, permanent, skrivskyddad klass 1 och skrivskyddad klass 2. Lässkyddad klass 1 tillät användaren att ändra filläget. Filer kan också vara symboliskt länkade mellan kataloger. En kataloglista efter listf :
10 FILER 20 ANVÄNDA SPÅR DATUM NAMN LÄGE NR. SPÅR 5/20/63 MAIN MAD P 15 5/17/63 DPFA SYMTB P 1 5/17/63 DPFA BSS P 1 5/17/63 DPFA FAP P 2
Kringutrustning
Input-output hårdvara var mestadels standard IBM kringutrustning . Dessa inkluderade sex datakanaler som ansluter till:
- Skrivare, hålkortsläsare och stansar
- IBM 729 -bandenheter, en IBM 1301- disklagring, senare uppgraderad till en IBM 1302 , med en kapacitet på 38 miljoner ord
- Ett IBM 7320- trumminne med 186K ord som kunde ladda en 32K-ords minnesbank på en sekund (senare uppgraderat till 0,25 sekunder)
- Två anpassade höghastighets vektorgrafikskärmar
- En IBM 7750 överföringskontrollenhet som kan stödja upp till 112 teleprinterterminaler , inklusive IBM 1050 Selectrics och Model 35s . Några av terminalerna var placerade på distans, och systemet kunde nås med de offentliga Telex- och TWX- näten.
Influenser
CTSS beskrevs i ett dokument som presenterades vid 1962 Spring Joint Computer Conference och påverkade i hög grad utformningen av andra tidiga tidsdelningssystem.
Maurice Wilkes bevittnade CTSS och designen av Titan Supervisor inspirerades av det.
Dennis Ritchie skrev 1977 att UNIX kunde ses som en "modern implementering" av CTSS. Multics , som också utvecklades av Project MAC, startades på 1960-talet som en efterföljare till CTSS – och inspirerade i sin tur till utvecklingen av Unix 1969. En av de tekniska termerna som ärvts av dessa system från CTSS är daemon .
Incompatible Timesharing System (ITS), ett annat tidigt, revolutionerande och inflytelserik MIT-tidsdelningssystem, producerades av människor som inte höll med CTSS och senare Multics; namnet var en parodi på "CTSS", eftersom senare namnet "Unix" var en parodi på "Multics". CTSS och ITS filsystem har ett antal designelement gemensamma. Båda har en MFD (huvudfilkatalog) och en eller flera UFD (användarfilkataloger). Ingen av dem har kapslade kataloger (underkataloger). Båda har filnamn som består av två namn som är högst sex tecken långa. Båda stöder länkade filer.
Se även
Vidare läsning
- Fano, Robert M. (1964). "MAC-systemet: En framstegsrapport" (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . MIT Project MAC.
- Saltzer, Jerome H. (1965). "CTSS Technical Notes" (PDF) . BitSavers.Informatik.Uni-Stuttgart.de . MIT Project MAC.
- Saltzer, Jerome H. (1964). "Manuskriptskrivning och redigering" . Web.MIT.edu . MIT Computation Center.
externa länkar
- Muntlig historieintervju med John McCarthy , Charles Babbage Institute , University of Minnesota. Diskuterar datorutvecklingen vid MIT inklusive tidsdelning.
- Muntlig historieintervju med Fernando J. Corbató , Charles Babbage Institute , University of Minnesota. Diskuterar många datorutvecklingar vid MIT inklusive CTSS.
- Muntlig historieintervju med Robert M. Fano , Charles Babbage Institute , University of Minnesota. Diskuterar datorutvecklingen vid MIT inklusive CTSS.
- IBM 7094 och CTSS : personliga memoarer av Tom Van Vleck , en systemprogrammerare på CTSS
- CTSS Källversion MIT8C0 i Paul Pierces samling.
- Dave Pitts IBM 7094-stöd – Innehåller en licensfri simulator, cross assembler och länkare som kan användas för att bygga och köra CTSS.
- Richard Cornwells CTSS-källor och binärer, som körs på SIMH . Inkluderar licensfria verktyg
- CIO: 40 years of Multics, 1969-2009 : Intervju med CTSS och Multics-utvecklaren Fernando J. Corbato.
- Jerome Saltzers CTSS -bokhylla via CSAIL .