Linux/68k: Ein neues Betriebssystem für TOS-Rechner

Linux ist als alternatives Betriebssystem auf Computern mit 80386/80486 oder Pentium Prozessoren heutzutage gut bekannt, dass es aber auch eine Portierung inkl. einer Distribution dieses Multiuser- und Multitasking-Betriebssystems für die Rechner von Atari gibt, ist weit weniger bekannt.

Linux stellt ein Unix-ähnliches Betriebssystem dar, dessen 44 Entwicklung im März 1991 von Linus Benedict Thorvalds auf Basis des Lehr-Minix von Andrew Tanenbaum begonnen wurde. Zunächst wurde Linux ausschließlich für PC-Systeme entwickelt, wobei jedoch seit 1993 die Portierung auf andere Prozessorwelten in Angriff genommen wurde. Der besondere Vorteil von Linux liegt in der freien Verfügbarkeit der Quelltexte und der weitgehenden POSIX-Konformität.

Anfang 1994 gab es eine lauffähige Portierung des Linuxkernels für Amiga-Computer und damit auf ein Motorola-68k-System. Dies war der Startschuß für die Portierung auf Atari-Computer mit einem Motorola-Prozessor. Nach vielen Höhen und Tiefen wurde bereits im November 1994 auf der Protos in Hennef auf dem Stand von delta labs media, Wuppertal, ein auf TTs und Falcon stabil laufendes Linux/68k der Öffentlichkeit vorgeführt. Bis zur Auslieferung der ersten Distribution sollten jedoch noch 4 Monate ins Land gehen. Mittlerweile ist das erste Update auf das zweite Release der Original-Autoren Linux-68k-Distribution (ALD) erhältlich, welches die Grundlage für diesen Bericht darstellt. Die ALD ist eine sehr umfangreiche Distribution und enthält neben den Standardunixtools X11R6, einen kompletten GNU-C-Compiler in der Version 2.6.3, ein umfangreiches TeX-Paket, online-Dokumentation sowie ein Softwarepaket für die Vernetzung des Rechners.

Hardwarevoraussetzungen:

Prinzipiell ist Linux/68k auf allen Rechnern mit Motorola-Prozessoren ab 68030 lauffähig. Von den Atari-Rechnern erfüllen diese Voraussetzung der Atari TT, Falcon und mit einer PAK/3 aufgerüstete Rechner, sowie die Atari-kompatiblen Rechner Medusa T40 und der EAGLE. Bisher ist es jedoch nicht gelungen, auf dem letztgenannten Rechner Linux/68k erfolgreich zu installierten, da es nach den bisherigen Erfahrungen Probleme mit der Hardware, genannt sei die SCSI- unter Linux gibt.

Eine weitere Voraussetzung für den Betrieb ist ein mathematischer Coprozessor (FPU) vom Typ 68881 oder 68882, der im Falcon nicht standardmäßig eingebaut ist, aber ebenso wie bei der PAK/3 problemlos nachgerüstet werden kann. Bei der auf einem 68040er basierenden Medusa werden die fehlenden transzendenten Funktionen, wie z.B. Kosinus, Sinus oder Tangens durch eine im Linuxkernel vorhandene FPU-Emulation, basierend auf den original Motorola Sourcen, bereitgestellt. Ältere TTs besitzen einen Fehler in der Ansteuerung der FPLI, der jedoch durch einen einfachen Hardwarepatch behoben werden kann. Dieser Fehler trat auch schon unter dem original Atari Unix auf und ist nicht auf Linux/68k zurückzuführen.

Der Rambedarf liegt bei mindestens 4 MB, wobei hier ein Arbeiten mit der graphischen Benutzeroberfläche X11 (X-Window) sehr träge, jedoch dank virtuellem Speicher möglich ist. Empfehlenswert sind Arbeitsspeicherwerte von 8 MB aufwärts und derzeit durch einen Bug im Linuxkernel bis maximal 32MB.

