Famous last words...

Igår cyklede jeg op til TheCamp.dk for at holde mit årlige foredrag: I år handle det om noget meget lav-niveau assemblernøderi og idag begynder ferien, sådan helt officielt.

Og den begynder med anden halvdel af BSTJ vol57 issue 6, som udkom for præcis 35 år siden.

Det er ikke fordi første halvdel ikke også er interessant: The Atlanta Fiber Experiment og verdens første operationelle brug af fiberoptisk transmission var utroligt interessant at læse om for en teknologihistorisk nørd som jeg.

Men anden halvdel handler om UNIX.

Introduktionsartikelen slutter med ordene:

"UNIX is not the end of the road in operating systems innovations, but it has been a significant step that Bell Laboratories people are proud to have originated."

En i sandhed flot kandidat til "famous last words" listen.

De tog faktisk helt og aldeles fejl: UNIX viste sig at være det sidste ord i operativsystemer.

Fra pSOS til VxWorks, fra VM til zOS fra MS-DOS til Windows, har de resterende operativsystemer allesammen konvergeret imod UNIX.

De operativsystemer der ikke ville, eller ikke kunne, absorbere UNIX ideen er alle borte: RDOS, VMS, PRIMOS, GCOS, AOS, COS, DOS, DEOS, listen er næsten lige så lang som listen af computerproducenter der ikke er her mere.

UNIX var godt tænkt, Ken, Dennis og Brian ramte plet og lige fra starten er historien fyldt med førstehåndsberetninger om hvor smitsomt UNIX' tankegods var og hvor underlige ting folk gjorde for at få adgang til UNIX, fra illegale downloads til piratkopiering af Lions berømte kommenterede udgave.

Ikke at vejen fra 35 år siden til idag er en lige linie, det er den langt fra, men trods fjendtlige angreb, fra DEC til SCO, og inkompetence, fra USL til OSF, gik det fremad, i store og små ryk og UNIX blev, trods rygter og forudsigelser om det modsatte, hele tiden stærkere.

Hvor destruktiv og altødelæggende UNIX idag er i sin fremfærd så vi senest på markedet for mobiltelefoner: Mobilkongerne, Nokia og RIM, værgede sig ved at putte UNIX i en mobiltelefon og deres fest sluttede i samme øjeblik Apple gjorde det.

For 13 år siden holdt Rob Pike, hovedmanden bag "UNIX++" operativsystemet Plan/9, et foredrag under titlen "Operating System Reasearch is Irrelevant" og hans "famous last words" ramte plet:

"The world has decided how it wants computers to be."

Verden vil have UNIX.

phk

Kommentarer (28)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Henrik Kramshøj Blogger

Med fare for at det bliver rygklapperi, men +1 amen, enig, Unix er mit operativsystem, og har været det siden 1990'erne.

Jeg er på Thecamp og tak for et godt foredrag BTW, en uge hvor vi roder med mange ting og min lister over ting jeg arbejder med er næsten 100% inspireret eller kører Unix.

Eksempelvis

  • Mac OS X laptoppen, OpenBSD laptoppen
  • Android Nexus 7
  • Juniper EX2200-C og SRX220 - FreeBSD, og den skriver FreeBSD og det er med i deres certificeringstest
  • Beagleboard black, med Ångstrøm Linux og nu med Ubuntu også
  • Raspberry Pis med Debian
  • Diverse andre systemer med Kali Linux (nye udgave af BackTrack Linux)
  • Min telefon Nokia N9
  • Samsung skærmen har Ethernet og er vist også en Linux, har ikke undersøgt min model, men andre Samsung kører Linux

Dvs Unix varianterne understøtter hele min "computing experience" og det er fantastisk fra små til store systemer at man har samme kommandoer, samme virkemåde, kan næsten direkte kompilere mangt og meget.

Tror det eneste som ikke er Unix i min værktøjskasse er switche - hvor seneste Dell 8100 series OGSÅ kører Linux.

Unix rules, ikke fordi der er en marketing organisation, men fordi det virker fra små til store systemer.

  • 8
  • 0
