Meine Computer-Laufbahn


Als Anfang der 80er Jahre der Aufschwung der Computer begann, was am deutlichsten an den in immer größerer Zahl und zu immer günstigeren Preisen erhältlichen Heimcomputern erkennbar war, begann auch mich das Thema zu interessieren. Ich begann, Bücher und Elektronik-Zeitschriften zu lesen. Ich erinnere mich an diverse Ausgaben des Elektor. Eine Ausgabe hatte einen Vergleich verschiedener 16-bit-Prozessoren. Eine andere enthielt eine Bauanleitung für einen Schachcomputer mit einem 8086-Prozessor. Von diesem Artikel verstand ich nur die Hälfte. Sicher ist aber, daß das Schachprogramm selbst für damalige Verhältnisse nicht besonders gut war.

In diese Zeit fiel auch die erste Anschaffung einer Spiele-Konsole. Mir ist entfallen, wie das Teil hieß, es enthielt jedoch einen 8-bit Mikroprozessor vom Typ 1802. Der Webseite 8bit-Museum.de zufolge handelte es sich um ein Channel F System 2, es ist ganz oben auf der Seite zu sehen. Es gab eine Reihe interessanter Spielemodule, alle primitiv aus heutiger Sicht: Labyrinth, Air Raid und - das teuerste Modul, wohl annähernd 200 DM - Schach. Auf den höheren Schwierigkeitsstufen konnte mich das Programm schlagen, doch lagen die Bedenkzeiten jenseits von Gut und Böse.

[fx-80]
fx-80

In dieser Zeit wurde auch ein Taschenrechner für die Schule angeschafft. Für die damalige Zeit ein Novum. Angeschafft wurde ein Casio fx-80, ein Gerät mit ausreichender Leistung und bestimmt an die 80 DM teuer. Als es ein paar Jahre später den Geist aufgab, ersetzten es meine Eltern durch einen Casio fx-411. Den habe ich heute noch. Mein Bruder bekam später einen fx-82, der viel toller war als der fx-80.

Mit diesem Taschenrechner (der nicht programmierbar war) begann ich einer Leidenschaft zu frönen, die mich immer noch beschäftigt: Primzahlen und andere natürliche Zahlen mit speziellen Eigenschaften. Mit Hilfe des Siebes des Eratosthenes, aufgezeichnet auf Papier, und wiederholten Additionen auf dem Taschenrechner, ermittelte ich alle Primzahlen bis mindestens 50000. Ich hatte sogar Schablonen, die mir halfen, die Arbeit zu reduzieren. Die Resultate "veröffentlichte" ich in Mini-Büchern im Format 4x5 cm, von denen mein Bruder und ich mehrere produzierten. Diese "Bücher" sind allerdings handgeschrieben und somit echte Unikate. Ich besitze sie heute noch.

1982, ich war bereits in der 10./11. Klasse, wurde in der Schule ein Computerraum eingerichtet. Er enthielt einen oder zwei Commodore PET (6502-Prozessor, 4, später auch 8 KB RAM) und später auch einen C64. Einer unserer Lehrer hielt einen BASIC-Kurs ab, mit dessen Hilfe sich das mir bisher völlig unbekannte Gebiet der Programmierung auftat. Ursprünglich wollte ich in der Oberstufe einen Informatik-Kurs belegen, doch das wäre nur außerhalb der regulären Stundenzahl möglich gewesen, und da ich faul bin, verzichtete ich. Wahrscheinlich hatte ich mir zu dieser Zeit schon genug Wissen angelesen, um zu dem Glauben zu gelangen, daß mir der Kurs außer guten Noten sowieso nichts bringen würde. Womit ich wohl recht hatte.

Nach diesem BASIC-Kurs konnte man stundenweise seine freie Zeit im Computerraum verbringen. Es gab einen UCSD-Pascal-Compiler, an dem ich gleich meine ersten Versuche in Pascal machte, die aber kläglich scheiterten. Noch fehlte mir das tiefere Verständnis. Erfolgreicher war ich mit Assembler, während ich BASIC gleich mal ignorierte. So lernte ich den Assemblercode der 6502-CPU, den ich zeitweise auswendig wußte, und lernte, wie man eigene Programme startet, disassembliert und debuggt. Meine Anwendung war eine Sammlung von Routinen für Langzahl-Arithmetik, was mit meiner Faszination für Primzahlen zu tun hatte. Die Software war komplett selbst entworfen und funktionierte fast auf Anhieb.

[Bootscreen des TI99/4A]
Bootscreen des TI99/4A

1983 schafften mein Bruder und ich den ersten eigenen Rechner an - einen TI99/4A für 700 DM. Im Gegensatz zu allen anderen Homecomputern hatte er einen 16-bit-Prozessor, was ihn aber leider weder schneller machte noch zu mehr RAM verhalf. BASIC und Video-Ausgabe mußten sich 16 KB teilen, die in 8 oder 16 Chips mit DRAM realisiert waren. In der Folgezeit programmierte ich zahllose Algorithmen, ferner gaben wir Spiele aus Computerzeitschriften ein und entwickelten auch eigene simple Spiele und Applikationen. Datenaustausch mit anderen Benutzern war im Prinzip über Kassetten möglich, doch gab es nicht viele TI99/4A-Nutzer in unserem Bekanntenkreis. Modem, Drucker oder gar Floppy-Laufwerke lagen außerhalb unserer finanziellen Möglichkeiten.