Ein Arbeiten ohne Festplatte mit Linux/68k ist unmöglich und bei der vollständigen Installation der ALD werden ca. 190 MB ohne persönliche Daten benötigt. Ein Minimalsystem benötigt eine eigene Partition von ca. 10 MB plus eine weitere Partition für den virtuellen Speicher, die sogenannte Swap-Partition in der (umstrittenen) Größenordnung von zweimal der Größe des vorhandenen realen Arbeitsspeichers.

Auf diese Swap-Partition kann normalerweise ab einem Speicherausbau von 16 MB verzichtet werden, dies hängt aber auch von der späteren Verwendung des Rechners ab.

Berücksichtigt man diese Werte, so wird für eine vollständige Installation mindestens 250 MB auf der Festplatte benötigt, die sich in 3 Partitionen von ca. 200 MB für die Daten der ALD, ca. 34 MB für persönliche Daten (home-Verzeichnis) und ca. 16 MB für die Swap-Partition aufteilen könnten. Selbstverständlich können diese Werte dem persönlichen Bedarf weitgehend angepaßt werden und durch Verzicht auf das eine oder andere Paket der ALD vermindert werden.

Linux/68k unterstützt derzeit SCSI-Festplatten, die entweder an der SCSI- des TT oder Falcon angeschlossen sind, oder SCSI-Festplatten über einen Hostadapter an der Atari- ACSI-Schnittstelle. Ebenfalls unterstützt werden IDE-Festplatten, wie sie z.B. beim Falcon oder der Medusa T40 zum Einsatz kommen.

Leider ist die Unterstützung der SCSIPlatten ein heikles Thema und sorgt immer wieder für Probleme, die im Wesentlichen durch Schwächste en des Boarddesigns der Atarirechner begründet liegen. Einen wesentlichen Punkt stellt z.B. die Terminierung des SCSI-Busses dar, der insbesondere im Bereich der TTs zu Problemen führt, sobald eine externe Festplatte angeschlossen wird. Die Spezifikation des SCSI-Busses sieht normalerweise vor, dass der Anfang und das Ende des Busses mit sogenannten Terminatoren versehen werden. Üblicherweise ist der Beginn des Busses die SCSI-Schnittstelle des Rechners und das Ende das physikalisch letzte Gerät, unabhängig von der eingestellten Geräteadresse, am Ende des SCSI-Kabels. Beim TT sieht es jedoch beim Betrieb von interner Festplatte und externen Festplatten so aus, dass sich die Schnittstelle des Rechners innerhalb des SCSI-Busses befindet. Dies führt dazu, dass bei Problemen mit den SCSI Festplatten die Terminierung variiert werden muss, bzw. die interne Festplatte an den externen Anschluß umgehängt werden sollte. Eine allgemeingültige Empfehlung für die Anordnung der Terminatoren beim Betrieb interner und externer Festplatten am TT kann nicht gegeben werden, ein guter Versuch ist jedoch die interne Platte zu terminieren, den TT selber zu nicht terminieren und die letzte externe Festplatte zu terminieren.
Beim Falcon sind beim Betrieb von SCSI-Platten schon unter TOS Probleme bekannt, die mittels des Clock-Hardwarepatches behoben werden können. Linux/68k benötigt diesen Patch ebenfalls beim Betrieb von SCSI-Festplatten. Ebenfalls beim Falcon, jedoch nicht beim TT, sind derzeit noch Probleme beim gleichzeitigen Betrieb von SCSI-Platten und TT-Ram bekannt, die (noch) nicht behoben sind.

Aus bisher unbekannten Gründen verweigern die SCSI-Festplatten der DSAS- der Firma IBM die Zusammenarbeit mit Linux/68k, ebenso wie des öfteren von Problemen mit der 270 MB Wechselplatte der Firma SyQuest berichtet wird. Dieses Problem scheintjedoch von der Firmwareversion der Wechselplatte abhängig zu sein.

