SMOS

Fra DDHFwiki
Spring til navigation Spring til søgning

Operativsystemet Unirex blev udviklet af DDE i 1981-82 til brug på Unimax, som datamatserien hed inden skiftet til Supermax. På grund af en klage fra Sperry-Univac, måtte DDE ændre navnet på maskinen, og Unirex blev til Supermax OS, i daglig tale SMOS.

DDE havde udviklet en datamat, der kunne udbygges med mere end én CPU. De var klar over at den skulle kunne køre UNIX programmer, da det var det mest populære operativsystem for de kunder DDE henvendte sig til. Men kildeteksten til UNIX var dyr, og der var ikke taget højde for multi-CPU arkitekturer. DDE valgte derfor at udvikle deres eget operativsystem med erfaringer fra MIKADOS, og derpå lægge et bibliotek, som emulerede et UNIX API. Det blev udviklet på baggrund af dokumentationen til UNIX version 7.

Indenfor et års tid viste det sig, at ideen med at oversætte UNIX systemkald til operativsystemets egne var en dårlig idé. Kernen blev skrevet om til at have et fuldt UNIX System III sæt af systemkald.

Der blev også lagt nogle "forbedringer" ind i forhold til UNIX. F.eks. blev UNIXs »pipe« funktion udvidet med »box«, og en ny kommandofortolker — DDE-shell (dsh) — som havde genkald af op til 22 forrige kommandoer. Hvis den pågældende datamat havde mere end én CPU, så blev en specifik CPU valgt når brugeren loggede på. Derefter var brugeren bundet til den samme under hele sessionen.

I 1986 blev SMOS opgraderet til at understøtte UNIX System V. Samtidigt blev "processernes frie spil" introduceret. Et fork() systemkald ville starte en ny process op på den samme CPU som forælderen. Fork() splitter en process i to, som kører den samme program-kode, men med en reel eller virtuel kopi (copy-on-write) af data-området. Normalt vil den næste instruktion for den nye process være et kald til exec(), hvilket starter et nyt program op med nyt data-område. SMOS vælger her at starte programmet op på en ny CPU valgt efter et cyklisk mønster. Denne strategi gjorde det muligt for DDE at kombinere forskellige CPU-arkitekturer i den samme maskine. Når en exec() skulle udføres, undersøgte kernen først hvilken CPU type programmet skulle udføres på, og valgte derefter en passende CPU.

DDE udskiftede SMOS med UNIX System V R4.2 MP, da de lancerede Supermax Enterprise Server i 1994. "MP" står for Multi Processing - en funktionalitet, der endelig blev tilgængelig på standard UNIX.

Se også