Mit Bordmitteln war es nicht möglich, den TI99/4A in Assembler zu programmieren. Erst das Extended-Basic-Modul machte das möglich, das uns aber ebenfalls viel zu teuer war (ca. 200 DM). Die Rettung kam vom Vater eines Freundes, der im Selbstbau (!) eine Kopie des Moduls herstellte (mit mindestens vier 8 KB großen EPROMS) und uns schenkte. Doch das reichte noch nicht. Denn Assemblercode benötigt direkt adressierbares RAM zum Laufen. Davon hatte der TI99/4A jedoch gerade mal 256 Bytes. Der Rest des RAMs war nur über I/O-Ports ansprechbar. Es mußte eine Speichererweiterung her, die ich mir aus vier 8 KB großen statischen RAMs selbst baute. Die Chips kamen wieder vom Vater des erwähnten Freundes, was mir rund 240 DM sparte. Das dürfte 1985 gewesen sein.

Jetzt begannen Experimente mit Assemblercode (für den TMS9900, den Prozessor des TI99/4A). Mit einer Hilfsroutine wurden von BASIC aus die Programme in den Speicher geschrieben und dann aufgerufen. Schnell hatte ich das eine oder andere Programm Assembler-beschleunigt. Doch nun wollte ich mehr. Etwa gleichzeitig mit dem Beginn meines Studiums der Informatik in Karlsruhe (Herbst 1985) begann ich ein "Monitor"-Programm zu entwerfen, ein Programm, das über einen kleinen Loader in den Speicher gebracht wurde und die komplette Kontrolle übernahm. Wer hier an den Befehl "debug" vom MS-DOS denkt, ohne den exit-Befehl, liegt nicht ganz falsch. Inspiriert wurde ich wahrscheinlich von den Fähigkeiten des Commodore PET. Die erste Version dieses Programms wollte ich fest in ein EPROM brennen, das in den oberen 8 K des Speichers liegen sollte. Aufgrund eines Bugs (ich hatte vergessen, einen 8-bit-Wert von der oberen Hälfte eines Registers in die untere zu schieben) funktionierte das Programm aber nicht. So ersetzte ich das EPROM durch RAM und wich auf die Lademethode über Extended BASIC aus.

Man kann das "Monitor"-Programm durchaus als Betriebssystem bezeichnen, es ersetzte schließlich das mitgelieferte und übernahm die vollständige Kontrolle. Bis es aber soweit war, hatte ich noch einige Experimente vor mir, die meist mit einem Reboot oder Power-Cycle der Maschine endeten. So ähnlich muß sich Linus Torvalds sechs Jahre später gefühlt haben, als er Linux Schritt für Schritt zum Booten auf seinem PC brachte. Nach ein paar Wochen hatte ich aber ein lauffähiges System mit einem Disassembler, einem Speicherdump und der Möglichkeit, Speicherzellen zu ändern und Programme an beliebigen Adressen zu starten. Hilfreich hierfür waren ein komplettes Disassembler-Listing des eingebauten ROMs, in mühevoller Handarbeit erstellt, und die Hardware-Dokumentation des TI99/4A.

Es war nicht schwer zu erkennen, daß keine der ROM-Routinen für mich brauchbar war. So mußte ich für die Tastatureingabe eine eigene Routine schreiben, die die eingebaute zum Vorbild nahm, aber wesentlich besser war. Auch die I/O mit der Kassette war nicht nur unbrauchbar, sondern auch absolut lächerlich langsam. Zur Datensicherheit wurde jeder Datenblock zweimal hintereinander geschrieben, die effektive Datenrate dürfte bei 600 bit/s gelegen haben! Ich begann zu experimentieren und gelangte schließlich zu einer Art Morsecode, mit dem ich rund 4000 bit/s erreichte, bei deutlich höherer Datensicherheit.

Um Applikationen schreiben zu können, benötigte ich aber noch ein paar Tools. Zuerst entwickelte ich einen einfachen Assembler. Den grundlegenden Code brachte ich innerhalb von 20 Minuten zu Papier, so gut kannte ich die Maschinenbefehle des Prozessors bereits. Nun, da ich auch die Möglichkeit hatte, meinen Code schnell und sicher abzuspeichern, konnte ich mich an die erste Applikation wagen. Das war natürlich ein Editor, dessen Bedienung vermutlich von einem Apple II-Programm inspiriert war (der Rechnerpool der Erstsemester an der Uni war damals mit Apple II bestückt). Die Bedienung war dem vi nicht unähnlich, es gab aber natürlich viel weniger Funktionen. Der Editor paßte in weniger als 3 KB Speicher, was rund 21 KB für zu editierende Dateien freiließ. Das "Betriebssystem" belegte 8 KB im Speicherbereich 0x2000 bis 0x3fff, erst in der letzten Ausbaustufe wurde dieser Platz fast komplett benötigt. Der Rest des Speichers lag getrennt davon im Bereich von 0xa000 bis 0xffff, es konnte also kein Programm mehr als 24 KB nutzen.

