Alte Linux-Versionen


Einleitung

Wenn Du je versucht hast, einen 1.0 oder 1.2 Kernel unter einem 2.0 System zu copilieren, wirst Du wahrscheinlich eine Enttäuschung erleben: Es funktioniert nicht mehr. Dafür gibt es mehrere Gründe: Neuerer Compiler, inkompatible Änderungen in den binutils, und die Umstellung von a.out auf ELF, die 1995/1996 stattfand.

Aber es gibt durchaus Bemühungen, die alten Kernel unter 2.x compilierbar zu machen. Doch wozu sollte man das tun?

Der Hauptgrund ist, daß ältere Kernel weniger Speicher verbrauchen. Dies ist gut für ältere Rechner mit wenig Speicher und Embedded Systems, wo die Speicherkosten durch die Stückzahl die Softwarekosten dominieren. Es gibt in der Tat Projekte, um sehr kleine Kernel zu verwirklichen.

Ein weiterer Grund ist die Stabilität. Mit den richtigen Patches ist z.B. ein 1.2.13 Kernel eine sehr stabile und bewährte Umgebung und wird teilweise heute noch eingesetzt. Solch ein System kann wahrscheinlich Jahre laufen, ohne heruntergefahren zu werden.

Die meisten Applikationen laufen ohne Änderungen auf diesem alten Kernel (genaugenommen auf jedem alten Kernel).

Natürlich haben alte Kernel Nachteile: Sie unterstützen kein ELF-Format (es gibt jedoch Patches). Sie unterstützen nicht soviel Hardware wie neuere Kernel (können jedoch wahrscheinlich auch auf den neuesten Systemen laufen; ich habe momentan 1.0.9 auf meinem P-133 Notebook). Sie können auch Fehler und Sicherheitsprobleme haben, die in späteren Versionen beseitigt wurden. Sie haben auch nicht die hohe Performance neuerer Kernel (aber das ist bei den meisten Applikationen egal).

Vor Version 1.0

Im Januar 1999 baute ich einen PC aus Altteilen zusammen und installierte LST 1.7 (von Ende 1993) darauf. Hard- und Software waren also etwa gleich alt ;-). Die Hardware besteht aus 386 SX-33, 16 MB RAM, NE2000-kompatibler Netzwerkkarte, 520 MB IDE-Festplatte, 8bit Grafikkarte, 3,5" Floppy und den üblichen Ports.

Die Installationsroutine dieser Distribution ist, anders als LST 1.8, noch rein textbasiert. Sie bietet 6 Installationsarten an: Von Disketten, Festplatte, CD-ROM (damals wurden neben SCSI nur zwei CD-Laufwerke unterstützt), via NFS, via SLIP und via FTP.

Ich verwendete NFS zur Installation. Der Vorgang war aufgrund der Langsamkeit des Rechners und der interaktiven Installation der ganzen Serien recht langwierig. Das Resultat war ein komplettes System, das ca. 200 MB auf der Platte beansprucht:

Kleine Mängel:

Das erste Programm, das ich zusätzlich installierte, war... bzip2. Es ließ sich ohne jedes Problem compilieren und ausführen. Ich benötigte es, um ein Kernel-Archiv zu entpacken.

Dann versuchte ich, verschiedene Kernel (0.10, 0.97, 0.99 und 1.0.9) zu compilieren. Bis jetzt hatte ich keinen Erfolg mit 0.10 und 0.99, weitere Versuche werden aber folgen. 1.0.9 ließ sich ohne jedes Problem compilieren. 0.97 erwies sich als schwieriger, jedoch gelang es mir zuletzt. Mehrere kleine Änderungen in den Kernel-Sourcen waren dazu notwendig. Der Grund dafür liegt in Änderungen in den Tools (make, gcc) sowie Änderungen in den gcc Include-Dateien.