Auch der Betrieb von IDE-Festplatten ist nicht problemlos, da viele Platten sich nicht standardgemäß verhalten und sich z.B. sowohl als Master als auch als Slave am Rechner melden. Die IDE-Festplatten der Firmen Seagate und Maxtor sind Beispiele dafür. Dieses Problem wurde unter Linux/68k dadurch gelöst, dass wenn sich zwei IDE-Platten melden, die Parameter dieser Platten verglichen werden und wenn diese identisch sind, die zweite IDE-Platte nicht weiter beachtet wird. Dies verhindert allerdings auch, dass zwei wirklich identische IDE-Platten benutzt werden können.

Floppylaufwerke und SCSI-CD-ROM-Laufwerke werden von Linux/68k unterstützt, zu IDE-CD-ROM-Laufwerken liegen keine Erfahrungen vor.

Nun zur Grafikhardware: Linux/68k unterstützt die Standardauflösungen ST-Low, ST-mid, ST-high, TT-Iow, TT-mid und TT-high sowie 16bit beim Falcon. Desweiteren wird die Grafikerweiterung der Firma Overscan unterstützt, ebenso wie Grafikkarten mit einem ET4000 Chip, wie z.B. die Nova-Karten oder die Vofa. Die Geschwindigkeit bei Verwendung von 256 oder mehr Farben lässt noch zu wünschen übrig, wird aber hoffentlich irgendwann beschleunigt.

Die seriellen Schnittstellen werden seit der Kernel Version 0.9.9 vollständig unterstützt, so dass das bisher bestehende Problem der fehlenden Unterstützung der SCC-Schnittstelle nicht mehr besteht.

An der parallelen Schnittstelle werden die üblichen Drucker unterstützt, wobei immer die printcap-Datei im Verzeichnis /etc angepaßt werden muss. Es gibt allerdings die Einschränkung, dass bisher keine Treiber für die Atari-Laserdrucker existieren. Es ist auch sehr zweifelhaft, ob ein solcher in absehbarer Zeit realisiert wird, da die Druckdaten in einem sehr engen Zeitrahmen an den SLM geliefert werden müssen. Dies ist unter einem Multitasking-System nur schwer zu gewährleisten. Nicht ohne Grund sperrt z.B. der Diablo-Treiber von Atari für TOS während des Druckens alle Interrupts.

Versionen von Linux/68k

Derzeit herrscht unter den Anhängern von Linux/68k bezüglich der Versionsnummern das große Chaos, hier hört man etwas von 0.9.9, dort etwas von 1.1 und wieder wo anders etwas von 1.2.10 oder gar 1.2.13. Versuchen wir etwas Licht ins Dunkel zu bringen: Die Versionsnummern der Kernel werden von Koordinatoren vergeben. Aus der oben angerissenen Historie kann man erkennen, das die Atari-Versionen ursprünglich auf den Amiga-Versionen beruhen. Aus dieser Zeit gab es einen gemeinsamen Koordinator für die Amiga und Atari-Versionen: Hamish Macdonald aus Kanada, der zugleich auch Koordinator für die gesamte Motorola-68K-Schiene ist, denn wir wollen auch nicht die Apple-Rechner vergessen (die Portierung auf Macintosh Rechner scheint derzeit mal wieder still zu stehen).

Hamish Macdonald gab bei einem Versionsstand von 0.9.5 das Herausgeben neue Versionen aus Zeitgründen an Roman Hodek aus Erlangen, dem Hauptportierer des Atari-Linux, ab. Roman Hodek führt seit dem die 0.9.x-Versionsliste weiter, die Stand Mitte August 1995 bei 0.9.10 liegt. Diese Kernelversionen basieren in vielen Teilen auf einem PC-Linux-Stand von ungefähr 1.2.9, aber sie enthalten teilweise auch älteren Code bis zurück zu 1.0.9.