Um den Editor sinnvoll für die Programmierung zu nutzen, benötigte ich einen Assembler, der eine Datei einlesen konnte. Daher entwickelte ich 1986 einen Makro-Assembler, der mir alles gab, was ich brauchte. Er benötigte zwei Durchläufe durch den Quellcode, um den Assemblercode zu erzeugen. Nun war ich in der Lage, den Assembler mit sich selbst zu assemblieren, was die Entwicklung sehr vereinfachte. Auch den Quellcode des Editors gab ich mit dem Editor ein, um auf einfache Weise neue Versionen und Fehlerkorrekturen erzeugen zu können.

Mitte 1986 mußte ich mein Studium unterbrechen, um den Zivildienst anzutreten. Einen Krankenhausaufenthalt (März 1987?) von etwa einer Woche nutzte ich, um mein Betriebssystem komplett neu zu schreiben. Zuhause gab ich den Quellcode mit dem Editor ein und konnte ihn so ebenfalls erstmals mit dem Assembler übersetzen.

Nun konnte ich eigene Applikationen schreiben. Ich spielte mit mathematischen Sachen, rekursiven Funktionen in Assembler, und grub auch meine Routinen für Langzahlarithmetik wieder aus und schuf so quasi eine virtuelle Maschine, die mit großen ganzen Zahlen rechnen konnte. Wenn auch sehr langsam, aber immerhin mit der maximalen Geschwindigkeit, zu der der Prozessor in der Lage war.

Von einem Zivildienst-Kollegen hatte ich ein Listing eines FORTH-Interpreters für den Z80 bekommen. FORTH faszinierte mich. Eine stackorientierte Sprache, quasi beliebig erweiterbar, benötigte weniger Platz als Assembler und war dennoch um ein Vielfaches schneller als BASIC. Zudem ist die Sprache und viele ihrer Implementierungen Public Domain. Ich kämpfte mich durch das Listing, um es zu verstehen, und portierte den Interpreter auf mein System. Ich nannte es TI-FORTH. Natürlich wurde es nie veröffentlicht, denn erstens hatte ich nicht die Möglichkeiten dazu, und zweitens war der TI99/4A obsolet und hatte praktisch keine Benutzer mehr.

Dann schrieb ich einige Spiele, deren Vorbilder auf der anfangs erwähnten Spielekonsole vorhanden waren. Besonders meine Tennis-Variante hatte einige innovative Ideen, und ich würde es gerne auf KDE portieren, wenn ich mal die Zeit dafür hätte. Einige oder sogar die meisten dieser Programme habe ich als Listing noch vorliegen.

In dieser Zeit tauchten zum ersten Mal Fraktale auf. Besonders das von Benoit Mandelbrot entdeckte Apfelmännchen faszinierte die Fachwelt genauso wie den Laien. Natürlich wollte ich das auch auf meinem Rechner programmieren. Dazu mußte ich aber erst einmal eine Floating-Point-Emulation programmieren. Ich wählte eine Fixpunkt-Darstellung, die relativ schnell war. So dauerte es "nur" eine Dreiviertelstunde, um ein primitives Schwarzweiß-Bild mit einer Auflösung von 240x192 zu berechnen. Eine intensivere Erkundung der Mandelbrot-Menge war damit nicht möglich, aber dies war der Anfang einer neuen Leidenschaft.

Nun ging die Ära dieses Rechners langsam zu Ende. Ich ließ ihn meist Tag und Nacht irgendwelche Berechnungen ausführen, doch programmieren wollte ich nichts mehr.

Irgendwann 1989, längst hatte ich mein Studium wieder aufgenommen, suchte ich einen Hiwi-Job als Programmierer und wurde im Institut für Verkehrswesen auch fündig. Es ging darum, ein Simulationsprogramm, das auf einem HP-Prozeßrechner gelaufen war, auf HP/UX zu portieren. Dies war meine erste Begegnung mit UNIX. Zwar war alles ein bißchen kryptisch, doch das war damals alles, was mit Computern zusammenhing. Außerdem war ich nicht Sysadmin, ich mußte nur wissen, wie meine Programmierwerkzeuge funktionierten. UNIX war unendlich leistungsfähiger als alles, was ich bis dahin kennengelernt hatte. Schnell hatte ich mir die wichtigsten Befehle von vi angeeignet (ich benutze noch heute kaum mehr Befehle als damals), dann make, sed und die Tools, die man sonst noch benötigt. Da Pascal unter UNIX eher schwierig zu verwenden war (ich konnte ums Verrecken nicht herausfinden, warum es beim Linken duplizierte Symbole gab), portierte ich die Applikation schließlich nach C. Es waren mindestens 10000 Zeilen Code, die genaue Zahl ist mir entfallen. Dabei war es hilfreich, daß ich kurz zuvor angefangen hatte, C zu lernen. Und das kam so:

