Unix für den Amiga

Vorwort

Der Betriebssystem-Markt ist gerade in den letzten Monaten heiß umkämpft: allen voran Microsoft's nächster Versuch Windows NT, gefolgt von IBM's OS/2, NextStep, Novells NetWare, ... . Dabei wird immer wieder argumentiert, daß diese Betriebssysteme auch auf den Server-Bereich abzielen, schließlich sind sie durch ihre Multitasking- und teilweise vorhandenen Multiuser-Fähigkeiten dafür bestens vorbereitet. Außerdem sind Netzwerke im gegenwärtigen Downsizing-Boom gerade "in", und für die ist nunmal (mindestens) ein Server nötig.

Liest man die eine oder andere Fachzeitschrift, so wird man die genannten Betriebssystem immer wieder mit einem Betriebssystem verglichen sehen: Unix. Anscheinend hat dieses 25 Jahre alte Betriebssystem doch noch ein paar Sachen zu bieten, die heute (noch) nicht überall selbstverständlich sind: Neben Multitasking und Multiuser-Betrieb sind dies vor allem die angebotenen Server-Dienstleistungen und die Hardware-Unabhängigkeit.

Indem die Hersteller einige dieser Eigenschaften übernehmen, versuchen sie, sich an Unix anzupassen. Einige behaupten sogar, ihr Betriebssystem wäre "das bessere Unix".

Nun, meiner bescheidenen Meinung nach gehört aber noch ein Punkt zu Unix, den wohl keiner der Hersteller erfüllen kann: dies ist die Verfügbarkeit des Betriebssystem-Quellcodes, um damit eigene Forschungen betreiben zu können. Bei Unix wurde dieser Quellcode von Anfang an der Allgemeinheit zugänglich gemacht, was auch dazu führte, daß es das Unix nicht gibt: Als Hauptströmungen haben sich das kommerzielle System V (ehemals im Besitz von AT&T, heute von Novell) und die frei verfügbare Berkley Software Distribution (BSD) durchgesetzt.

Eben diese kostenlose Verfügbarkeit des Quellcodes führte dazu, daß Unix nicht nur auf den Rechnern lief, für die es ursprünglich lief, die PDP 11 der Firma Digital. Vielmehr wurde es - auch von kommerziellen Anbietern - auf die vorhandenen Rechner portiert. Aus diesem Grund sind Suns SunOS und Digitals Ultrix zum Berkeley-Unix kompatibel. Aber auch diverse Hochschulen und Privatpersonen portierten fleißig auf eigene Rechner.

Geschichte

In eben einer solchen privaten Unternehmung wurde eine Variante des BSD-Unix - NetBSD - auch auf den Amiga portiert. Die Ausgangsbasis bildete eine bestehende und lauffähige Portierung auf die ebenfalls mit einem Motorola-Prozessor ausgerüstete HP300 von Hewlett-Packard, so daß sich der Aufwand für den Hardware-abhängige Teil um einiges reduzierte. So war es dann auch innerhalb von 2 Wochen möglich, die restlichen Teile an den Amiga anzupassen: Treiber für Console, Tastatur, serielle und parallele Schnittstelle und SCSI-Festplatte.

Geleistet wurde dies von einem Absolvent ETH Zürich, Markus Wild. Dieser hat sich auf dem Amiga bereits durch eine Portierung des gcc und seiner ixemul.library einen Namen gemacht.

Nachdem der NetBSD-Kernel auch diverse Hilfsprogramme wie Shell, Compiler und Editor stabil unter NetBSD liefen, erfolgte im Juli '93 die erste Veröffentlichung.

Entwickler & Entwicklung

Seitdem wirken weltweit neben Markus Wild ca. 15 Personen aktiv an der Portierung von NetBSD auf den Amiga mit, hauptsächlich Studenten aus Europa und Amerika.

Dazu kommt die CSRG (Computer Science Research Group, Anm. d. Red.) in Berkeley, die unter der Leitung von Chris Demetriou vor allem an systemunabhängigen Teilen von NetBSD wie etwa diversene Dateisystemen, Shared Libraries, Utilities etc. arbeitet.

Die Kommunikation erfolgt vollständig auf elektronischem Weg.

