Fremtiden for Operativsystemer

For 11 år siden gav Rob Pike et meget provokerende og frustreret foredrag Operating System Research is Irrelevant

Mange ting kan man beskylde Rob Pike for, men manglende klarsyn er normalt ikke en af dem og mht. til fremtiden for operativsystemer har hans forudsigelse været spot on i 11 år.

Men inden vi kan komme til substansen i en intelligent diskurs om dette, bliver vi nødt til at blive enige om hvad et operativsystem egentlig er.

Der findes akademiske definitioner på hvad operativsystemer er, et typisk eksempel er:

The software that supports a computer's basic functions, such as scheduling tasks, executing applications, and controlling peripherals.

Når vi prøver at bruge en sådan definition ender vi ofte med at tænke på seriel-porte, filsystemer og netværk, hvilket også stort set er hvad internationale standarder for operativsystemer beskæftiger sig med.

Men hvis vi går over og ser på f.eks Peter Tofts anmeldelse så taler han ikke et ord om den slags ting, men i stedet om mus og ikoner.

Faktisk er ordet operativsystem hastigt på vej ud af vores ordforråd og bliver i stigende grad erstattet af, i mine ører, det meget mere præcise og forklarende "platform".

En platform er noget man står på når man skal højere op end armene normalt rækker og man er ikke ret smart hvis man placerer sin platform så højt at man har brug for at arbejde neden under den.

En computer platform er, eller ihvertfald bør være, den laveste fællesnævner for hvad man skal lave med computeren.

For et grafisk operativsystem bør det betyde at brugeren aldrig nogen sinde skal se en konfigurationsfil, der helt indlysende er flere abstraktionsniveauer under WIMP paradigmet for bruger-interfaces.

Jeg har absolut ingen problemer med at kalde UNIX and POSIX for en platform i stedet for et operativsystem eller styresystem og jeg begynder at tro at det er UNIX-miljøets største bommert at man ikke for længst har foretaget dette semantiske skift.

Men mere interessant er det, at hvis vi erstatter "operating system" med "platform" i Rob Pikes foredrag giver det pludselig overhovedet ingen mening og nærmer sig det rene landvås: Det er bestemt interessant og der bliver absolut forsket utroligt meget i platforme, se blot iOS, Android osv.

Der er ingen tvivl om at klassisk operativsystem forskning er et stort set overstået fænomen og som en af den udmarcherende garde i den branche bør man naturligvis overveje om man kan give den nye generation et fornuftens ord med på vejen.

Hvis der er en enkelt bommert som UNIX verdenen gjorde og som jeg gerne vil skåne andre for er det standardisering.

I lyset af den totale stagnation som X/OPEN/POSIX/Open Group medførte og for den sags skyld den korrupte og skandaløse standardisering af OOXML,er mit viseste råd at holde fingrene langt fra alle forsøg på international standardisering af computer platforme.

I stedet skal man med konkurrencelove forhindre monopolmisbrug, med borgerretslove sikre retten til at kontrol med egne computere og retten til reverse-engineering og forskning.

phk

Poul-Henning Kamps billede
Poul-Henning er selvstændig systemprogrammør, kernekoder, Varnish-forfatter, data-arkæolog og brokkehoved uden særlig portefølje.

Kommentarer (17)

Torben Mogensen

Jeg vil tro, at der er meget at lave i det klassiske OS-lag, når computere får 100+ processorer, der alle har deres eget lager i stedet for at dele et fælles lager. Og det vil nok ske i løbet af de næste 10-20 år.

Peter Favrholdt

Jeg tænker på operativsystemet/platformen som noget der skal hjælpe mig (programmøren) med at løse opgaver effektivt.

Desværre får man tit den modsatte følelse: at platformen står i vejen.

En af Pike's iagttagelser er at et nyt operativsystem ikke har relevans før det understøtter alle de mange facetter vi efterhånden er blevet vant til (email, printerdrivere, osv) - og det gør det vanskeligt for forskere at opfinde nye systemer (de må nøjes med at optimere på enkelt-dele).

Næstsidste slide "Things to Build" er min favorit. Her giver Pike nogle eksempler på ting der kan ny-tænkes, f.eks: system-administration der rummer store muligheder for automatisering.

Jacob Gorm Hansen