Mein Bruder wollte für seine Ausbildung einen PC zuhause haben, also kamen wir überein, zusammen einen anzuschaffen. Ein 386er sollte es sein, da die 286er langsam obsolet wurden. Doch die Preise waren noch exorbitant. Wir zahlten 6000 DM, davon die Hälfte unsere Eltern, für folgende Hardware: 386sx 16 MHz, 2 MB RAM, VGA-Karte mit 512 KB, Farbmonitor 14", Festplatte 105 MB (sehr groß für die damalige Zeit), Tastatur und Maus. Kein Modem. CD-Laufwerke und Soundkarten gab es noch nicht. Das Original-Gehäuse des Rechners befindet sich seit einiger Zeit wieder in meinem Besitz und beherbergt jetzt einen Pentium-66 mit 96 MB RAM.

Der Rechner kam mit MS-DOS 4.0. Ich hatte zuvor nur kurze Bekanntschaft mit DOS gemacht: an der Uni, wo ich es als absolut erbärmliches System kennengelernt hatte. Auch bei einem Freund von mir, der seit zwei Jahren einen 286er sein Eigen nannte, hatte ich es schon gesehen, doch dort verbrachten wir die meiste Zeit mit Programmierung, so daß ich von DOS nicht viel mitbekam.

Nun las ich das ganze MS-DOS-Handbuch und war entsetzt. Ich mußte mich schon sehr beherrschen, um nicht vor Zorn zu platzen. Was für eine armselige Software maßte sich Microsoft hier an, für teures Geld zu verkaufen? So etwas wollte ich auf keinem Fall auf meinem Rechner. Doch leider gab es noch keine Alternative. Auf jeden Fall begann ich schon einmal, Ausschau zu halten. Dies war schätzungsweise im April 1990.

Im Mai 1990 kam dann die nächste Anmaßung - Windows 3.0. Anfangs schien es zumindest ein Fortschritt zu sein, doch ich brauchte nur wenige Wochen, um seine Grenzen kennenzulernen. Es reichte gerade mal für ein - unstabiles - Multitasking zweier DOS-Boxen. Mit Anwendungen wie Word (und Word für Windows 1.0 war so unglaublich schlecht) hatte ich sowieso nichts am Hut, so betrieb ich lieber die Programmierung mit Turbo C, Turbo Pascal und LISP.

In Turbo Pascal begann ich im Herbst 1990, UNIX-Tools für DOS zu programmieren. Es handelte sich nicht um eine Portierung, sondern eine eigenständige Neuentwicklung. Ähnlich wie GNU, von dem ich damals noch nichts wußte, wollte ich eine Implementierung, die ohne künstliche Einschränkungen bei Dateigrößen, Zeilenlängen usw. auskam. Daraus wurde im Laufe der Zeit eine ansehnliche Sammlung von Tools und Units, die ich später auf eine Mailbox hochlud und als Public Domain freigab. In LISP nutzte ich die eingebaute(!) recht schnelle Langzahl-Arithmetik, um Algorithmen im Zusammenhang mit Primzahlen zu programmieren. Ach ja, ähnliche Algorithmen hatte ich zuvor mit dem Programm bc unter UNIX implementiert. Später (nach 1996) sollte ich das alles in verbesserter Form nach C++ portieren. Wie man sieht, kommt man von manchen Dingen nie mehr los. Apropos: Mein erstes C-Programm war ein Fraktalgenerator (Mitte 1990). Es konnte 16 Farben darstellen, Bilder laden und speichern und enthielt 64-bit-Fixpunkt-Arithmetik (in Assembler) für CPUs ohne Coprozessor, die damals noch eher die Regel als die Ausnahme waren. Die Berechnung eines Bildes konnte Stunden dauern, doch es war um einiges besser als auf dem TI99/4A. Auch die Auflösung war um einiges höher.

Ah ja, gerade fällt mir auch ein, daß ich ein weiteres Programm, das ich auf dem TI99/4A implementiert hatte, auf den PC portierte. Und zwar in Pascal. Es handelte sich um Gomoku, das einzige Programm, das ich je als Shareware veröffentlichte (eingebracht hat es mir nichts, es war wohl nicht attraktiv genug). Bei Gomoku geht es darum, auf einem Go-Brett fünf Steine in eine ununterbrochene Linie zu setzen, was entweder waagerecht, senkrecht oder diagonal geschehen kann. Ich betrieb einiges an Studien und wandte meine bescheidenen Kenntnisse an, um dem Computer zu einem guten Gegner zu machen. Das Resultat war ernüchternd. Obwohl ich die Denk-Geschwindigkeit des Programms durch bessere Algorithmen um Größenordnungen erhöhen konnte und die Geschwindigkeit auf dem PC 30-mal höher war als auf dem TI99/4A, war das Programm leicht zu schlagen. Ein Windows-Shareware-Programm, das irgendwann auftauchte, war wesentlich stärker. Übrigens hatte ich zuerst versucht, das Programm auf dem PC in Turbo Prolog zu implementieren. Doch aus irgendeinem Grund stellte ich das wieder ein.