Jesper Louis Andersen

Plan9 er iøvrigt sindsygt interessant på mange punkter. Det var pissesynd at det ikke lige var kommet hurtigt nok til at det kunne have overtaget, for kors hvor er det dog skruet meget bedre sammen end UNIX. Men sådan skulle det ikke gå og nu lever mange af de ideer ikke rigtigt mere.

lidt influence kan du dog se i Google Go, hvis sprog har taget nogen af de gode ting til sig fra deres eksperimenter om hvordan #include skal bruges i C m.m.

  • 1
  • 0
Flemming Sørensen

Jeg håber da inderligt, at du tager fejl. Jeg håber sandelig ikke, at UNIX er enden, at det virkelig viser sig at være "det sidste ord i operativsystemer". Ikke fordi jeg har noget imod UNIX systemerne, men fordi jeg gerne vil tro, at vi en dag kommer med noget der er endnu bedre.

  • 2
  • 1
Michael Deichmann

Flemming det handler om at de helt basale karekteristika er valgt og valget er faldet på den måde UNIX gør tingene.
Som PHK er inde på - så er der ting der kan finjusteres og tunes - men grundarkitekturen er den samme.

Det er sådan set ligesom med biler. Siden WWII er der ikke kommet noget nyt blivende udover McPherson ophængene. Alt andet var kendt og opfundet før 1940 og WWII og tiden siden har blot rafineret og forbedret de kendte komponenter. Siden 1990'erne ved at digitalisere og elektronificere tidligere mekaniske komponenter.

(Wankelmotoren er også kommet til men den er ligesom ikkerigtigt slået an vel?)

  • 0
  • 0
Troels Henriksen

Det er værd at huske at moderne Unix har taget mange af Plan 9's forbedringer til sig - især den udbredte brug af virtuelle filsystemer (moderne /proc på Linux og FreeBSD, og /sys for eksempel) stammer ret tydeligt fra Plan 9.

Desværre er der andre ting, vi ikke har fået med: Sikkerhedsmodellen, og den decentraliserede struktur. Og vi bruger stadigvæk ikke nok virtuelle filsystemer! Sidstnævnte forstår jeg vitterligt ikke - det er utroligt meget rarere end specialtilpassede systemkald og komplekse socket-protokoller, og er mere i Unix's ånd end de egentlige Unix-systemer.

Jeg er dog lidt uenig i udtalelsen "verden vil have Unix" - jeg finder det langt mere sandsynligt at Unix blot er det system, der har de bedste overlevelseskarakteristika, end det system der ville være "bedst" (man kan sige at Unix måske er et lokalt optimum), og nu har så meget fremdrift, at det ikke er økonomisk realistisk at stoppe det. Jeg vil opfordre til både at læse "Worse is better" og "Unix-haters handbook" for uddybning, omend sidstnævnte er forældet på mange måder.

  • 0
  • 0
Poul-Henning Kamp Blogger

Det er værd at huske at moderne Unix har taget mange af Plan 9's forbedringer til sig - især den udbredte brug af virtuelle filsystemer (moderne /proc på Linux og FreeBSD, og /sys for eksempel) stammer ret tydeligt fra Plan 9.

Du har ikke ret.

SunOS var det første (UNIX-)OS med egentlige virtuelle filsystemer, men det var en temmelig NFS-specifik implementering og der var meget galt med den, både arkitektonisk og performancemæssigt.

SunOS's "vfs" ide er et af startskuddene til Plan/9 og ligeledes til John Heidemann's phd-afhandling om "Stackable VFS"

Af disse to er der ikke megen tvivl om at Rob Pike ramte mere plet end John Heidemann, hvis VFS som forskningsprojekt beset var banebrydende, men som en anvendelig model for filsystemer i produktion var umuligt at arbejde med.

Problemerne var ikke kun nogle John skabte, eller rettere: De var i stort omfang problemer John ikke løste, men bare kludgede uden om og hen over, fordi de ikke var relevante for hans phd-arbejde.