Die gewonnene Zeit nutzte Hamish Macdonald nun dazu, die Sourcen des Motorola-68k Baumes insgesamt an die derzeit aktuelle, offizielle PC-Linux-Version anzupassen (1.3.x-PC-Kernel sind Hackerkernel) und zu integrieren und veröffentlichte die Kernel-Versionen 1.2.10 und Mitte August 1.2.13. Da Hamish Macdonald selber keinen TOS-Rechner besitzt, sind diese Versionen zwar prinzipiell für TOS- geeignet, jedoch von ihm nur auf Amigarechnern getestet. Die Koordination der 0.9er Versionen von Roman Hodek mit den 1.2er Versionen von Macdonald hat Andreas Schwab aus Dortmund teilweise übernommen, man könnte auch sagen, dass Andreas Schwab die Anpassung der 1.2er Versionen auf die TOS-Rechner derzeit übernommen hat.

Der große Vorteil der 1.2er Versionen liegt in der verbesserten Unterstützung des ELF- des GNUC-Paketes, da einige subtile Bugs in der ELF Kompatibilität behoben wurden. Aber auch die 0.9er Kernelversionen sind in der Lage, sogenannte ELF-Binaries auszuführen. Die 0.9.x Versionen sind im Allgemeinen stabiler, da sie schon länger im "Praxistest" stehen, bei den 1.2x Versionen dagegen viele Teile des Kernels neu implementiert wurden und dementsprechend noch Bugs enthalten. Beide Kernelversionen sind selber im a.out Format kompiliert, da die Ladeprogramme sowohl auf dem Amiga als auch auf dem Atari bisher nur das a.out Format beherrschen.

Nun bleibt noch die Versionsnummer 1.1 zu erklären:

Diese Versionsnummer stellt die derzeitige Kennziffer der bisher einzigen Atari-Linux-Distribution dar. Diese Distribution wurde von Björn Brauel, der sich einige Zeit intensiv um die Atariportierung bemüht hatte, und wird von Roman Hodek und mir zusammengestellt. Diese ALD basiert immer auf den aktuellen Kernelversionen von Roman Hodek und ist auf Disketten oder einer multisessionfähigen CD-R bei den whiteline-Händlern erhältlich. Die aktuelle Versionsnummer der ALD lautet 1.113. (Siehe Bild 1)

Die ALD (BILD 2)

Die ALD wird mit einem GEM-konformen Installationsprogramm geliefert. Mittels dieses Programms wird unter dem normalen ATARI-Betriebssystem die Installation eines umfangreichen Linux/68k- vorbereitet und gestartet.

Beim Starten des Installationsprogramms ermittelt dieses die vorhandenen Festplatten inclusive der Partitionierung der Platten. Hierbei gilt das Linux-Schema, das SCSI-Platten als sclAx und IDE-Platten als hdAx eingeteilt werden. Dieses scl steht für SCSI-Platte, hd für IDE-Festplatte. Das folgende A symbolisiert die Gerätenummer, wobei ein a für erste Festplatte, b für die zweite Platte und so fort steht. CD-ROM, Streamer und andere Geräte besitzen eine eigene Kennung, z.B. sr für CD-ROMs und werden daher hier nicht mitgezählt. Das kleine x steht für die Partitionsnummer, wobei die erste Partition jeder Festplatte eine 1 bekommt, die zweite Partition eine 2... Sind an dem Computer eine SCSI mit ID 0 und eine IDE-Platte angeschlossen, die jeweils drei Partitionen besitzen, so sollten folgende Gerätekennziffern ermittelt worden sein: sdal, sda2, sda3, hdal, hda2 und hda3. Ist zusätzlich eine zweite SCSI-Platte mit einer Partition mit der SCSI-ID 2 angeschlossen, so sollte die Kennziffer sdb1 gemeldet werden.