Extra für Gomoku hatte ich eine GUI-Bibliothek programmiert, die das Programm in den Grafikmodus brachte, Menüs und Dialogboxen anbot und generell recht nett war. Es benötigte aber die Borland BGI-Grafiktreiber, die nicht optimal waren und auf manchen Grafikkarten ganz versagten. Ich fing daher an, eine eigene Grafikbibliothek zu schreiben, die mit der von Borland API-kompatibel war, aber einige Erweiterungen hatte. Sprich, ich ersetzte die Unit Graph durch meine eigene Unit MyGraph. Vor allem war sie sehr schnell, da einige Algorithmen in Assembler geschrieben waren. Leider konnte ich einige Bitblt-Operationen nie komplett debuggen, und irgendwann verlor ich das Interesse und stellte die Entwicklung ein. Das Aufkommen von Linux dürfte ein Grund dafür gewesen sein.

Dafür müssen wir wieder ein wenig zurückblenden. Im Spätjahr 1992 wollte mein Bruder, inzwischen mit der Ausbildung fertig, mit seiner Freundin zusammenziehen und unseren gemeinsamen Computer mitnehmen. Ich war damit einverstanden, da ich dadurch die Möglichkeit hatte, einen schnelleren neuen Computer anzuschaffen. Mittlerweile war ich ziemlich PC-besessen, DOS zum Trotz, und trotz eines Speicherupgrades auf 4 MB (Kosten an die 200 DM für 2 MB!) war der alte Rechner nicht mehr zeitgemäß.

Ich schaffte mir also einen 486DX/2 (66 MHz) von ESCOM an, nachdem Bekannte gute Erfahrungen mit dem 486DX (33 MHz) gemacht hatten. Es war damals der schnellste lieferbare Prozessor, und ich dachte, das Extrageld ist gut angelegt, weil 66 MHz auf lange Zeit ausreichen werden. Prinzipiell lag ich damit richtig. Der Rechner lohnte sich auch in anderer Hinsicht doppelt: Zum einen wurde der Preis von 4000 auf 3600 DM reduziert, während ich auf die Lieferung wartete. Zum zweiten hatte ich 4 MB RAM bestellt - Standard waren 2 MB, denke ich - doch als ich den Rechner zuhause hatte, stellte ich freudig fest, daß 8 MB darin waren. Auch nicht schlecht, obwohl diese 8 MB gerade zwei Jahre reichen sollten. Der Grund war Linux, aber ich greife vor.

Die weitere Ausstattung war eine 170 MB Festplatte, eine Grafikkarte mit 512 KB RAM (Trident 8900, absoluter Müll) - und das war es auch schon. Eine Soundkarte leistete ich mir erst später, zusammen mit einem CD-Laufwerk. Und MS-DOS 5.0 und Windows 3.1 waren dabei, die erste und zweitletzte Windows-Lizenz, die ich je hatte. Windows 3.1 brachte TrueType-Fonts und eine Reihe von Verbesserungen, war aber immer noch ein Stück Müll. Unter DOS machte ich mir das Leben einfacher, indem ich das Shareware-Programm 4DOS einsetzte. Zu jener Zeit war ich recht interessiert an Shareware, las auch regelmäßig eine Zeitschrift zu dem Thema und war begeistert, was Shareware- und teilweise auch Public Domain-Programme leisten konnten. Oft waren sie weit besser als kommerzielle Produkte.

Nun begann ich intensiver als bisher, nach DOS-Alternativen zu suchen. Mein Studium näherte sich auch dem Ende, ich plante für das zweite Halbjahr 1993 meine Diplomarbeit. Meine Arbeit fürs Institut für Verkehrswesen hatte ich irgendwann eingestellt, dafür arbeitete ich eine Weile als Systemprogrammierer für einen Altpapier-Händler, was besser bezahlt war. Mitte 1993 schätzungsweise hörte ich auch dort auf.

Anfang 1993 stieß ich in einem Shareware-Katalog erstmals auf Linux. Ich nahm es zur Kenntnis, mehr aber auch nicht. Es hieß dort, Linux sei ein UNIX-Clone für PCs, und es sei kostenlos. Aber das Wort Clone und der Preis von 99 DM für einen Diskettensatz ließen mich zurückschrecken. Viel interessanter schien mir das ebenfalls angebotene BSD 0.1, doch unternahm ich zunächst nichts. Besser gesagt, ich suchte nach Download-Möglichkeiten. Der Internet-Zugang war damals noch keine Selbstverständlichkeit, auch E-Mail und News nicht. Irgendwann, vielleicht im Februar 1993, graste ich den Uni-FTP-Server ab. Ich fand nicht BSD, aber ich fand - versteckt in einem obskuren Verzeichnis namens SLS - Linux. Ich erkannte, daß ich über 40 Disketten benötigen würde, dazu noch etliche Disketten für den Backup meines Computers. Ich beschaffte mir diese und begab mich eines Tages in einen Rechner-Poolraum und erledigte den Download unter HP-UX. Außerdem druckte ich das Linux-FAQ aus und las es komplett.