Derfor endte hans kode med at blive brugt som et trivielt VFS der gav adgang til andre filsystemstyper, alt det med "stacking" var reelt ubrugeligt og ingen fixede det. Til sidst var det så havareret at jeg fjernede alt andet end det basale VFS fra FreeBSD.

Rob Pike tog derimod fat fra ondets rod, designede Plan/9 fra bunden af til at have mount-points some "first class abstractions" og derfor er der ingen steder VFS virker så godt som i Plan9.

Jeg er dog ikke sikker på at Plan9's måde at bruge mountpoints på er særlig anvendelig på andet end enkelt-bruger maskiner og jeg er ret sikker på at det en stor grund til at plan9 aldrig spredte sig til universiteterne: Det er et sandt helvede at være root på plan9 med fjendtlige brugere.

  • 0
  • 0
Morten Bøgh

IBM's mainframe operativsystem zOS er ikke UNIX!

zOS systemet 'rummer' UNIX men hvor fx Apple OS er et UNIX system hvorpå der er bygget noget andet og mere, så er zOS et eget operativsystem hvori der er er bygget en UNIX implementering. Forskellen ville være teoretisk og uinteressant hvis alle services i zOS kunne nås via UNIX-kommandoer, men det kan de altså ikke. zOS har et eget filsystem, et ikke-hierarkisk system, med en unit-of-work inddeling i den enkelte fil. På grund af dise to features er mainframe-filer svært tilgængelige via UNIX-læsning - de kan fx ikke læses og processes via normale UNIX-utilities.

Et UNIX filsystem er et hierarki af directories som rummer en række filer som set fra operativsystemet er en samling tegn eller bits; en strøm af bits, en pipeline.

Mainframe-filsystemet er ældre end UNIX, det udspringer af at IBM tilbage i 1800-tallet var et firma som byggede på hulkort. En hulkort-fil er en bunke pap-kort med max 80 tegn på hvert kort. IBM fortsatte naturligt nok med hulkortene da firmaet kastede sig over elektronisk databehandling i 1950'erne. En hulkortlæser omsatte til en strøm af bits ind i maskinen. Hvis der var 'læsefejl' på et hulkort, stoppede hulkortlæseren meget brat, og man kunne så komme videre ved at reparere eller erstatte det slidte hulkort og genstarte hulkortlæseren. Op gennem 1960'erne blev hulkort erstattet af magnetbånd, og grænsen på 80 tegn pr unit-of-work (kaldet record-størrelsen) kom op på 32.000 tegn. Dvs at en forretningstransaktion, fx en kontoajourføring i en bank nu kunne rummes i én record. Hvis man (på Youtube) ser en magnetbånds-station i arbejde, bemærker man at læsning eller skrivning sker meget stødvis: maskinen læser nogle meter af båndet, og stopper så brat, og fortsætter læsning et øjeblik senere. Grunden til at båndspolerne stoppede er ikke bare at maskinerne var så langsomme - grunden er også at operativsystemet bygger på en unit-of-work tankegang, hvor man først fortsætter arbejdet (fx kontoajourføringen) når alle dele af systemet har kvitteret for at den foregående unit-of-work er processet ok. Hvis sådan kvittering ikke opnås, stopper systemet, ruller alt tilbage til forrige ok-punkt, og operatøren griber ind, renser skrivehovedet på master-tapen, eller programmøren retter den programfejl som gjorde at maskinen gik i loop. Mens man fejlsøger, arbejder maskinen med andre ting. Når fejlen er udbedret, gen-startes 'kørslen' fra det punkt på båndet som man succesfuldt havde processet. Når jobbet så var kørt, blev båndene placeret på reoler i et båndbibliotek. Et 'katalog' på edb-maskinen holder styr på hvilke filer der ligger på hvilke fysiske tapes. Dvs kataloget kan være hierarkisk, men filsystemet bestod af diskrete filer (dvs. magnetbånd).