Han overså hele udviklingen omkring virtualisering, datacentre, cloud-scale storage systemer, osv., osv. Sikkerhed er stadig et uløst problem i praksis. Det er ikke relevant at bygge en ny UNIX (som han prøvede) men "systems software research" (som han kaldte det i sin overskrift) har sjældent været mere relevant. F.eks. har Google så vidt vides flere patenter på distribuerede systemer end på søgealgoritmer, og både VMware og Xen kom fra en baggrund i "systems research" og fik begge kæmpe impact, både i praksis og i academia.

Lars Bjerregaard

Når jeg tænker på fremtiden (og nutiden) for operativsystemer, så kredser mine tanker i stigende grad om emnet "kompleksitet", som har sine fangarme overalt, om det er sikkerhed, GUI systemer, systemkomponenter, eller andet. Specielt i forhold til slutbrugere, synes jeg tit, at udfordringerne med at præsentere ekstrem kompleksitet, på en måde som er på samme tid intuitiv, funktionel og fyldestgørende, er en virkelig hård nød.

Mht. standardisering, så finder jeg at jeg i stigende grad er enig med folk som Linus og Ian Hickson (HTML5 gutten), som advokerer de-facto standard over kommite, good-enough over perfect, "rough consensus and working code", osv. Specielt det aspekt at standard organer er rigtigt gode til at vogte over en etableret standard, men rigtigt dårlige til at opfinde nye standarder fra bunden. Så det betyder vel at jeg også er enig med dig, eller hur?

Jens Dalsgaard Nielsen

det er vist meget groft sagt.
Bare fra min usle fortid før jeg overhovedet klappede den første PC kørte jeg på
CP/M med wordstar og 2 5 1/4" floppy drev
unix importeret til Aalborg på bånd fra Edinburg af EG
vms med det geniale versionssystem på filer men manglede cd .. hvis man ikke selv lavede link
iRMX på '86 platform
Cyber CDC - man måtte max have 64 filer !

Udenfor min verden var hele IBM cirkusset med VM's osv osv - det kan phk helt sikkert kloge sig meget om :-)

Så at MS satte OS på verdenskortet - nope

Michael Deichmann

Ved forrige årtusindskifte og de næste 10 - 15 år skulle man nærmest være mekaniker for at betjene og køre en bil. Man var så at sige nede og rode i konfigurationsfilerne hele tiden (tændingstidspunkt, benzin-luft blanding og smøring) men i 1920'erne blev man-machine interfacet nogle instrumenter, der viste nogle nøgleværdier (hastighed, benzinbeholdning, ladestrøm) for siden kun at blive hastighedsmåleren. Efterhånden kom der flere og flere gadgets i bilen og derved flere betjeningsgreb, men de vedrører ikke kernefunktionen and fremføre køretøjet med en hvis hastighed og retning, men komfort og underholdning.

Thomas Hansen

I første skal, er der fortsat mange der skriver programmer. Der fremstilles meget automatisering, som direkte retter sig mod chippens funktioner.
Det vil der også være behov for i fremtiden.

I forbindelse med yderligere lag, og det som er/var rettet mod x..86->, som udbredte styresystemer, er udviklingen i øjeblikket rettet mod smartphones rimeligt overskuelige kompleksitet.
Men der er ikke noget i vejen for, at den udvikling vil vende, der er nok nærmere tegn på, at kompleksiteten vil tiltage, efterhånden som brugerforventningerne stiger.

Der vil blive tale om smartphones der skal fungerer med de muligheder vi er vænnet til, og det udstyr og muligheder vi kan se frem til.
I realiteten vil de fremtidige smartphones, komme til at fungerer som det man tidligere betragtede som CPU'en i en maninframe på LAN. Nogen smartphones, kan i stor udstrækning allerede levere denne ydelse.

Grundlæggende protokoller som TCP/IP, vil fortsat være grundlaget for kommunikationen. At kunne fremstille programkode, der henvender sig direkte på chippen, vil der også være behov for, helt som man vil have behov for at udvikle styresystemer ( platforme ) og applikationer oven på styresystemerne.

Der er langt fra "Programing the PET" til nu.
Grundlagene for udvikling ser i Danmark ud til at fortage sig i tåger, det er synd, for der har Danmark været langt fremme.
Det er som om man ikke er fulgt med tiden og eller har været visionære nok.
Det virker som om, man spænder ben for dem der kan noget grundlæggende og skabe nye grundlag, i en bestræbelse på at opnå er kortsigtet resultat, som måske ikke er bæredygtigt når det endelig skal stå sin prøve.

