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:
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.
/usr/local/oberon/bin/start_pons /usr/local/oberon/bin/start_cdbd |
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.
/usr/local/oberon/bin/load_libsources |
. /usr/local/oberon/rc |
erreichen oder dauerhaft durch den Eintrag dieser Zeile in Ihrem ~/.profile oder für alle Benutzer in /etc/profile.
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.
Nein. Die Portierung auf UNIX-Anwendungen nach Cygwin beschränkt sich nur auf solche, die sich mit dem GCC übersetzen lassen, beziehungsweise, die mit der GNU C-Bibliothek zusammen gebaut werden können. Das Ulmer Oberon-System ist jedoch zu 100% frei von C-Code und verwendet auch keine C-Bibliotheken. Deswegen wird auch ein echtes UNIX-System (sei es Linux oder Solaris) benötigt und nicht nur eine durch eine C-Bibliothek simulierte UNIX-Umgebung. Viele sehr wesentliche Fähigkeiten der Ulmer Oberon-Bibliothek wären überhaupt nicht denkbar, wenn das Ulmer Oberon-System auf einer C-Bibliothek basieren müßte. Eine Unterstützung des Ulmer Oberon-Systems wird es unter Microsoft Windows wahrscheinlich nie geben, schon alleine deswegen, weil viele sehr wichtige Fähigkeiten von UNIX fehlen.
Das neue System unter Linux folgt einem neuen Konzept, das später das dynamische Laden von Modulen aus einer Datenbank erlaubt. Um dies (anders als dies es für Java, C und C++ üblich ist) mit uneingeschränkter Schnittstellensicherheit zu gewährleisten und dies auch über das Netzwerk zu gestatten, ist eine andere Architektur erforderlich, bei der hier verteilte objekt-orientierte Datenbanken und Namensräume zum Zuge kommen. Mit dem traditionellen Modell, das auf dem Dateisystem basiert, läßt sich das nicht erreichen.
Die beiden Dienste pons und cdbd benötigen zusammen etwa 128 Megabyte Hauptspeicher, der dafür auch zur Verfügung stehen sollte. Sonst geht viel Zeit mit Swap-Aktivitäten verloren. Während einer Übersetzung wird noch einmal eine ähnliche Speichermenge benötigt.
Das System ist noch im Alpha-Zustand, und viele Dinge haben wir noch nicht optimiert. Es wird später schneller sein und wir wissen auch, was wir anpacken müssen. Nur Zeit dazu muß noch gefunden werden :-)
Zu berücksichtigen ist auch, daß ganz zu Anfang nur die Quellen vorliegen und somit eine Vielzahl von Modulen der Bibliothek übersetzt werden muß.
In dieser Datei ist ein Zugangsschlüssel, der einen Schreibzugriff auf die Datenbank gewährt.
Das ist nicht erforderlich. Sicherheitsbewußte können gerne neue User-IDs für pons und cdbd anlegen, die korrespondierenden Verzeichnisse mitsamt deren Inhalt unter /usr/local/oberon/var diesen Benutzern übereignen und dann diese Dienste unter den entsprechenden User-IDs starten.
Bei diesem Paket sind auch sämtliche Manualseiten dabei. Sie können also mit ``man Streams'' beispielsweise die Manualseite zum Modul Streams ansehen, wenn der MANPATH dank /usr/local/oberon/rc entsprechend erweitert worden ist. Die Manualseiten liegen allesamt unter /usr/local/oberon/man.
Sie können gerne zu mir kommen oder bei Christian Ehrhardt vorbeischauen, wenn Sie das System auf einem Notebook haben oder wir Ihren Rechner über das Netzwerk erreichen können. Andernfalls müssen wir Sie um ein Installationsprotokoll (welche Schritte wurden wie durchgeführt) und die genauen Fehlermeldungen bitten.