Dikussionen werden in der Usenet-Gruppe comp.amiga.unix und einer eigenen Mailing-Liste geführt, private Nachrichten werden per EMail ausgetauscht. Oft wird auch online am IRC (Internet Relay Chat) diskutiert, was auch die schnellste Möglichkeit ist, Hilfe bei Problemen zu erhalten.

Programme und Quellcode werden via FTP transportiert, ein System von vernetzten, täglich gespiegelten FTP-Servern hilft, die Netzlast gering zu halten.

Hardwarevoraussetzung

Welche Hardware wird (mindestens) benötigt, um NetBSD auf einem Amiga laufen zu lassen?

Momentan läuft NetBSD nur auf MC68040- und MC68030-Prozessoren mit MMU, also z. B. Amiga 3000, A2000 mit A2630 oder Zeus PPS und Amiga 4000; Bei letzterem wird jedoch der eingebaute AT-Bus-Controller (noch) nicht unterstützt. An einer 68060-Version wird gearbeitet.

Da NetBSD (noch) keinen Floppy-Treiber besitzt, sind eine SCSI-Festplatte und ein entsprechender Controler zwingend nötig. Momentan werden der interne HD-Controller des A3000, der A2091 sowie der GVP Series-11 Controller unterstützt. An einem Treiber für Fastlane/Z3 wird gearbeitet.

Anschluß von DAT- und QIC-Streamern (jeweils SCSI) und Wechselplatten (SyQuest, ...) ist möglich.

An Grafikkarten werden momentan neben den Custom-Chipset auch Macro Systems' Retina unterstützt, eine baldige Unterstützung von Picasso II ist zu erwarten.

An Plattenplatz sollte es nach Möglichkeit nicht fehlen. Zwar ist es möglich, NetBSD mit 15MB zu betreiben, dann aber nur in einer absoluten Minimalkonfiguration. Will man den Kernel und andere Programme selbst neu übersetzten, dann sind mindestens 100MB empfehlenswert, mit 200MB läßt sich gut arbeiten. Nach oben sind natürlich keine Grenzen gesetzt.

Ebenso steht's mit dem zur Verfügung stehenden RAM-Speicher: Mindestens 4MB, nach oben keine Grenzen. Allerdings sollte darauf geachtet werden, daß NetBSD momentan den größten Speicherblock verwendet, den es im Autoconfig-Bereich findet. Evtl. vorhandene Speicherkarten außerhalb des Autoconfig-Bereiches werden nicht erkannt und können auch nicht für SCSI-DMA verwendet werden!

Neben dem Fast-RAM sollte noch 1MB Chip-RAM zur Verfügung stehen, da sonst der Kernel nicht geladen werden kann.

Features

Was bietet NetBSD-Amiga nun, wenn es installiert ist?

Im Gegensatz zum Amiga-Linux läuft es stabil und ist voll einsatzfähig, d. h. alle von Unix gebotenen Möglichkeiten können - auch im Multiuser-Betrieb - genutzt werden.

Neben den üblichen Unix-Utilities (Shells, ls, ...) sind auch Compiler (gcc 2.4.5), Editoren (GNU Emacs 19, vi) und diverse X-Clients verfügbar.

Desweiteren ist die Netzwerk-Anbindung vollständig realisiert. Neben Ethernet (A2065, Ameristar) ist es auch möglich, TCP/IP mittels SLIP oder PPP über eine serielle Leitung zu betreiben. In jedem Fall stehen sämtliche Netzwerkdienste uneingeschränkt zur Verfügung, jeweils als Client und/oder Server: telnet, ftp, rlogin, ircII, DNS, NFS, NNTP, ...

X-Windows-Support ist vollständig vorhanden. Bibliotheken zum übersetzten von X-Clients existieren, jedoch nur in statischer Form, d. h. die übersetzten Programme werden sehr groß (>500K). Mit Shared Libraries wäre dieses Problem nicht gegeben, sie sind bereits in Entwicklung.

Für den Custon-Chipsatz existiert außerdem ein auf X11R4 basierender X-Server, X11R5 ist zu erwarten. Außerdem wird an Servern für diverse Grafikkarten gearbeitet, momentan für Retina und Picasso II.