So gewappnet, entpuppte sich die Installation als einfach genug. Ich machte einen Backup meines Systems, verkleinerte eine Partition (dank des komprimierenden Dateisystems DoubleDisk recht einfach) und gewann so eine 50 MB große Partition für Linux. Die Windows-Swap-Partition ließ ich von Linux mitbenutzen. Das dürfte im März 1993 gewesen sein. Die 50 MB waren gerade genug, um Linux (mit Kernel 0.99.6, vielleicht sogar 0.99.3 ursprünglich) aufzunehmen. Auch XFree86 bekam ich zum Laufen, mußte aber wegen der Schrott-Grafikkarte Abstriche an der Bildqualität hinnehmen oder mich auf 16 Farben beschränken - letzteres wollte ich aber nicht.

Dennoch war es wie der Himmel auf Erden. Trotz der verdächtig niedrigen Versionsnummer 0.99 lief das System extrem stabil. Es gab keinen Absturz. Nur einen Bug entdeckte ich: Gab man am Bash-Prompt statt "cd /tmp" versehentlich "/tmp" ein, stürzte die Shell ab, und man mußte sich neu einloggen. Das passierte mir am Anfang mehrfach, da 4DOS das Feature besaß, bei Eingabe eines Verzeichnisnamens in dieses Verzeichnis zu wechseln, was ich aus Schreibfaulheit sicher intensiv nutzte.

Unter diesem System erledigte ich einen guten Teil meiner Diplomarbeit. Die Arbeit selbst verfaßte ich aber mit AmiPro unter Windows, da mir die Zeit zum Lernen von TeX zu knapp erschien und der Platz auf der Festplatte (Erinnerung: 50 MB) vielleicht nicht ausgereicht hätte.

Wann ich mir einen Floppy-Streamer zur Sicherung meiner Daten zugelegt habe, weiß ich nicht mehr genau. Sehr wahrscheinlich war es schon 1993 und die erste Erweiterung meines Rechners. Ein Floppy-Streamer (ich habe ihn noch heute, allerdings in einem anderen Rechner) wird ans Floppy-Kabel angeschlossen und verwendet kleine QIC-Bänder mit 125 MB Kapazität (später auch 250 MB). Die 125 MB waren zunächst ausreichend für mich. Es dauerte eine Stunde, ein Band zu füllen, und das Teil machte einen Höllenlärm dabei (naja, auch nicht mehr als ein lauter Lüfter). Eines Tages las ich in der Newsgroup comp.os.linux.announce, die ich gelegentlich verfolgte, daß es einen Linux-Treiber für Floppy-Streamer gab: ftape. Brandneu, Version 0.1 oder so. Ich lud ihn herunter, band ihn in den Kernel ein (inzwischen waren Kernel-Compilierungen für mich schon Routine), testete, und - er funktionierte! Nun konnte ich auch Backups von meinem Linux-System machen, ja sogar die Backups der DOS-Partition von Linux aus erledigen.

1993 leistete ich mir auch eine neue Festplatte: 240 MB, der Preis dürfte etwa 250 DM betragen haben. Diese Festplatte war ausschließlich Linux vorbehalten. Damit hatte ich 290 MB für Linux zur Verfügung - ein dezentes System. Ich brachte wöchentlich neue Software von der Uni mit nach Hause, compilierte und probierte sie - es war einfach klasse. Irgendwann war auch ein neuer Window-Manager dabei: fvwm 0.74 oder so. Das wurde mein Standard-Window-Manager, bis ich 2001 auf KDE umstieg: also fast acht Jahre lang. Auch zwei Spiele gelangten auf meine Disketten: Moria und Angband. Dazu später mehr...

Weitere neue Hardware kam 1993 zu meinem Rechner hinzu: Eines der ersten CD-ROMs (single speed) und eine 8-bit Soundblaster-Karte. Zunächst gab es keinen Linux-Treiber für das CD-ROM. Doch ein paar Monate später war dieses Problem mit dem Erscheinen des mcd-Treibers behoben.