Hvis alt dette bare var historie, kunne denne verden gerne konvergere mod UNIX og mod at alle filsystemer er hierarkiske, og alle filer er ustrukturerede bit-containere. Men sådan er det ikke gået, mainframe-filsystemet har stadig ovennævnte karakteristiska, selvom den sidste båndrulle er skrottet for længst. Grunden til at systemet ikke er blevet til historie er at det er praktisk. Mainframe-filsystemets automatiske arkiveringssystemer har en fleksibilitet som ikke kunne opnås med et hierarkisk filsystem. Og mainframe bygger på en unit-of-work tankegang, dvs. på at muliggøre 24 x 7 online opdatering samtidig med at fil-ajourføringer af registret håndteres i baggrunden.

Alt kan lade sig gøre i alle operativsystemer, og SAP (især) og Oracle og DB2 har gjort meget for at gøre valget af operativsystem transparent, således at fx en SAP-applikation som hidtil har kørt på mainframe uden de store problemer kan flyttes til fx en Windows platform. Men det skader aldrig at bruge et operativsystem hvor væsentlige services er dybt integrerede i stedet for at være påbygget udenpå systemet. Unit-of-work tankegang kan godt påbygges UNIX-filer, men det er ikke en del af DNA'et, og er dermed ikke blevet fintunet gennem talrige utilities som på mainframe.

Man kan gerne diskutere om zOS har en fremtid. Det er efterhånden en relativt lille verden, fx i sammenligning med hvad der kører af UNIX. Men noget tyder på at mainframes er IBM's bedste cash cow, og påstanden om at denne verdens transaktioner (bankoverførsler, VISA etc) i alt væsenligt drives af mainframe lever stadig. Dvs mainframe-branchen har ikke de store planer om at nedlægge sig selv.

  • 5
  • 0
Troels Henriksen

Ja, og det første /proc er fra 1984 (jeg læste faktisk Tom J. Killians oprindelige artikel så sent som i går, så jeg burde nok ikke have formuleret mig som jeg gjorde), men jeg synes klart at moderne FUSE-baserede filsystemer minder mere om Plan 9, end om Unix's VFS. Især er der den forskel, at det er meget nemt at lave userspace-filsystemer, hvor de fleste af de gamle Unix-filsystemer, virtuelle eller ej, ser ud til at køre i kernen. Det fungerer udmærket i moderne Linux (jeg ved ikke hvordan FUSE fungerer under andre kerner), omend CPU-forbruget typisk er en del højere end ved kerneimplementerede filsystemer.

Jeg har implementeret den slags filsystemer før, men min primære vurdering stammer fra brugeroplevelser: Det er umådeligt meget rarere at bruge SSHFS eller lignende til at redigere i filer på et fjernt system, end det er at bruge ens editors indbyggede support for at åbne filer over netværksprotokoller (f.eks. Emacs' frygtelige tramp-modul). Virtuelle filsystemer som et abtraktionslag virker på alle måder som en enormt fornuftig ting, og en oplagt konsekvens af Unix-filsystemet. NFS er naturligvis en gammel sag, men det kørte så vidt jeg husker også i kernen.

  • 1
  • 0
Poul-Henning Kamp Blogger

IBM's mainframe operativsystem zOS er ikke UNIX!

zOS systemet 'rummer' UNIX [...]

... fordi hvis de ikke havde gjort det, var endnu flere kunder stukket af fra mainframeplatformen endnu hurtigere.

Man kan gerne diskutere om zOS har en fremtid.

Hvor mange nye mainframe installationer har du hørt om de senest fem år ?

Hvis du vil kalde det for en fremtid, er du velkommen.

  • 1
  • 0
Morten Bøgh

Hov, hvad skete der lige her?

Jeg påpeger en fejl i PHK's indlæg, men det er så altså irrelevant. Dvs PHK's indlæg skal åbenbart fortolkes symbolsk, og ikke som en beskrivelse af den konkrete verden: UNIX har sejret i UNIX-tilhængernes tankeverden, og dermed er alt godt.

Helt fint med mig. Men altså - i et sidste forsøg på at repetere fakta i sagen:

1) zOS er ikke UNIX. Jeg tillod mig en lidt langstrakt argumentation for at gøre dette klart, men det er åbenbart ikke relevant snak: Det eneste der ifølge PHK er relevant ved zOS er, at zOS har implementeret UNIX som et subset til sig instruktions-set.