Als erstes wird nun rechts oben in der Dialogbox das Installationsmedium ausgewählt, wobei hier die Wahl zwischen Diskette, CD-ROM und Festplatte besteht. Hiernach werden die Partitionen ausgewählt, die zukÜnftig unter Linux verwendet werden sollen. Ein eindeutiger Warnhinweis, dass diese Partitionen zukünftig nicht mehr von TOS ohne eine neue "Initialisierung" verwendet werden können fehlt. Diese Initialisierung ist allerdings auch mit dem Installationsprogramm möglich. (Siehe Bild 3)

Anschließend erfolgt die Einteilung der ausgewählten Partitionen auf das Linux- Das Linux-Dateisystem ist baumartig geordnet und beginnt mit dem Hauptverzeichnis welches durch den Schrägstrich (/) gekennzeichnet ist. In diesem Hauptverzeichnis befinden sich ausschließlich weitere Verzeichnisse, wie es dem Filesystemstandard unter Linux entspricht. Die wichtigsten Verzeichnisse sind "bin", "etc", "home", "lib", "sbin" und "usr". In den Verzeichnissen "bin` und "sbin" befinden sich Programme, die beim Starten von Linux oder für die Systemadministration erforderlich sind. In "etc" befinden sich üblicherweise Textfiles, die die Konfiguration des Linuxsystems bestimmen. Unter "home" befinden sich die persönlichen Daten der eingetragenen User in weiteren eigenen Verzeichnissen. Das "lib"-Verzeichnis enthält die Systembibliotheken, die für einen Programmstart erforderlich sind. Etwas ausführlicher wollen wir uns nun dem "usr"- widmen. In diesem Directory findet man wieder einige Unterverzeichnisse, die teilweise die gleichen Namen wie im Hauptverzeichniss befinden. In "bin" finden sich ausführbare Dateien (Programme), die mit der Distribution geliefert werden, in "man" die Manualpages (Hilfstexte) und z.B. unter "local" die lokalen Besonderheiten. Dies stellt nur einen groben Abriß des Filesystems dar und für genauere Informationen sei auf ein beliebiges Unix-Handbuch verwiesen.

Bei der Einteilung der ausgewählten Partitionen ist besonders Augenmerk auf die Einstellung der Swap-Partition zu richten.

GrafikkarteBildschirmbasisadresseI/O-Adresse
Gengtec ET40000xc00000Oxd00000
Imagine0xc00000
Mega40000xfec00000Oxfeff0000
Medusa ET40000x7f0000000x7f300000
Nova Falcon0xc000000xb00000
Nova VMEplusOxfec00000Oxfedc0000
SupernovaOxfea00000Oxfe900000

Ebenfalls in diesem Dialog stellt man das zu verwendende Filesystem ein. Standard ist das ext2-Filesystem von Remy Card, unterstützt wird aber auch das minix- welches schon unter Multitos/Mint bekannt ist und insbesondere zum Datenaustausch mit TOS interessant ist. Das ext2-Filesystem unterstützt Dateinamen bis zu einer Länge von 255 Zeichen und einer maximalen Größe einer Partition von 2 GB. Wichtig für die Atarianwender des Linux/68k ist, das die zukünftig unter Linux zu verwendenden Partitionen mit einem AHDI-kompatiblen Treiber partitioniert wurden.