Als nächstes versuchte ich, SSH 1.2.26 zu compilieren. Nach kleinen manuellen Anpassungen gelang dies auch, jedoch lief nur der Client. sshd blieb zunächst aus irgendeinem Grund beim Verbindungsaufbau hängen. Nach einem halben Abend Debugging und Probieren fand ich jedoch das Problem. Nachdem ich zusätzlich die Shadow-Library zu sshd linkte, funktionierte alles einwandfrei.

Als weiteres wichtiges Programm compilierte ich Python. Nach mehreren Stunden war es fertig - und funktionierte.

Nach dem Ersetzen der Grafikkarte durch eine weitere Netzwerkkarte versuchte ich das System als Router einzusetzen. Das war ein Problem, das in zwei Schritten gelöst werden mußte. Schritt 1 war, die zweite Netzwerkkarte zu erkennen. Die erste wurde vom NE2000-Treiber bereits automatisch erkannt. Um ihn auch die zweite finden zu lassen, hätte ich einen Parameter "ether=" beim Booten angeben können. Die damalige Version von LILO unterstützte aber noch nicht die Übergabe von Parametern mit dem "append"-Schlüsselwort. Also folgte ich einem Hinweis im NET2-HOWTO und machte eine kleine eine Änderung in drivers/net/Space.c. Der zweite Schritt war dann nur noch, nach Installation des neuen Kernels Interface und Route zu konfigurieren.

Über den Router funktionierten NFS und SSH, allerdings mit miserabler Performance. Dies liegt wahrscheinlich mehr an der Hardware als am Kernel. Schlecht war jedenfalls, daß das Routing unter bestimmten, bisher ungeklärten Umständen stoppte, was nur durch einen Neuaufbau der Verbindung zu beheben war. Das passierte viel zu oft, um den Router sinnvoll nutzen zu können. Somit wird mir nichts übrigbleiben, als einen DOS-basierten Router oder Linux 2.x als Alternative zu probieren.

Die Stabilität des Systems ist - wie bei allen Kerneln der 0.99 Serie - beeindruckend. Sicher könnte es durch Netzwerkattacken abgeschossen werden, bei normalem Gebrauch aber ist es unzerstörbar.

Der 1.0 Kernel

Die letzte offizielle Version war 1.0.9. Ich habe im Mai 1998 die LST 1.8 Distribution (von Frühjahr 1994) auf meinem Notebook installiert. Diese verwendet einen stark gepatchten 1.0.9 Kernel. Installation von CD-ROM war nicht möglich, da dieser Kernel noch keine IDE-CD-ROMs unterstützt. Zu dieser Zeit existierten sie einfach noch nicht, doch leider verbreiteten sie sich bald darauf wie die Pest...

Also kopierte ich die Distribution auf die Platte und installierte von dort. Das war kein Problem, da die komplette Distribution komprimiert nur 78 MB groß ist. Nach der Installation, mit TinyX und XFree 2.0, sind 220 MB auf der Festplatte belegt. Es benötigt weniger als 4 MB RAM, und etwa 6 MB nach Start des X-Servers (leider nur VGA-Auflösung). Ja, X funktioniert, obwohl der sehr neue Trident-Chipsatz natürlich nicht unterstützt wird. Doch Standard VGA-Modi funktionieren immer.

Neben der fehlenden Unterstützung für IDE CD-ROMs gibt es andere Nachteile. PCMCIA wird wahrscheinlich nicht unterstützt, daher gibt es keine Netzwerkverbindung mit dem Notebook. Es gibt aber PCMCIA-Patches aus dieser Zeit. Wenn ich Zeit hätte, könnte ich einmal versuchen, ob es funktioniert.

Ferner gibt es keine APM-Unterstützung und keine Unterstützung für moderne Notebook-Grafikchips. Man könnte natürlich versuchen, die aktuelle Version von XFree86 zum Laufen zu bekommen.

Diverse andere Hardware, die es damals noch nicht gab, wird nicht unterstützt, woran sich auch nichts mehr ändern wird: PCI, Geräte, die an den Parallelport angeschlossen werden (außer Druckern), ISDN-Geräte, ...


Software Index | Home Page
Erstellt von hjb
Letzte Änderung 1999-10-09