Toekomst 860409 (c) 1986 by ORD-GROUP 59 Toekomst Onze toekomstplannen omvatten o.a. - Het schrijven van een C compiler. Dit moet een volledige optimaliserende C compiler worden. We zullen uitgaan van het boek "The C programming language" als beste taaldefinitie. - Het ontwikkelen van een nieuwe objectformat en het schrijven van de bijbehorende linker. Een compiler of een assembler genereert zogenaamde object code. Met een linker kunnen verschil- lende stukken objectcode worden samengevoegd tot een enkel programma. Dit maakt het mogelijk om programma's in losse modules te schrijven en te compileren. Ons huidige objectformat is bij lange na niet goed genoeg voor een goed systeem van modules en libraries. Wij zullen daarom een nieuw objectformat ontwikkelen die o.a. aan de volgende specifi- caties zal voldoen: De objectfile moet natuurlijk relocatie-informatie bevatten. Labels die in een module zijn gedefinieerd als extern bruikbaar kunnen door andere modules worden gebruikt. Het is mogelijk om een label dat in een andere module wordt gedefinieerd met een offset te gebruiken. Men kan dus een plaats definieren waar de waarde van dat label plus een offset moet komen te staan. Dit wordt vooral gebruikt in compiler output b.v. om een bepaald array element efficient te kunnen gebruiken. De linker moet ook interne labels kunnen invullen. Deze labels zijn alleen bekend binnen een module. Dit systeem maakt het mogelijk om compilers hun output in een pass te laten genereren zonder terug te moeten gaan in de objectcode om dingen in te vullen. De linker moet in staat zijn om van een objectfile alleen de interne labels in te vullen en de objectfile dan weer terug te schrijven. In een objectfile moet ruimte zijn voor compiler informatie. Dit staat compilers toe om te zien wat voor procedures en functies in een bepaalde module worden gedefinieerd. Dit maakt b.v. type- checking mogelijk over de modulegrenzen heen. Een module moet hints kunnen bevatten betreffende de libraries die het nodig heeft. Dit maakt gebruik van de linker eenvoudiger. De objectformat zal 3 aparte areas kennen. Code en read only, geinitialiseerde RAM en ongeinitialiseerde RAM. Dit is nodig in verband met veiligheid en geheugencontrole in een goed operating systeem. (Zie ook het UNIX objectformat.) Wij kennen geen enkele objectformat die al deze mogelijkheden heeft. Deze objectformat moet b.v. alles kunnen wat onder UNIX mogelijk is en nog wat meer. Toekomst 860409 (c) 1986 by ORD-GROUP 60 - Het schrijven van een mooi operating system voor de ORDINATOR. Op het moment wordt gedacht aan een implementatie van een operating systeem dat sterk op UNIX lijkt. Ook zijn er plannen om een geheel eigen operating systeem te schrijven. Grote delen van het ontwerp van dit operating systeem zijn al gedaan. - Het schrijven van een compiler voor een subset van ALGOL 68. Dit wordt waarschijnlijk gedaan als de C compiler klaar is. De voornaamste reden om ALGOL 68 te implementeren is dat de taal veel beter gestructureerd is dan C, efficient compileerbaar is en meer mogelijkheden heeft dan b.v. PASCAL. Het optimaliseren van ALGOL 68 is zeer eenvoudig omdat een goed ALGOL 68 programma de compiler al vertelt waar en hoe er geoptimaliseerd kan worden. (Voor literatuur zie o.a. "Informal introduction to ALGOL 68".) - Het ontwikkelen van CHAOS. CHAOS staat voor Communications Handler And Operations Scheduler. De bedoeling van CHAOS is om te voorkomen dat wij een chaos van operating systemen op onze computer zullen krijgen. Bij het schrijven van een nieuw operating systeem moet deze natuurlijk worden getest. De beste manier om dat te doen zou zijn om b.v. het operating systeem 'onder' een bestaand operating systeem te runnen. Men heeft dan dit bestaande systeem ter beschikking voor het testen en de- buggen. Deze aanpak leidt in onze ogen al snel tot een toren van operating systemen die allemaal boven op elkaar gestapeld zijn. Dit is niet alleen uiterst inefficient maar bovendien zo onover- zichtelijk,dat debuggen zeer moeilijk wordt. De bedoeling van CHAOS is dus om dit te voorkomen. CHAOS wordt het 'bovenste' operating systeem. Alle andere operating systemen draaien onder CHAOS. In feite doet CHAOS niets anders dan een virtuele machine aanbieden aan de verschillende andere operating systemen. Het idee van CHAOS is nog vrij nieuw en voor zo_ver wij weten, uniek voor microcomputers. (VM voor de IBM 360 doet iets soortgelijks.) Er zal nog veel over worden nagedacht maar wij zijn redelijk zeker dat het mogelijk is, zonder al te veel efficientie te verliezen. De bedoeling is dat communicatie tussen verschillende operating systemen mogelijk is o.a. voor debuggen en het overzetten van files. In de verre toekomst kan worden gedacht aan o.a.: - Het aan de praat brengen van een oude P856. - De bouw van een 16 of 32 bits microcomputersysteem. - Het aan elkaar koppelen van de verschillende computers en die dan te laten samenwerken. Ook zal worden gekeken of de CRYON computer in dit netwerk kan worden betrokken. (CRYON is een zelfontwikkelde 32 bits minicomputer die door een andere groep op DJOE wordt ontwikkeld.)