[HOGER] [Museum] [ENGLISH]
*** Computerwetenschappen - K.U.Leuven ***

Computermuseum: Overdracht van Unix V7 naar MC68000

Status: publiek -- Laatste wijziging: 15 oktober 1996

Overdracht van Unix V7 naar MC68000

Basisgegevens

Het was bekend dat Bell Laboratories Unix V7 overgedragen had naar de Interdata machine. Dit betekende dat Unix V7 minder gebonden was aan de PDP 11 architectuur.

Met Unix V7 werd de "Portable C Compiler" (pcc) meegeleverd. Deze compiler bestond uit verschillende passen en de codegeneratie kon aangepast worden voor nieuwe machines. De pcc compiler werd geleverd met een codegenerator voor de PDP 11 en een vrij summiere documentatie.

Stap 1: Compiler

De eerste stap was dus het aanpassen van de pcc compiler om code te genereren voor de MC68000. Eigenlijk was de allereerste stap het maken van een assembler en lader voor de MC68000. De assembler werd geschreven door D. Venken, de compiler door P. Verbaeten.

Een probleem was het uittesten van de assembler en compiler. In 1979 was de MC68000 nog niet beschikbaar. Er bestond alleen een evaluatie kaart :

evaluatie kaart MC68000

Deze kaart bevatte een prototype 68000, de XC68000. De XC68000 had alle instructies van de MC68000 behalve een instructie die gebruikt kon worden om parameters tussen subroutines door te geven. Programma's die moesten getest worden, werden via een seriële lijn uit de PDP opgeladen, de programma uitvoer kwam via een andere seriële lijn terug op de PDP.

Om de invloed van wijzigingen aan de compiler gemakkelijk te kunnen uittesten werden een groot aantal testprogramma's geschreven. De code gegenereerd voor deze testen werd via SCCS vergeleken met de uitvoer van de vorige compiler versie.

Stap 2 : Voorbereiding van de Unix overdracht.

Unix V7 steunde erop dat de "user structure" door de "memory management unit" (mmu) op een vaste plaats in het geheugen kon gemapt worden. De hardware van ons doelsysteem (Exormacs) had geen "memory management unit" in supervisor mode. Daarom werd er besloten om de "user structure" te copiëren bij proceswisselingen. Dit zou de proceswisseling zwaarder maken, maar maakte minder wijzigingen aan de Unix code noodzakelijk.

Vermits de levering van het Exormacs systeem op zich liet wachten, werd besloten een Unix systeem te maken op de PDP 11/34 dat geen gebruik maakte van de MMU. (Eindwerk T. Vanderhaegen). Deze versie draaide eind 1981.

Stap 3 : Overdracht naar de Exormacs.

De overdracht naar de Exormacs gebeurde in het kader van twee eindwerken:

Omdat we geen uitwisselbare media tussen de PDP en de Exormacs hadden, werd een speciale disk driver gemaakt, die over een seriële lijn toegang had tot een deel van de PDP schijf. Hierbij vormde het feit dat een PDP en MC68000 een andere byte adressering hadden een bijkomend probleem (het NUXI syndroom).

Eind 1982 hadden we de eerste shell prompt van Unix V7 op onze Exormacs.

Stap 4 : Overdracht van de Unix tools.

We hadden gehoopt dat het zwaarste werk voorbij was, maar een Unix systeem met alleen maar een shell is zo goed als onbruikbaar. Alle programma's gaande van /bin/true en /bin/false tot en met de compileeromgeving moesten nog overgedragen worden. Dit werk gebeurde door A. Ceulemans met occasionele hulp van P.Verbaeten voor de compiler problemen.

Bij het maken van de compiler was ervoor gekozen om een int voor te stellen als een 16-bit getal en een long int als 32-bit. Hierdoor was de grootte van een int verschillend van een pointer char *. Spijtig genoeg steunden heel veel Unix programma's erop dat sizeof(int) = sizeof(char *). Dit veroorzaakte veel overdrachtsproblemen, maar uiteindelijk hadden we een versie van de Unix tools waarin deze problemen opgelost waren.

Stap 5 : Gebruik van onze Unix.

Naast intern op onze Exormacs, werd de Unix V7 versie voor MC68000 ook gebruikt om een Unix versie met real-time extensies te bouwen. Dit gebeurde in het kader van een IWONL project in samenwerking met de firma Macq Electronique en met de Unité d'Informatique van de Université Catholique de Louvain. Macq Electronique ontwikkelde de hardware (ditmaal met geschikte MMU), het departement (J.Huens) zorgde voor de overdracht van Unix V7, later System V, naar die hardware en de Unité d'Informatique nam de real-time extensies voor zijn rekening.

Dit systeem werd door Macq Electronique onder andere gebruikt om de verkeerstunnels in Brussel te bewaken en te sturen.


[HOGER] [Museum] [ENGLISH]
K.U.Leuven - Computerwetenschappen
Copyright ©1996, Katholieke Universiteit Leuven, Departement Computerwetenschappen
Reacties naar: Conservator
URL van deze pagina: http://www.cs.kuleuven.be/museum/mc68000/unix-ove.html
Click here to print this page: Click here to print this page