2) zOS er en betydningsfuld platform i dag. Lad mig forsøge med et meget simpelt argument: Ham hackeren, Warg, som skabte ravage i Danmark og endnu mere ravage i Sverige - ved at hacke sig ind i Nordeas zOS mainframe, og potentielt smadre Nordeas kontoføring... Er det en uvæsentlig sag vedrørende en obscur platform? Er Nordea et firma uden samfundsmæssig betydning? Vil Nordea køre sin kontorføring på UNIX i morgen? Er Nordea på vej ud i glemslens mørke fordi Nordea formodenligt ikke har planer om at køre sin kontoføring på UNIX i morgen?

Ude i virkeligheden har UNIX ikke sejret. 'Famous last words' kan ikke skrives endnu.

  • 1
  • 0
Kalle Larsen

Ja, der er helt sikkert langt færre zOS installationer idag end tidligere.
Noget af det skyldes så at der er færre, der har eget mainframe-datacenter; men benytter et af de fælles datacentre: IBM, KMD, osv.
Tidligere har vi set en vis flugt fra zOS; men idag er der faktisk en del af flygtningene, der vender tilbage til zOS fra deres Windows/Unix-server-farm.
Og jeg har endnu til gode at se nogen, der rent faktisk anvender Unix på en mainframe.

  • 0
  • 0
Morten Bøgh

zOS har konvergeret mod UNIX

En mere korrekt beskrivelse er vel at zOS har inkluderet UNIX - i den pædagogiske brug af ordet: at man inkluderer de vanskelige elever i den normale undervisning. Billedet er ganske uretfærdigt overfor UNIX' s fortjenester og fortrin, men lad det nu stå.
zOS har i øvrigt også inkluderet Windows - i samme forstand, dvs at man har tilføjet windows instruktionsset til zOS instruktionssettet. Det indebærer ikke at zOS konvergerer mod Windows.

  • 0
  • 0
Morten Bøgh

Instruktionssettet er de basale (assembler) instruktioner der styrer maskinen. Dvs. de instruktioner som bag compilere og fortolkere driver applikationen. Min formulering omkring instruktionssettet er (for) kortfattet; der skal andet til at få et operativsystem til at virke, fx drivere til filsystem og ydre enheder. Netop Windows er (som navnet antyder) meget knyttet til dannelse af skærm-indhold, og alt dette falder udenfor: Det jeg snakker om er Windows-server. I øvrigt bør jeg ikke kloge mig om forholdet mellem Windows og zOS: Jeg har ikke forstand på det.

  • 0
  • 1
Jacob Pind

windows kommer kun ind i de mainframes via en eller flere indstiks kort hvor på der sidder en intel xeon cpu, er ikke sådan at Power processorer giver sig ud i at emulere x86 instruktions sættet.

Der bliver instyallert IBM BladeCenter HX5 blades i samme maskine, eneste interaktion med zOS de har er via netværket til services som hostes på zOS siden. Hvor imod linux kan afvilkes direkte på power processor eller hosted via z/vm

  • 1
  • 0
Rasmus Morten Helbig Hansen

Undskyld for at genoplive tråden, men jeg savner lidt min Maemo dims. Der ligger vist bare en N810 i en kasse et sted. I alle tilfælde så synes jeg at Nokia lagde *nix på mobilen på "den rigtige måde" længe før Apple, men det tiltalte nok mest hackerne.

  • 1
  • 0
Henrik Madsen

Rasmus; jeg er helt enig; jeg savner også min Maemo dims. Den var en rigtig fleksibel og fremsynet måde Nokia lagde *nix på N800/N810 smart phones for nogle år siden. Jeg droppede mest min Maemo pga mangel på applikationer.

  • 0
  • 0
Log ind eller Opret konto for at kommentere