Da NetBSD noch keine eigenen Shared Libraries verwendet ist es möglich, diese von MC68030-basierenden SUN-Wortstations (Sun 3/60, Sun 3/80) zu verwenden, was uns zu einem sehr interessanten Feature von NetBSD-Amiga führt: der Binärkompatibilität zu Sun3-Rechnern. D. h. es ist möglich, auf dem Amiga Programme ablaufen zu lassen, die für/auf SunOS-basierenden Rechnern übersetzt wurden.

Die aufgeführten Punkte sind weitgehend fertiggestellt und laufen, es gibt aber noch einige Teilprojekte, an denen gearbeitet wird. Insbesondere sind dies die Shared Libraries von NetBSD, ein Floppy-Treiber, ein Amiga-DOS Dateisystem um von NetBSD aus auf Amiga-Platten zugreifen zu können sowie Treiber für die eingebaute Audio-Hardware.

NetBSD an der FH Regensburg

Im Rahmen meines 2. Praxissemester hatte ich im Rechenzentrum der Uni Regensburg Gelegenheit, mich intensiv mit NetBSD auseinanderzusetzen.

Neben einem Stellplatz für meinen Amiga 2000 wurde mir außerdem eine Workstation zum Anschluß ans Internet und als X-Terminal für den Amiga zur Verfügung gestellt. Dafür möchte ich mich auf diesem Weg nochmal recht herzlich bei Herrn Karl Würfl bedanken.

Die Verbindung ans Internet bestand aus einer seriellen Leitung zur Sun-Workstation, die als Gateway konfiguriert wurde. Auf dieser seriellen Leitung wurde mit 9600 Baud PPP (Point to Point Protocol) als Transportprotokoll für TCP/IP gefahren. Dadurch standen auch sämtliche Netzwerkdienste uneingeschränkt zu verfügung.

Um dies auszutesten wurde der Amiga als zweiter News-Server der Uni konfiguriert und vom Haupt-Server mit News gespeist. Bei einem Ausfall des Haupt-Servers hätte der Amiga dessen Rolle vollständig übernehmen können!

Da an der Console des Amigas nicht oder nur sehr selten gearbeitet wurde blieb dessen Bildschirm abgeschaltet, Logins erfolgten vielmehr über das Netzwerk. Dabei wollte ich noch die Auslastung des Rechners wissen. Unter X11 existiert dazu ein Programm "xload", aber die zum compilieren nötigen Bibliotheken existierten zu diesem Zeitpunkt noch nicht.

Nun, so wurden also zuerst die gesamten X11-Bibliotheken übersetzt, um anschließend xload und xclock übersetzten zu können. Das compilieren der Bibliotheken dauerte mit Vorbereitungen ca. 2,5 Tage. Die X-Clients liefen dann auf der CPU des Amiga und wurden auf dem Bildschirm der Workstation angezeigt.

Nachdem mein Praktikum nun vorüber ist steht mein Amiga wieder zuhause, es ist jedoch abzusehen, daß dieses Experiment wiederholt wird, diesmal vom Fachbereich Informatik der Fachhochschule Regensburg aus.

Verfügbarkeit

Wer bis hierher gelesen hat, den interessiert sicherlich noch, wo man denn NetBSD für seinen Amiga bekommt.

Kosten tut NetBSD-Amiga nichts, wenn man mal von der vorausgesetzten Hardware absieht. Außerdem darf es beliebig weitergegeben werden.

Dazu sollen hier zwei FTP-Server erwähnt werden:

Nachwort

Abschließend sei gesagt, daß NetBSD z. Zt. DAS Unix auf dem Amiga ist. Amix wird nicht mehr unterstützt und Linux ist wohl noch eine gewisse Zeit lang keine Konkurrenz.

Um die Forschungen an der FH Regensburg hinsichtlich Unix auf dem Amiga zu unterstützen möchte ich an diesem Punkt um materielle Unterstützung bitten. Vor allem eine Ethernet-Karte würde sehr helfen, da sie doch wesentlich schneller ist als eine serielle Verbindung. Auch wäre eine Grafikkarte von Interesse, damit evtl. die zweite Hälfte von X11 - der X-Server - vor Ort realisiert oder zumindest erprobt werden kann. Ansprechpartner hierzu sind der Autor (Hubert Feyrer) sowie die Troja-Redaktion.

Sonstige Interessierte können sich gerne an mich wenden, für Fragen stehe ich gerne zur Verfügung.


Hubert Feyrer, November 1993