Anfang 1994 war ich mit dem Studium fertig, hatte Bewerbungen am Laufen und eine Menge Zeit totzuschlagen (der Jobmarkt war damals gerade eher schlecht). Ich schaffte mir ein 14.4 Modem an und konnte damit erstmals auf BTX und Mailboxen zugreifen (noch nicht aufs Internet, das wäre sehr teuer geworden). Während die mitgelieferten Terminal- und Fax-Programme für Windows mehr schlecht als recht liefen, fand ich unter Linux exzellente Programme vor, wenn auch die Auswahl klein war: minicom für die Konsole, Seyon unter X11, sowie mgetty/sendfax für die Faxen. Bald wurde ich "Point" an einer Mailbox, d.h. ich brauchte die eingegangenen Nachrichten nicht online zu lesen, sondern konnte mir sie per Batch schicken lassen. Das war extrem gebührensparend. Nun gab es ein exzellentes Point-Programm für DOS, Xpoint. Dies war Shareware (50 DM), aber sein Geld wert. Unter Linux gab es unixconnect, das ziemlich undurchschaubar war und nie zuverlässig funktionierte. Somit war ich 1-2 mal täglich auf DOS angewiesen. Doch gelang es mir später, Xpoint unter dem DOS-Emulator unter Linux zum Laufen zu bekommen. Inzwischen ist Xpoint frei und auch auf Linux portiert. Nur brauche ich es nicht mehr, nachdem Mailboxen nun keinerlei Bedeutung mehr haben.

Gegen Ende meines Studiums fing ich auch an, Fantasy-Rollenspiele am Computer zu spielen. Nicht diesen Schrott, der die DOS- und Windows-Welt bis heute plagt und im Wesentlichen nur aus Draufhauen besteht (erst neulich wieder bei Diablo gesehen). Ich begann mit Moria, und als ich dies nach einigen Monaten geschafft hatte, mit Angband. In dieser alten Version von Angband mußte ich erst einige Bugs korrigieren, bevor es spielbar war. Doch dann faszinierte es mich für gut zwei Jahre oder mehr. Auch Ularn spielte ich mal zwischendurch. Dies ist im Vergleich zu Moria oder Angband ein sehr simples Spiel, das man an einem verregneten Sonntag locker zu Ende spielen kann.

Am 13. März 1994 erschien Linux 1.0, die Öffentlichkeit nahm zum ersten Mal Notiz. Wenn auch nicht viel. Eine zehnzeilige Meldung in der Computerwoche, so ungefähr. Ende März fand ich auch einen Job. Software-Entwicklung in C unter DOS. Zum ersten Mal hatte ich richtig Geld. Das gab ich für diverse Anschaffungen gleich wieder aus: Ein 17"-Monitor, Kostenpunkt 1600 DM. Den alten 14"er verkaufte ich für immerhin noch 300 DM. Ein Laserdrucker (HP 4P), über 1000 DM, der heute noch klaglos seinen Dienst verrichtet. Im Sommer verkaufte ich mein Motorrad, das mir zwei Jahre nur Ärger bereitet hatte, und kaufte eine nagelneue Honda CB 750. Und im Herbst zog ich in meine erste eigene Wohnung.

Vermutlich im Frühjahr 1995 rüstete ich meinen PC weiter auf: die 8 MB RAM wurden durch 32 ersetzt (ich wollte eigentlich nur 16, doch dann stellte sich heraus, daß die SIMMs nur paarweise verwendbar waren). Kostete 1600 DM, der Preis pro MB hatte sich also in 5 Jahren etwa halbiert. Eine neue Grafikkarte (S3 968 Vision mit 4 MB VRAM, ausreichend für 1152x864 in True Color) für 777 DM plus Mwst. kam dazu, und eine neues Motherboard mit integriertem SCSI-Controller. Ich hielt IDE für ein amateurhaftes Billig-System und wollte daher lieber auf SCSI umsteigen. Eine 2 GB SCSI-Festplatte folgte irgendwann später, sie kostete rund 1500 DM.

Die S3 mit dem 968-Chip wurde von der offiziellen XFree86-Version nicht unterstützt, doch es gab eine Betaversion, die es trotz kleiner Bugs tat. Mit dem nächsten Release von XFree86 waren die Probleme dann behoben. Dies war typisch für die Hardware-Unterstützung von Linux in dieser Zeit. Manche Leute sind aber offenbar nicht lernfähig und glauben, daß dies heute noch so sei.

1995 erschien der Linux-Kernel 1.2 fast zeitgleich mit Windows 95. Während ersterer durch extreme Stabilität glänzte und eine gewisse Verbreitung fand, war zweiteres der dümmste Witz der Computergeschichte. Für einen Programmentwickler bedeutete es alle 20 Minuten einen Blue-Screen, alle 10 Minuten einen unerklärlichen Fehler. Zum Kotzen! Meine komplette Abwendung und Ablehnung von Windows war nicht mehr aufzuhalten.

Noch bevor ich in meine eigene Wohnung eingezogen war, erhielt ich erstmals einen Internet-Zugang über den Verein SUB. Dieser war nicht teuer, aber auf Mail und News beschränkt. Mittels UUCP konnte ich Mail und News auf meinen Rechner herunterladen, was extrem effizient war (und dazu auch noch komprimiert), offline bearbeiten, und Antworten wieder hochladen. Meine Telefonrechnung war daher recht niedrig. Mit einer Ausnahme. Da war ich für zwei Tage von zuhause weg. Genau an diesen Tagen zeigte sich ein fataler Fehler in meinem UUCP-Skript. Ich hatte eine Wiederholung der Einwahl programmiert für den Fall, daß besetzt war. Der Fehler führte dazu, daß mein Rechner sich alle 1-2 Minuten neu einwählte, und das mehr als einen Tag lang. Danach änderte ich das Skript, so daß es zuverlässiger arbeitete und die Einwahl nicht öfter als 20-mal probierte.

