Løsninger på problemer vi ikke burde have (længere)
Sidste uge var ret fantastisk ude i DataMuseum.dk.
Vi har i lang tid arbejdet på at få vores Rational R1000/s400 maskine til at køre og stille og roligt har vi ædt os ind på problemerne.
Vi har hele tiden haft lidt email-kontakt med nogle fra det oprindelige Rational team, herunder en fyr fra Frankrig som lånte os tre bånd som vi kopierede og sendte tilbage for lang tid siden.
Nyheden om at vi nu havde konsolprocessoren til at køre igen fik franskmanden, der i mellemtiden var avanceret til Vicepresident, til at checke hvad det egentlig var han havde gemt nede i kælderen under Université Haute-Alsace.
Han blev mødt af beskeden "Det var godt du kom, for om to uger ryger det hele ud" og det var han ikke helt tilfreds med, men tog efter kort betænkningstid den beslutning, at hvis vi i datamuseum.dk var istand til at fixe et IOC board, var det nok smartere at alle stumperne var hos os, end at han blev ved med at gemme dem til et privat drømmeprojekt der næppe nogensinde blev tid til.
Uden varsel fik vi derfor pludselig en email fra Pierre-Alain Muller om at nu læssede han bilen og kom på besøg i datamuseum.dk for at hjælpe os.
Det blev til de to sjoveste dage jeg har oplevet længe og kulminerede med at vores R1000 bootede op med diskene fra hans R1000:
Det er meget, meget svært kort at forklare hvor forskellig denne computers arkitektur er fra moderne computeres og hvor mange af de sikkerhedsproblemer som følger deraf, den er helt og aldeles fri for.
Vi kan starte med at den ikke lider af problemer med null-pointere, buffer-overflows og remote code-excution, fordi den i realiteten ikke har pointere, den er objektorienteret med typebeskyttelse i hardware.
Det er faktisk ikke engang den første computer der løste de problemer, Cambridge CAP, intels Iapx432, GE's 645 (den med Multics) og Linn's "Rekursiv" (Dem med grammofonen) er blot nogle af de mest kendte.
Men ingen af disse har været istand til at erobre en af de store pladser, for "hvis der ikke er en C-Compiler er det ligegyldigt".
Hvis man vil køre C-kode på rational maskinen, er den eneste mulighed at skrive en CPU simulator i Ada og lade den gøre det og det løser ikke rigtig nogen problemer.
Men!
Min gode ven Robert Watson har gået og fusket med "CHERI" projektet ovre i Cambridge og nu er der måske ved at gå hul på bylden.
CHERI handler kort og godt om at udstyre pointere med sikkerhedsseler og airbags.
I stedet for bare at være et tal der peger på et sted i en lineær hukommelsesarray, er pointere i CHERI en "capability", hvilket vil sige at pointeren ud over at pege på et sted i hukommelsen også indeholder hvilket område af hukommelsen den overhovedet må pege i og at denne begrænsning håndhæves på hardwareniveau.
Det betyder at man godt kan køre C-kode, bare man aldrig prøver at cast'e et tal til en pointer, hvilket idoelogisk set aldrig bør forekomme til at begynde med, selv ikke i de dybeste kældre under operativsystemet.
Et er imidlertid teori, et andet praksis og derfor har Roberts gruppe portet FreeBSD til deres "CHERI" platform som proof-of-concept.
Det nye er at Robert har fået ₤190M, en rund halvanden milliard kroner, med det mål at producere en ARMv8-A chip med CHERI hardware, "Morello", som skal være klar i 7nm teknologi i 2021.
Tillykke til Robert og tak til Pierre-Alain
phk

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.