Unter Punkt 3 der Dialogbox des Installationsprogrammes werden die Maschinenparameter des einzurichtenden Linux/68k-Systems eingestellt. Dies beginnt mit der Auswahl der Grafikauflösung. Die Beschreibung der einzustellenden Parameter lässt insbesondere bei der Verwendung einer Grafikkarte etwas zu wünschen übrig, jedoch mit etwas Ausprobieren sollte dies zu bewerkstelligen sein. Der erste Punkt "In aktueller Auflösung booten" wird dann benutzt, wenn das System beim derzeitigen Betrieb unter TOS in der zukünftig unter Linux gewünschten Grafikauflösung betrieben wird und diese Auflösung nicht über eine Grafikkarte bereitgestellt wird. Sollte die derzeitige Auflösung nicht dem unter Linux gewünschten entsprechen, benutzt man die Auswahl "Auflösung nach Auswahl" mit dem nebenstehenden Pop-Up. Auch hier darf wieder keine eine Grafikkarte im Spiel sein, denn diese muss über den dritten Punkt "Externe Grafikkarte" aktiviert werden. Hierbei sind mehrere Angaben erforderlich. Die Angabe der X/Y-Auflösung dürfte trivial sein, jedoch schon der zweite Parameter "Farbtiefe" erfordert einige Überlegung. Für eine s/w Darstellung ist hier der Wert 1 einzustellen, für 16 Farben 4 und für 256 Farben 8. Anschließend wird nach der Bildschirmspeicheradresse in hexadezimaler Form gefragt. Das in der Beschreibung der ALD genannte Programm zur Ermittlung dieser Adresse fehlt bisher im Lieferumfang und man ist auf andere Programme wie Sysinfo, VMG oder den Hersteller seiner Grafikkarte angewiesen. In Tabelle 1 findet man für einige gängige Grafikkarten die entsprechenden Parameter. Der letzte anzuklickende Punkt unter den Grafikparametern für den Betrieb einer Grafikkarte hängt stark von dieser ab. In s/w werden üblicherweise "normale Planes" und bei 16 oder 256 Farben oftmals "Packed Pixels" verwendet.

Hat man die Grafikparameter erfolgreich eingetragen, folgen nun einige Angaben, die insbesondere bei einem Betrieb in einem Netzwerk erforderlich sind. Es beginnt mit der Angabe des Hostnamen, womit der Name des Rechners beim Betrieb unter Linux erfragt wird, dieser kann meist frei gewählt werden. Bei keinem Betrieb in einem Netzwerk und wenn kein Internetanschluß geplant ist, kann der Domainname freigewählt werden, z.B. irgendwo.de. Bei der IP-Adresse sollte man sich aber in jedem Fall an die Konvention halten und eine der folgenden beiden Adressbereiche benutzen:

192.1-254.1-254.1-254
oder

193.1-254.1-254.1-254. 1-254
bedeutet, dass man eine Zahl im Bereich von 1 und 254 auswählen kann. Wird der Betrieb des Rechners in einem Netzwerk angestrebt, so muss man sich die Daten vom zuständigen Netzwerkadministrator zuteilen lassen. Mit dem Usernamen ist der Name des Benutzers gemeint, mit diesem wird er vom Computer identifiziert. Die Verwendung von deutschen Sonderzeichen sollte man vermeiden. Unter "Realer Name" wird der echte Name des Users vom vorhergehenden Punkt angegeben. Sollen mehr als ein Benutzer im System eingetragen werden, so geschieht dies später beim Betrieb unter Linux mit dem Kommando "adduser". Auch sollte man nicht vergessen, nach der Installation des Linux/68k sowohl für den Superuser root als auch für den gerade eingetragenen Benutzer ein Passwort zu setzen, dies geschieht mit dem Kommando "passwd".

An dieser Stelle muss ich für diese Ausgabe etwas abrupt unterbrechen, da das Längenlimit zuschlägt. In der nächsten Ausgabe geht es mit der Beschreibung des TOS-Installationsprogramms der ALD weiter. Daran schließt sich eine ausführliche Darstellung der einzelnen Pakete der ALD an. Zum Abschluß gibt es dann noch einige Tips zum Betrieb eines Atari-Rechners und der Medusa T40 unter Linux/68k und eventuelle Neuigkeiten in der Unterstützung weiterer Hardware.



Aus: Atari Inside 06 / 1995, Seite 18

Links

Copyright-Bestimmungen: siehe Über diese Seite