Et komplett operativsystem på 30 kilobytes

Er du lei av de gigantiske applikasjonene som nå tilbys til Windows og andre operativsystemer? Eller kanskje størrelsen og kompleksiteten på operativsystemene selv? Det canadiske selskapet Genetix har kanskje funnet en løsning på dette.

Navnet på selskapet bak dette systemet er ikke tilfeldig. Systemet, som heter Genetix Turing Machine, er for en stor del basert på såkalte gener. Disse genene, drøyt 600 i antall, er små subrutiner samlet i et genbibliotek. Til sammen utgjør genene i biblioteket et ganske omfattende sett med funksjonalitet, selv om det i dag kun krever 26 kilobytes med minne.

Ved hjelp av genbiblioteket kan man i dag utføre matematiske oppgaver, tegne grafer, implementere animasjon, bygge databasebaserte applikasjoner, utføre tekstbehandling og utvikle nye gener. Det er utviklet en prototype som demonstrerer alle disse mulighetene, selv om den er laget mer som et bevis for konseptet enn som en sofistikert demonstrasjon.

Genetix Turing Machine består av en enkel eksekverbar fil som krever mindre enn 2 kB med minne. Resten av systemet består av det nevnte genbiblioteket, samt et lite område for lagring av konstanter. Dette utgjør til sammen et minnebehov på 30 kB for hele systemet. Den nåværende prototypen kjører under DOS på en Intel–basert PC og reserverer 250 kB med minne for sin eksklusive operasjon. Den bruker bare fem avbrudd og benytter seg ikke mer av operativsystemet etter at det først har blitt startet.

Genetix Turing Machine fungerer ved at den eksekverer gener ved hjelp av en pseudofortolker. Maskinen eksekverer også virtuelle maskininstruksjoner. Den er utstyrt med over 30 slike instruksjoner som best kan sammenliknes med assembler-makroer som utfører spesifikke oppgaver. Så når maskinen eksekverer en virtuell instruksjon, eksekverer den i praksis en liten mengde assemblerkode.

Selve genene består av strenger med kommandoer som enten kaller andre gener, kaller seg selv rekursivt, eller som er virtuelle maskininstruksjoner. Genbiblioteket inneholder et dypt hierarki av funksjonalitet. Genene i det øverste laget eksekverer hele applikasjoner, men gjør dette ved å kalle gener som befinner seg lengre ned i hierarkiet. Disse har mer fokuserte oppgaver, for eksempel å tegne en piksel til skjermen eller å skrive informasjon til disken. Det som er verdt å legge merke til her er at selv avanserte applikasjoner ikke krever mye programmering eller tar mye diskplass.

Bernard Hodson, professor ved Universitet i Ottawa og grunnlegger av Genetix, har beregnet at et avansert tekstbehandlingsprogram kanskje ikke vil ta mer enn 300 til 400 bytes i biblioteket, og at den vil kunne implementeres ved hjelp av kun en håndfull gener.

Noe som kanskje er en overraskelse for noen, er at disse idéene langt ifra er nye. De er faktisk like gamle som datamaskinhistorien selv.

Alan Turing var en britisk matematiker fra Universitet i Cambridge. Allerede i 1947 publiserte han en avhandling med navnet "On Computing Numbers". Målet med avhandlingen var å bevise hva som var mulig å beregne, og hva som ikke var det. I forbindelse med dette formulerte Turing en teoretisk datamaskin som senere er blitt kjent som The Turing Universal Machine. Dette var en databehandlingsmodell som gikk ut på at de mest komplekse prosedyrene skulle være bygget opp av elementære byggesteiner som implementerte lavnivåendringer i tilstanden. Det ser ut som om dette er blitt oppnådd av Genetix.

I sin publikasjon fra 1947 refererer Turing til utviklingen av en ny applikasjon på følgende måte: "Instruksjonene til jobben vil derfor bestå av en stor mengde tatt fra hyllen, sammen med noen få som er laget spesielt for den jobben det er snakk om".

Med andre ord forestilte Turing seg en utpreget gjenbruk av programvare, langt ut over det man har oppnådd til nå.

I Genetix Turing Machine vil det ikke foregå noen interne endringer ved å gå fra en datavarehusapplikasjon til et grafikkprogram, og så kanskje til et regneark. Alle bruker de samme genene, den eneste forskjellen på applikasjonene er rekkefølgen genene blir prosessert.

Det fleste av dagens applikasjoner bruker noen av Turings forslag til rekursitivitet, hierarkiske funksjoner og liknende. Men de er skrevet som individuelle programmer som krever store mengder av interne ressurser og omfattende operativsystemer. Turingmaskinen er langt mer økonomisk og krever ikke engang et operativsystem. Den er faktisk et operativsystem i seg selv. Alle operativsystemfunksjoner kan defineres som gener.

digi.no har snakket med mannen bak Genetix, Bernhard Hodson. Dette intervjuet kan du lese i digi.no torsdag.

(Kilder: Genetix Software, Bernard Hodson, "The Gene Machine" av Robin Bloor ved Bloor Research.)

Til toppen