SAI, SS 2004, Allgemeine Informatik II

Das Ulmer Oberon-System für die Linux/I386-Plattform


Diese Seite ist inzwischen veraltet und wird nicht mehr weiter gepflegt. Aktuelle Hinweise finden Sie unter http://www.mathematik.uni-ulm.de/sai/ws04/prog/ulm-oberon-i386/.

Dank Christian Ehrhardt gibt es eine Portierung des Ulmer Oberon-Systems für die Linux-Plattform. Zu bedenken ist nur, daß sich diese noch im Alpha-Zustand befindet (d.h. mit Fehlern, Problemen und Unschönheiten muß noch gerechnet werden) und sich in der Benutzung unterscheidet. Auch sind einige Grundkenntnisse für Linux erforderlich, um dieses System unter Linux nutzen zu können. Wenn jedoch alles klappt, können Beispiele aus der Vorlesung und Lösungen für Übungsaufgaben unverändert übertragen und zur Ausführung gebracht werden. Wenn es nicht klappt, können Sie gerne zu uns kommen. Entweder mit Ihrem Notebook (das macht es einfacher) oder detaillierten Fehlerberichten mitsamt allen Fehlermeldungen und einem Installationsprotokoll.

Wichtig: Für die Installation kommen nur neuere Maschinen in Frage, die genügend Hauptspeicher mitbringen (empfohlen sind mindestens 256 Megabyte). Bitte quälen Sie damit nicht alte Maschinen mit zu wenig Hauptspeicher. Da kann eine Übersetzung tatsächlich Stunden dauern, die sonst binnen Sekunden erledigt ist.

Wer den Linux-Kernel von Fedora Core 2 mit dem 4GB/4GB-Memory-Split verwendet, hat momentan leider Pech, da die Oberon-Programme darunter nicht laufen. Lassen Sie es uns bitte wissen, falls Sie davon betroffen sein sollten, da wir uns dann eher um eine Lösung kümmern werden.

Seit dem späten Abend des 11. Juni gibt es die Version 0.4, die einige kleine Änderungen enthält: cdbd stürzt nicht mehr beim ersten Male ab, die terminfo-Datenbank wird auch unter Linux ohne besonderen Vorkehrungen gefunden und OberonLoader wurde so umkonfiguriert, daß auch die ``ganz großen'' Module unter Linux übersetzt werden können. Wenn Sie 0.3 bereits im Einsatz haben und damit zufrieden sind, gibt es keinen Grund auf 0.4 zu wechseln.

So können Sie loslegen:

  1. Laden Sie sich die aktuelle Version (zur Zeit 0.4) auf Ihr Linux-System und packen Sie diese unter /usr/local/oberon aus:

    cd /usr/local
    wget ftp://ftp.mathematik.uni-ulm.de/pub/soft/oberon/ulm/i386/ulm-oberon-i386-0.4.tar.gz
    tar xvfz ulm-oberon-i386-0.4.tar.gz
    mv ulm-oberon-i386-0.4 oberon
    rm ulm-oberon-i386-0.4.tar.gz
    

    Sollte /usr/local/oberon bereits existieren (von einer früheren Installation beispielsweise), sollte das alte Verzeichnis zunächst umgetauft werden. Alternativ ist auch die Wahl eines anderen Verzeichnisses möglich. Hinweise dazu sind in der Datei INSTALL enthalten, die nach dem tar-Befehl im Verzeichnis /usr/local/ulm-oberon-i386-0.4 zu finden ist.

    Hinweis: Das Paket hat einen Umfang von mehr als acht Megabyte. Das empfiehlt sich also leider nicht für eine Modemverbindung und kann auch nicht mit einer Floppy alleine transportiert werden.

  2. Dann sollten Sie den Namensdienst für Oberon und die Datenbank für den Compiler starten:

    /usr/local/oberon/bin/start_pons
    /usr/local/oberon/bin/start_cdbd
    
    Ob die beiden Dienste korrekt arbeiten, können Sie leicht überprüfen, indem Sie mit Hilfe von nsh einen Blick in das Namenssystem von Oberon werfen:

    borchert@portia:~> . /usr/local/oberon/rc
    borchert@portia:~> nsh
    * ls
        pub
    * cd pub
    * ls
        cdb
    * cd cdb
    * ls
        oberon
    * cd oberon
    * ls
        cdbd
        modules
    * q
    borchert@portia:~>
    

    Die beiden Skripte start_pons und start_cdbd sind bei einem Neustart Ihrer Maschine frisch aufzurufen.

  3. Danach sind alle beiliegenden Quellen der Oberon-Bibliothek in die Datenbank zu laden:

    /usr/local/oberon/bin/load_libsources
    

  4. Wenn Sie danach Oberon nutzen möchten, müssen einige Umgebungsvariablen korrekt gesetzt sein. Dies können Sie temporär für die gerade laufende Shell mit

    . /usr/local/oberon/rc
    

    erreichen oder dauerhaft durch den Eintrag dieser Zeile in Ihrem ~/.profile oder für alle Benutzer in /etc/profile.

  5. Wenn alles soweit geklappt hat, können Sie mit einem ersten Beispiel sehen, ob es tatsächlich funktioniert:

    borchert@portia:~> mkdir Hello
    borchert@portia:~> cd Hello
    borchert@portia:~/Hello> cat >Hello.od
    DEFINITION Hello;
    END Hello.
    borchert@portia:~/Hello> cat >Hello.om
    MODULE Hello;
       IMPORT Write;
    BEGIN
       Write.Line("Wow! Es funktioniert :-)");
    END Hello.
    borchert@portia:~/Hello> obci -a /usr/local/oberon/var/cdbd/write *.o[dm]
    borchert@portia:~/Hello> obbuild Hello
    borchert@portia:~/Hello> ./Hello
    Wow! Es funktioniert :-)
    borchert@portia:~/Hello>
    

    Bitte haben Sie auch für so ein winziges Programm Geduld. Da zu Beginn in der Datenbank nur Quellen enthalten sind, muß der Compiler zunächst recht viele Module übersetzen, bevor er zu Hello kommt.

  6. Erfolgsmeldungen an borchert@mathematik.uni-ulm.de sind willkommen :-)

Einige Fragen und Antworten zu dem Ulmer Oberon-System unter Linux


Andreas Borchert, 20. Oktober 2004