Der er et eksempel i, at man nu har nedlagt den Danske afdeling at et stort mobiltelefonselskab. Der er sikkert mange årsager til at man måtte foretage dette skridt, men det kan næsten ikke blive mere tydeligt, at det går galt, når man sover i timen, i forbindelse med grundlæggende udvikling af et styresystem.

Carsten Sonne

For at kunne drage sammenligninger på tværs, af ellers usammenlignelige elementer, er det nødvendig at acceptere abstraktionen "platform" som en laveste fællesnævner, hvilket bloggens eksempler da også fint anviser.

Til sammenligning er .Net ligeledes igennem en sådan udvikling hvor hardware bliver yderlig bortabstraheret for hver nye version. Eksempelvis har seneste version bortabstraheret antallet af processorkerner, så det ikke længere i samme grad, er nødvendigt at interesserer sig for multi-threating.

Som sådan er der ikke noget nyt i øget abstraktion. Det er nærmest essensen af udvikling. Det nye må vel består vel primært i at centrale elementer som operativ systemer, også begynder at blive ramt ?

Mads Vanggaard

Det er vel naturens gang. Hvis man ikke kommer mindst et skridt videre, som set fra slutbrugerens vinkel, så udebliver tilslutningen. Tag f.eks. RIM's playbook, den mangler en email klient og trækker ikke den store tilslutning blandt folk. QNX er måske på forskellige måder bedre på nogen fronter end Android (ved det ikke), men hvis slutproduktet ikke holder så holder platformen ikke. Andet eksempel: Funktionelle sprog. De fleste med en PhD (og et par andre med indsigt) vil fortælle dig om alle de fortræffeligheder funktionelle sprog har i forhold til parallel programmering. Ca. hvert halve år kommer der endda en artikel i almene IT folks blade ala' Computerworld og Version2 om at vi ikke kan udnytte fremtidens CPUer, hvis vi ikke koder i F# eller lignende. Problemet er, at de fleste udviklere kender kun i deres arbejdsdag sprog som C#, C++ eller Java og vil af hensyn til deres deadline kræve adgang til de almindelige frameworks, pakker eller lignende fra Apache, SpringSource eller lignende. Så sprogende udvikler sig ikke til en top 3 på listen over mest brugte programmeringssprog. Hvem gider at hooke sig ind i andre sprog hver eneste gang man vil lave noget andet end en optimeret søgealgoritme eller udføre en aktion på alle elementerne i en liste.

Samme problem har udfordrere til Windows, Linux, IOS, Android eller lignende. Du skal lave et produkt, som kan hvad de andre kan og så løser mindst et (og gerne større) problem mere for slutbrugeren.

Rene Nejsum

Har altid undret mig over at JavaPC ikke fik nogen form for fodfæste, synes idéen var rigtig fin.

Hvis .NET finder en god måde at udnytte multicore CPU på kan der måske komme et .NETOS på et tidspunkt, vi burde vel snart kunne skrive et OS i C#, Java eller allerhelst Python :-)

Carsten Sonne

Hvem gider at hooke sig ind i andre sprog hver eneste gang man vil lave noget andet end en optimeret søgealgoritme eller udføre en aktion på alle elementerne i en liste.


Tja, gider eller gider ikke. Mon ikke det nærmere er et traditionel cost/benefit spørgsmål ? Jeg vil mene årsagen er den simple, at det er nemmere at lade være - og så bare gøre som man plejer.

I øvrigt ville en mobil platform baseret på QNX være noget af scoop. Det er vel nok verdens mest sikre og stabile OS (platform?). Bl.a. benyttes det som styresystem på ISS's store robotarmen. Meget meget info kan findes på de officelle hjemmesider: http://www.nasa.gov/mission_pages/station/main/index.html & http://www.qnx.com/

Carsten

Morten Hattesen

Er du også modstander af standardiseringen af:
- Unicode og UTF-XX
- XML
- HTML
- HTTP
- TCP/IP
- DNS

Jeg er enig med dig i farerne ved standardisering af umodne teknologier med et højt abstraktionsniveau (OOXML/ODF), men ovenstående eksempler er "limen", der får platformene til at hænge sammen, og er absolut kritiske for fremdrift og interoperabilitet.

Men jeg mener, at...
"er mit viseste råd at holde fingrene langt fra alle forsøg på international standardisering af computer platforme"
... er lidt for bredt favnende.

Log ind eller opret en konto for at skrive kommentarer

IT Businesses