Mitte 1995 wurde ich arbeitslos. Es dauerte drei Monate, bis ich einen neuen Job hatte, seither arbeite ich als Freiberufler. Die freie Zeit nutzte ich neben dem Angband-Spielen zur Programmierung eines (wer hätte es gedacht) Fraktal-Programms unter X11. Dabei frischte ich auch meine C++-Kenntnisse etwas auf, was ich bald gut brauchen konnte. Das Programm nutzte einen Prozeß für die GUI und einen für die Berechnungen. Es funktionierte aber nie ganz perfekt, irgendwie gab es Probleme mit dem Shared Memory. Den ursprünglichen Berechnungs-Algorithmus in C ersetze ich bald durch optimierte Assembler-Varianten, die, nach diversen Quellen im Internet, die minimale Zahl von CPU-Zyklen pro Iteration benötigten.

Als ich aus beruflichen Gründen im Juni 1996 meinem Wohnsitz nach Bruchsal verlegte, ließ ich mir gleich ISDN legen. Die ISDN-Unterstützung im gerade erschienenen Linux-Kernel 2.0 war nur als Patch erhältlich, und es wurden auch nicht alle Karten unterstützt. So verkaufte ich meine Fritz! ISA-Karte gleich wieder und ersetzte sie durch eine Teles. Es funktionierte hervorragend. Lediglich beim Entladen von ISDN-Modulen konnte es zu Problemen kommen, aber man mußte sie ja nicht entladen...

Auch bei ISDN passierte es mir einmal, daß das automatische Kappen der Verbindung nicht klappte. Die Ursache war, glaube ich, ein falsch konfigurierter Daemon, der alle 3 Minuten eine Verbindung aufbaute; die Rechnung war entsprechend monströs, für meine Verhältnisse jedenfalls. Danach überwachte ich die Verbindung immer mit xisdnload.

Bald nach meinem Umzug übernahm ich günstig drei gebrauchte Mailbox-Rechner, um mir zuhause ein Netzwerk aufzubauen. Die Rechner waren mit 2-4 MB RAM ausgestattet, also zu schwachbrüstig für Linux. Also rüstete ich sie auf. Nach vielen weiteren späteren Aufrüstaktionen sind die Gehäuse heute noch im Einsatz, von den originalen Boards nur noch eines, von den Festplatten noch zwei oder drei.

Nicht lange danach kamen drei plattenlose Rechner in flachen Gehäusen hinzu, die ich an meinen ursprünglichen Rechner, der nun der Server war, anband. Ich lernte eine Menge neuer Sachen über Linux und Netzwerke.

Nach und nach kamen neue Rechner zu meinem Netzwerk hinzu: Mitte 1997 ein Desktop-System, nach meinen Wünschen zusammengebaut, mit AMD K5-133, um etwas mehr Rechenpower zu haben. Ende 1997 ein Laptop, das noch heute seinen Dienst tut. Es kam mit meiner zweiten und für alle Zeit letzten Windows-Lizenz. Ich löschte Windows sofort nach einem kurzen Hardware-Funktionstest. Die Konfiguration von X11 war nicht ganz einfach, aber es ging. Auch PCMCIA war in einer halben Stunde installiert, nachdem ich einen IRQ-Konflikt, der zum Absturz führte, beseitigt hatte.

Ende 1999 gönnte ich mir eine neue Workstation (zuvor war der Server auch mein Arbeitsplatz-Rechner gewesen), 2000 einen Backup-Server (Dual Celeron), und nachdem ich das Board meines alten Servers gegrillt hatte, einen weiteren Server (ebenfalls Dual Celeron). Diverse Hardware-Upgrades, mehrere aus Altteilen zusammengesetzte Rechner, ein billiges Komplettsystem, auf dem ich NetBSD installierte (läuft bis heute hervorragend), Ende 2002 eine neue Workstation (wiederum ein Dual-System, zehnmal schneller als meine alte Workstation) ergaben einen ansehnlichen Rechner-Park. Dazu kamen zwei Exoten: Ein Mac IIfx, auf dem Linux bis heute nicht so gut läuft und daher auch noch Mac OS 7 installiert ist, und eine SGI Indy Workstation, die zunächst zwei Jahre lang mit IRIX 5.3 lief (ultrastabil), nun aber fast genauso gut mit Debian Linux. Ich kann noch nicht alle Hardware-Features unter Linux nutzen und habe auch die Einbindung der Webcam noch nicht probiert, doch was soll's...


Home Page
Erstellt von hjb
Letzte Änderung 2003-02-23