Voriges Kapitel
Inhaltsverzeichnis
Nächstes Kapitel
******** ********
35. Die Suche nach dem Dämonenprogramm
Am nächsten Morgen - schon lange ist es der 17. Januar, ein Sonntag, und es ist der vierte ganze Tag unseres Unternehmens - gibt es natürlich eine Unterredung mit dem Alten. Daß das Boot ohne seine Erlaubnis bewegt wurde, paßt ihm gar nicht. Andererseits ist die Entdeckung, daß das Boot bei seiner selbstständigen Aktion sich aus einer Gefahrenzone, die bis dahin noch niemandem als solche aufgefallen ist, herausbewegt hat, höchst interessant.
Trotzdem möchte er natürlich wissen, warum der Rechner sich solcherart selbstständig gemacht hat. Carola, Edwin und ich sind also für den Rest auch dieses Tages mit Arbeit eingedeckt.
Die CHARMION selbst hat natürlich mit Beginn der normalen Arbeitszeit ihren Suchweg fortgesetzt. Da das Vorgehen aber nach wie vor das übliche ist - Abfahren immer neuer, immer tieferer Abzweigungen des Höhlenlabyrinths - und da auf den Bildschirmen immer wieder und unaufhörlich das Bild vorbeiziehender Felswände, immer wieder anders, aber doch immer bloß Felsen und nichts als Felsen, zu sehen ist, werden wir wenig abgelenkt. Ebenso unterbricht Amurdarjew uns nicht, der auch in unserem Labor sitzt und mit seinen geologischen Beobachtungen beschäftigt ist. Andere kommen nur gelegentlich aus der Kantine zu uns hoch, und ab und zu schaut jemand durch das Schott zum zentralen Niedergang zu uns herein.
Manchmal dringen lautere Stimmen aus der Kantine zu uns rauf. Einige von den Nautischen scheinen dort Karten zu spielen, aber ich kann nicht erkennen, wer es ist. Wie gut, daß unter normalen Umständen Alkohol an Bord nicht verfügbar ist, denke ich, denn sonst würde es uns bald zu laut werden.
Das erste, was wir machen, ist, daß wir uns noch einmal die Aufzeichnungen vornehmen, die vor unserer Entdeckung gemacht worden sind. Jetzt, wo wir wissen, was wir suchen, ist es natürlich ein leichtes, die Echolotreliefs des Spaltes in der Höhlendecke zu erkennen, auch wenn Edwin's akumulierende Messungen später wesentlich bessere Bilder geliefert haben. Hier ging es also mit rechten Dingen zu.
Das waren aber auch schon alle schnellen Erfolgserlebnisse. Das Programm, das von sich aus die Initiative ergriffen hat, finden wir nicht. Wir haben es um 12 Uhr nicht gefunden, als die CHARMION schon 100 Meter tiefer als 5000 Meter ist, und wir haben es um 17 Uhr nicht gefunden, als wir die 6000 Meter passieren. In Anbetracht der Tatsache, daß Sonntag ist, geben wir die intensive Suche auf.
Nichtsdestoweniger haben wir an diesem Tag eine Menge gelernt. Langsam steigen wir weiter in die Softwarestruktur des Bordrechners der CHARMION ein.
Ein so großes System mit zahllosen Prozessoren, immensen Resourcen von Speicher und Hintergrundspeicher und allen möglichen Schnittstellen zu den technischen Einrichtungen des Schiffes ist nicht einfach nur eine besonders große PRO-UNIX-Installation. Es sind nicht einfach besonders viele Prozesse, die hier mehr oder weniger unabhängig voneinander laufen. Technisch hat jedes Gerät mit jedem anderen zu tun, und da können die Prozesse auch nicht unabhängig sein. Andererseits muß dafür gesorgt werden, daß nicht ein Programm, das sich ungebührlich verhält, das gesamte System zum Stillstand bringt.
Die schon vor zehn Jahren weit verbreitete 'Client - Server' Architektur wird fast durchgehend verwendet. 'Clients', das heißt 'Kunde', sind diejenigen Programme, die etwas sinnvolles tun, und die 'Server' sind die Programme, die Geräte verwalten - 'Server' heißt also gewissermaßen 'Dienstmädchen'. Für eine der Bildschirm-Konsolen mit ihrer Tastatur und ihren Trackbällen gibt es genau so einen Server wie für die Energiewandler oder den Reaktor. Es gibt Server für die Klimaanlage genauso wie für jeden Temperatursensor, Server für die Vortriebsmaschinen wie für die Trägheitsnavigation.
Eine frühe Analogie zu 'Server' ist das Treiberprogramm für ein bestimmtes Gerät, und ein Treiber war begrifflich Teil des Betriebssystems. Der 'Server' ist aber der umfassendere Begriff. Ein Server gehört nicht mehr im eigentlichen Sinne zum Betriebssystem, ja, er braucht nicht einmal auf demselben Rechner zu laufen, von dem ein Client etwas will.
Natürlich ist die Trennung zwischen Server und Client nicht strikt. Der Prozeß zum Beispiel, der den Client darstellt, der die Server für die einzelnen SISCs in Anspruch nimmt, ist selbst wieder Server für andere Clients, die zum Beispiel etwas auf die SISCs schreiben wollen. Und das ist nur ein einfaches Beispiel. Es gibt 'Server-Client-Network-Editors', das sind Editoren, mit denen man bestehende Anwendungen zu neuen verknüpfen kann. Wenn zum Beispiel jemand auf die Idee käme, daß jeder SISC den Füllungsgrad eines bestimmten Kühlschrankes ständig anzeigen sollte, dann braucht man dazu kein neues Programm zu schreiben. Es werden einfach Kühlschrankserver mit dem SISC-Server in geeigneter Weise verknüpft. Daraus entsteht dann ein neuer Server, der als Client den Befehl von einer Tastatur auffaßt und daraufhin mit der gewünschten Arbeit beginnt - ja, auch der dumme Anwender wie unsereins, der vor seinem Terminal hockt, ist ein Client, oder auch ein Server, je nach Gesichtspunkt.
Die Arbeit mit diesen Server-Client-Network-Editoren entspricht dem Schreiben von Kommandoprozeduren in den alten UNIX-Systemen. PRO-UNIX hat aber sehr viel mehr Möglichkeiten. Und was das System nun wirklich macht, das kann man durchaus nicht immer erkennen, wenn man sich bloß eine Liste der Prozesse ansieht, die auf dem System laufen - denen sieht man nämlich die Interprozeß-Kommunikationskanäle, die diese Prozesse zu Server-Clients-Networks zusammenlegen, nicht an.
Um sich diese Kanäle anzusehen, muß man den Server-Client-Network-Editor nehmen. Aber sehr hilfreich ist das auch nicht, weil erstens diese Kommunikationsnetze sehr umfangreich sind, so daß man sie sowieso nicht überblicken kann, und zweitens ist die Zuordnung zwischen Servern und Prozessen entweder nicht sichtbar, oder, wenn man sich diese Zuordnung doch anzeigen läßt, dann wird das Netz absolut unlesbar.
Manchmal denke ich, daß wir in der Informatik auf einen Zustand hinmarschieren, wie er im Prinzip auch in der Neuroinformatik erreichbar ist: Man kann sich das semantische Netz eines Bewußtseins kartographieren und aufzeichnen lassen - aber was diese Millionen von vernetzten Knoten nun bedeuten, das kann man nicht erkennen. Das kann nur das betreffende Bewußtsein selbst. Und sind wir nicht bei den Systemen der CHARMION soweit? Die bloße Anzahl der identifizierbaren Vorgänge in den Bordrechnern erreicht einige Millionen. Der Komplexitätsgrad eines Bewußtseins ist damit schon erreicht. Welche Erscheinungen sind noch möglich, unter diesen Umständen?
Und sind die Rechner an Bord der CHARMION wirklich nur als größere, komplexere Ausgabe kleinerer Computer aufzufassen? Was haben diese Rechner mit meinem alten APPLE ][ gemeinsam, auf den ich vor 18 Jahren so stolz war, Besitzer eines eigenen 'Rechenzentrums', wie mein Vorgesetzter damals zu diesem ungewöhnlichen Hobby sagte? Fünf Jahre später war dieses Hobby schon nicht mehr ungewöhnlich, aber auch da standen viele Hobbyisten immer noch mit jedem Byte ihres Betriebssystems auf 'du', egal, ob es sich nun um einen Z-80, um einen PET, um einen APPLE ][ oder um einen MS-DOS-Rechner handelte.
In den Rechnern der CHARMION jedes Byte persönlich zu kennen ist nicht mehr möglich. Solange lebt kein Informatiker. Wir haben hier, unter unseren Fingern auf den Tastaturen, das Ergebnis von Zehntausenden von Arbeitsjahren. - Außer, daß in ein Byte acht Bit hineinpassen, gibt es kaum noch etwas, was wirklich sicher ist.
Für Philosophie haben wir natürlich jetzt keine Zeit. Was wir also an diesem Tag versucht haben, ist, herauszufinden, welcher Prozeß in seiner Rolle als ein Client sich an die Außenbeobachtung gewandt hat, welcher Prozeß die Echolotungen gelesen hat, und welcher Prozeß bald darauf die Verbindung des Servers für manuelle Steuerung des Schiffes zeitweise gelöst und selber in die Steuerung des Schiffes eingegriffen hat.
Und wir haben es nicht herausgefunden.
An diesem Abend des 17. Januar sind wir alle erschöpft und müde. Zurückgewiesen durch die Komplexität des Systems. Reduziert auf den Informatikanfänger, der auf den Bildschirmen Icons von Fenstern unterscheiden kann, aber nicht viel mehr.
Zu dem Ganzen kommt noch, daß uns ein Teil des Systems gar nicht zugänglich ist - es wird immer sicherer, daß es einen super-super-user mit Namen 'ROOT' gibt. Unter diesen Umständen im System herum zu diagnostizieren ist genauso, als ob man in einem Konversationslexikon etwas nachschlagen will und bei bestimmten Seiten immer das Licht ausgeht.
Ein nur kleiner Trost ist es, daß das System in der letzten Nacht zu unseren Gunsten eingegriffen hat.
Daß wir hingegen jetzt in einer Tiefe sind, wo einbrechendes Wasser bereits die Schallgeschwindigkeit überschreiten würde - um 17:30 wurde das Schiff in 6050 Meter Tiefe fest positioniert - macht mir viel weniger Sorgen. Gute, alte Hardware! Ich habe Vertrauen zu unserer hochlegierten Titanstahlhülle, auch wenn die Werft uns für diese Tiefe das Vertrauen nicht mehr schriftlich gegeben hat. Bis auf die Zahlen auf dem SISC hat sich durch den Außendruck nichts geändert.
Amurdarjew erzählt beim Abendessen, daß er neue Artefakte gefunden zu haben glaubt. Wieder von der Art eines Kais - in einem Falle war es eine Art Einfassungsmauer, die in einer Höhle, die wir passierten, das Wasser bei teilweiser Füllung der Höhle davon abgehalten hätte, in einer engen Seitenhöhle zu verschwinden. Allerdings war diese Mauer stark angeschlagen, so daß auch eine zufällige Steinform immer noch im Bereich des Möglichen lag. Neue Erkenntnisse gab es aus dieser Richtung also nicht.
Dafür hat er neue Meßergebnisse bezüglich der Gravitationsfeldstärke mit zunehmender Tiefe. Ich kenne das Prinzip schon - jeder Physikstudent muß als Übungsaufgabe ausrechnen, wie sich die Gravitationsfeldstärke bei Eindringen in eine homogene Kugel ändert, wenn im ersten Semester das Gravitationsgesetz drankommt - aber den anderen muß Amurdarjew erst einmal erklären, worum es geht:
Wenn die Erdkugel überall dieselbe Dichte hätte - das wären etwa 5500 Kilogramm pro Kubikmeter - dann würde die Gravitation proportional zum Abstand vom Erdmittelpunkt abnehmen, wenn man sich auf diesen zubewegt. Das liegt daran, daß sich erstens die Beiträge zur Gravitationsanziehung aller Teile des Erdkörpers, die weiter vom Erdmittelpunkt entfernt sind als man selbst, zu Null wegmitteln, und daß die Kugel, die die lokal wirksame Gravitation erzeugt, nämlich die Kugel mit dem Radius, der dem eigenen Abstand vom Erdmittelpunkt entspricht, eine Masse proportional zur dritten Potenz dieses Abstandes hat. Dann kann man schon im Kopf ausrechnen, was passiert: Die Gravitation nimmt umgekehrt quadratisch zum Abstand vom Erdmittelpunkt zu - sagt das Gravitationsgesetz - und kubisch zum Abstand vom Erdmittelpunkt ab - weil die wirksame Masse ja kubisch abnimmt. Unterm Strich bleibt also eine Proportionalität zum Abstand vom Erdmittelpunkt.
Da wir uns jetzt etwa dem Erdmittelpunkt um ein Tausendstel des Erdradius genähert haben, würde nach diesem Modell unser Gewicht um ein Promille abgenommen haben - viel zuwenig, um es zu bemerken. Aber es ist ja auch nicht so, denn die Wirklichkeit ist etwas komplizierter.
Die Dichte des Erdkörpers ist in der oberen Schichten vergleichsweise gering und nimmt im Zentrum stark zu. Das liegt daran, daß erstens alle schwereren Materialien im Laufe der Entstehung der Erde dazu tendierten, sich mehr im Erdkern anzusammeln, und außerdem durch den dortigen hohen Druck alle Materialien eine höhere Dichte haben. Deshalb hat man, wenn man sich dem Erdmittelpunkt nähert, immer noch einen größeren Anteil der Erdmasse unter sich als es der dritten Potenz des Verhältnisses von Erdradius und eigenem Abstand vom Erdmittelpunkt entspricht. Dieser Effekt sorgt dafür, daß man in den oberen 3000 Kilometern sogar mit einem Ansteigen der Schwerkraft zu rechnen hat, wenn man weiter in die Tiefe vorrückt. Nach gängigen Modellen sollte die maximale Erdbeschleunigung 3000 Kilometer unter der Erdoberfläche etwa 8 Prozent größer sein als an der Erdoberfläche. Erst dann nimmt sie wieder ab, um im Erdmittelpunkt - natürlich - Null zu erreichen.
Im Moment sind wir also alle etwas schwerer als in Ullapool - ein zehntausendstel etwa. Das kann man messen, aber man kann es nicht spüren.
Interessanter, sagt Amurdarjew, ist etwas anderes: Die Auswirkungen der Welthöhle auf die Gravitation an unserem derzeitigen Aufenthaltsort. Schließlich müßte man erwarten, daß das Fehlen von Kubikkilometern von Gesteinsmaterial einen Einfluß auf die lokale Gravitationsfeldstärke hat. Der ist zwar sehr gering, aber immer noch innerhalb der Meßbarkeit der Geräte, die wir an Bord haben.
Er hat aber nichts dergleichen gefunden. Vom Gravitationsstandpunkt, sagt er, existiert die Welthöhle nicht.
Andererseits sei es ja möglich, vielleicht sogar wahrscheinlich, daß die Welthöhle überall von schwererem Gestein umgeben sei. Ein besonderes Gestein müsse es ja sein, denn sonst könnte man sich die Stabilität solch riesiger Höhlen kaum erklären.
An diesem Abend ist es, bis auf Amurdarjews Erklärungen, die auch von den anderen Tischen verfolgt werden, relativ still in der Kantine. Liegt das daran, daß das Wochenende für die meisten ohne großartige Freizeitaktivitäten vergangen ist? Wer nichts zu tun hatte, konnte sich Filme ansehen oder lesen oder Computerspiele benutzen. Darüber hinaus gibt es hier wenig Möglichkeiten.
An diesem Abend bin ich so fertig, daß ich in meiner eigenen Kabine für mich alleine schlafen möchte. Ich achte nicht einmal richtig drauf, was Natalie dazu meint - ich habe sie sowieso den ganzen Tag kaum gesehen. Sie hat ja gesehen, daß wir zu tun hatten. Hoffe ich.
Am anderen Morgen, dem 18. Januar 1999, einem Montag, geht es pünktlich weiter. Das Boot beginnt mit Beginn der Tageswache mit weiteren Manövern, und wir sitzen wieder vor unseren Terminals. Vielleicht sind wir etwas wacher als gestern, aber deshalb sehen wir noch lange nicht klarer.
Vorher noch werfe ich einen Blick auf die Tieftemperaturtruhe im Unterdeck und stelle fest, daß noch nicht allzuviel von der flüßigen Luft verdampft ist. Solange der Deckel zu ist - und das sollte er wohl aus Sicherheitsgründen auch bleiben - geht das Verdampfen langsam. Beim Frühstück haben wir die verbundene Hand des Paters gesehen, aber der hat uns erzählt, daß die Schmerzen aufgehört haben. Da er die Hand sehr schnell wieder zurückgezogen hat, waren die Gewebezerstörungen nur oberflächlich.
Er hat Glück gehabt, denke ich, aber ich sage es ihm nicht. Was wäre gewesen, wenn er in seiner Unkenntnis der Kryotechnik und des Aussehens von verflüssigter Luft auf dem plötzlichen Schmerz so reagiert hätte, daß er die Hand erst recht tief in das vermeintliche Wasser getaucht hätte? Eine mögliche, plausible Fehlentscheidung - ob ein Unfall dieser Art jemals irgendwo vorgekommen ist?
Bis zum Mittag gibt es nichts Neues. Das Boot ist weit nach Norden ausgewichen, um einer sehr engen Höhlenkette folgen zu können, und hat eine Tiefe von 6400 Metern erreicht. Ich denke daran, daß wir schon viel tiefer sind als die Orte unserer ersten Erlebnisse in der Welthöhle vor drei Jahren: Wenn ich mich richtig erinnere, hatten wir in dieser Tiefe bereits unseren ersten Saurier gesehen, den Kampf mit diesem kleinen, gefräßigen Tier bestanden und waren dabei, auf einer Hängenden Straße weiter nach unten vorzudringen. Wir befanden uns auch mitten in der Schicht der leuchtenden Wolken.
Beim Mittagessen fragt Natalie mich, ob ich ihr beim Programmieren helfen kann.
"Beim Programmieren? Was programmierst du denn?" frage ich verwundert. Auch Edwin und Carola horchen auf.
Natalie wollte etwas mehr über das wissen, was ich oder was wir machen. Mit dem System kann sie soweit umgehen wie fast jeder andere hier auch, aber auf unseren Lehrgängen in München wurde natürlich nicht auf die Software-Herstellung selbst eingegangen.
"Du hast doch gesagt, daß du in deinem Studium einen Computer verwendet hast?" frage ich zurück.
"Ja. Zum Schreiben und zum Zeichnen. Programmiert habe ich nie. - Ich will's nur mal wissen, wie das ist!"
Diplomatisch erläutern wir ihr, daß wir im Moment keine langen Lehrgänge machen können, weil wir ja mit anderen Aufgaben eingedeckt sind. Aber kurze Fragen - natürlich. Jederzeit. Jeder von uns wird da kollegial helfen können.
Als wir nach dem Essen wieder in unserem Arbeitsraum sind, begleitet Natalie uns. Sie meldet sich unter ihrer User-ID an.
"Hier. Das ist es - es geht nicht!" sagt sie und lädt ein Programm in den Editor:
programm natal_4; var q, qq, qqq, result : integer_256; begin result := 0; for q := 1 to integer'last do for qq := 1 to integer'last do for qqq := 1 to integer'last do result := result + q * qq * qqq; writeln (result); end.
"Oh," sage ich, "ein Pascal-Programm! Wo hast du denn das her? Und was soll das Programm machen?" Ich sage erst einmal nichts über die Fehler, die mir sofort ins Auge springen. Schon das achte Zeichen dieses Programmtextes müßte eine Fehlermeldung provozieren.
"Aus einem Lehrtext. Haben wir auch im Computer."
"Aber da hast du ein paar Dinge beim Abschreiben geändert!"
"Kaum etwas. Das da ist das Fehlerlisting!" Ich spüre, daß sie stolz darauf ist, daß sie wenigstens weiß, wo man die Liste der Rügen des Compilers einsehen kann. Und diese Liste ist ansehnlich lang:
programm natal_4; ^ Fehler 3 in Zeile 2 der Datei $HOME/SRC/NATAL_4.PAS Erwarte 'PROGRAM' var q, qq, qqq, result : integer_256; ^ Fehler 104 in Zeile 4 der Datei $HOME/SRC/NATAL_4.PAS Name nicht vereinbart for q := 1 to integer'last do ^ Fehler 103 in Zeile 8 der Datei $HOME/SRC/NATAL_4.PAS Name nicht vom geeigneten Typ for q := 1 to integer'last do ^ Fehler 202 in Zeile 8 der Datei $HOME/SRC/NATAL_4.PAS Stringkonstante darf nicht länger als eine Zeile sein for qq := 1 to integer'last do ^ Fehler 6 in Zeile 9 der Datei $HOME/SRC/NATAL_4.PAS Unerlaubtes Symbol (evtl. fehlt ';' in darüberliegender Zeile) for qq := 1 to integer'last do ^ Fehler 103 in Zeile 9 der Datei $HOME/SRC/NATAL_4.PAS Name nicht vom geeigneten Typ for qq := 1 to integer'last do ^ Fehler 202 in Zeile 9 der Datei $HOME/SRC/NATAL_4.PAS Stringkonstante darf nicht länger als eine Zeile sein for qqq := 1 to integer'last do ^ Fehler 6 in Zeile 10 der Datei $HOME/SRC/NATAL_4.PAS Unerlaubtes Symbol (evtl. fehlt ';' in darüberliegender Zeile) for qqq := 1 to integer'last do ^ Fehler 103 in Zeile 10 der Datei $HOME/SRC/NATAL_4.PAS Name nicht vom geeigneten Typ for qqq := 1 to integer'last do ^ Fehler 202 in Zeile 10 der Datei $HOME/SRC/NATAL_4.PAS Stringkonstante darf nicht länger als eine Zeile sein writeln (result); ^ Fehler 116 in Zeile 12 der Datei $HOME/SRC/NATAL_4.PAS Fehler im Typ des Parameters einer Standardprozedur
"Natalie, du hast weniger Fehler gemacht als dir der Compiler das jetzt weis machen will. Da: Das Programm fängt mit 'program' an - nur ein 'm'. Ich denke, du bist Britin?"
"Ich dachte, wenn man die Fehlermeldungen auf deutsch umschaltet ..."
"Dann warst du aber nicht konsequent. Dann hättest du nämlich auch 'beginn' statt 'begin' schreiben müssen."
"Ach so."
"Dann: Was ist 'integer_256'?"
"Lange Integer-Zahl - was so in 256 bits hineinpaßt!"
"Gibt es in Pascal nicht!"
"Gibt es doch! Steht in der Sprachbeschreibung drin!"
"In Standard-Pascal gibt es das nicht. Da mußt du wahrscheinlich den Compiler irgendwie anweisen, daß er Nicht-Standard-Spracherweiterungen akzeptieren soll! - Wir sehen gleich mal nach."
"Mmh." sagt Natalie nur. Ihr Selbstbewußtsein beginnt, dahinzuschmelzen. Dabei sind das ganz normale Anfängerfehler, die auch ein Informatiker bei seiner ersten Berührung mit einer Programmiersprache machen kann. Auch ich habe schon solche Fehler gemacht - habe ich nicht, vor 25 Jahren, auf einer Telefunken-TR4 der TU Clausthal versucht, einem ALGOL-Compiler Assemblertexte unterzuschieben, weil ich Assembler für eine Spracherweiterung von ALGOL hielt?
"Dann - was ist das da: 'integer'last'?"
"Die größte Zahl, die man als 'integer' darstellen kann!" sagt Natalie.
"Das ist aber auch kein Pascal. Das gibt es nur in Ada. Oder in diesem Pascal nur als Spracherweiterung."
"Ach so."
"Gut. Was haben wir noch? - der Rest scheint mir richtig zu sein. Das Programm soll die Summe von allen Produkten bilden, die aus drei Multiplikanden bestehen, die jeweils zwischen 1 und deinem integer'last groß sein dürfen, ja?"
"Ja." sagt Natalie.
"Gut. Du mußt nur das überflüssige 'm' in 'programm' wegnehmen und dem Compiler sagen, daß er diese Spracherweiterungen akzeptieren soll. Das ist alles."
"Dann geht es schon? Und dafür so viele Fehlermeldungen?"
"Ja. - Das ist unser täglich Brot in der Informatik. Es gibt Einzelfehler, die einen Compiler veranlassen können, zehntausende von Folgefehlern zu melden!"
Carola wird ungeduldig: "Könnt ihr euer Programmierpraktikum nicht woanders abhalten? - Wir haben zu tun!"
"Wir sind ja gleich fertig!" sage ich, "Laß doch die Natalie ihr erstes Erfolgserlebnis haben!"
Carola wendet sich mißmutig ihrem Bildschirm zu. "Stör dich nicht dran!" sage ich zu Natalie, "Vor 20 Jahren hat sie ganz genau dieselben Fehler gemacht!"
Natalie korrigiert die erste Zeile des Programmes, und dann finden wir heraus, wie man dem Compiler sagt, daß er dieses erweiterte Pascal akzeptieren soll. Wir versuchen, dabei leise zu reden, damit wir die anderen nicht stören.
Tatsächlich geht die nächste Compilation problemlos über die Bühne. Natalie läßt das Programm laufen. Gespannt starrt sie auf den Bildschirm.
"Warum geschieht nichts?" fragt sie.
"Tja," sage ich, "Sieh dein Programm noch einmal an. Mach ein neues Fenster auf!"
Als sie das getan hat, fahre ich fort: "Du hast da eine immense Menge an Rechenoperationen in die Wege geleitet! Drei geschachtelte Schleifen, bis integer'last - und das sind hier 64-bit Integer-Zahlen!"
"Oh!"
"Dieses Programm läuft länger, als die Welt existiert! Für den Rest der Zeit der Welt hast du diesem Boot einen Prozessor genommen, wenn wir das Programm nicht abbrechen. - In deinem Lehrtext standen doch sicher andere Schleifengrenzen drin, oder?"
Natalie holt den Lehrtext auf den Bildschirm. In der Tat - die drei Schleifen laufen in dem Beispiel nur von 1 bis 10.
"Du wolltest den Rechner wohl ein bißchen mit Arbeit versorgen, oder?"
Sie nickt.
"Naja," sage ich, "es gibt ja noch andere Möglichkeiten. Laß uns noch einmal die Compileroptionen ansehen. Wenn ich mich recht erinnere, kann dieser Compiler optimieren. Er kann den Programmtext analysieren und herausfinden, ob und was man davon parallel machen könnte. Dann können mehrere Prozessoren gleichzeitig an dem Problem arbeiten. Allerdings - wenn der Compiler sonst keine Möglichkeit findet, da etwas abzukürzen, dann reichen sämtliche Prozessoren dieses Schiffes nicht aus, jemals zu einem Ergebnis zu kommen."
"Solche Experimente laßt ihr mal besser sein!" ruft Carola zu uns herüber.
"Du hast es gehört. Wollen wir die Schleifen nicht wieder etwas verkürzen?"
Natalie stoppt ihr Programm und schließt mit einem bösen Seitenblick auf Carola alle Fenster.
"Nein. Ich wollte ja auch nur wissen, was ich falsch gemacht habe - Ich habe jetzt keine Lust mehr."
Sie steht auf, um zu gehen.
"Das war schon ganz gut, Natalie!" sage ich, "Laß dich nicht entmutigen!"
Als sie weg ist, sagt Carola: "Die soll ihre Lippenstifte zählen."
Ich sage nichts. Gegen persönliche Antipathie gibt es keine Argumente. So widme ich mich ebenfalls wieder der Systemanalyse.
Aber wir arbeiten ziemlich schweigend. Ich kann mich kaum konzentrieren, weil ich an Irene's erste Gehversuche mit ihrem Computer denken muß. Wie leicht hätte ich sie damals für immer entmutigen können, wenn ich das Falsche gesagt hätte. In der Anfangszeit einer solchen Beschäftigung entscheidet sich, ob später der Weg zu Kompetenz beschritten wird, oder ob man wieder aufgibt. Dabei weiß Carola um diese didaktischen Gesichtspunkte ganz genau.
Es ist nicht schön von ihr, daß sie so auf Natalie losgeht.
15 Uhr, 6600 Meter Tiefe. Es gibt nach wie vor keine Möglichkeit, in die Dateibestände des super-super-users hineinsehen zu können - da aber könnte der Schlüssel zu unserem Problem liegen. Die eine Möglichkeit, das gesamte System herunterzufahren und dann wieder einen allgemeinen Neustart zu machen, würde wir uns in einer Werft zutrauen, oder wenigstens an einem ruhigen Liegeplatz - aber letzteres wäre schon problematisch: Wir wissen nicht, ob wir ohne externe Energieversorgung den FP-Reaktor wieder hochkriegen können. Ich muß mit den Reaktoringenieuren Colbert und Kufferath darüber sprechen. Aber das hat noch Zeit - wir haben ja keinen ruhigen Liegeplatz.
Um 15:20 Uhr sieht Carola plötzlich von ihrem Bildschirm auf:
"Die CPU-Warteschlangen der Prozesse mit niedriger Priorität sind länger geworden und wachsen noch."
"Ja und?"
"Probiert deine Natalie jetzt doch die Parallellverarbeitung aus?"
"Sie ist nicht 'meine Natalie'! Aber ich werde mal runtergehen und fragen."
Natalie ist in ihrer Kabine. Sie hat sich bis auf ihre Unterwäsche ausgezogen und hingelegt und sieht sich einen Film an. Aus den Augenwinkeln sehe ich zuckende Leiber - naja. Manchmal sehe ich so etwas auch ganz gerne. Ich frage sie nach ihren Programmieraktivitäten.
Fehlanzeige - seitdem sie uns verlassen hat, hat sie nichts mehr getan. Ich halte das für unbedingt glaubwürdig. Gerade will ich weggehen.
"Mußt du jetzt arbeiten?" Sie lehnt sich auf die Kante des Kojenrandes. Dabei rutscht ihr eine Brustwarze aus dem BH heraus.
"Muß ich. - Tut mir leid!"
Sie sieht eingeschnappt hinter mir her, als ich ihre Kabine wieder verlasse. Carola sauer, Natalie eingeschnappt - viel Feind, viel Ehr, denke ich.
Als ich wieder oben bin, zeigt Carola angespannte Aufmerksamkeit. Edwin hackt hektisch auf seiner Tastatur herum. "Es wird schlimmer!" sagt er.
"Natalie war's nicht. Die sieht sich gerade Softpornos an."
Ich hätte glatt erwartet, daß Carola dazu eine Bemerkung macht. Aber sie tut es nicht.
Ich informiere mich selber über die Systemauslastung. "Tatsächlich," sage ich, "alle Prozessoren beschäftigt! Was macht die Maschine denn?"
"Sag es besser dem Alten!" schlägt Edwin vor. Ich greife zum Interkom.
Bis jetzt hat niemand etwas gemerkt. Alle Schiffsysteme, die Rechnerleistung brauchen, funktionieren nach wie vor - Steuerung, Reaktor, Bildverarbeitung und so weiter. Nur wenn man auf die Idee kommt, einen Prozeß mit noch niedrigerer Priorität zu starten, dann bekommt der plötzlich kaum noch Rechenzeit.
"Verstehe ich nicht. Was geht da vor?" fragt Edwin mehr sich selbst als uns.
"Sind es wieder 'ROOT'-Prozesse?" frage ich.
"Vielleicht auch die. Aber nicht nur. Da - was ist 'min'?"
"Wessen 'min'?"
"ROOT, glaube ich. Aber es läuft unter allen möglichen User-Id's."
Ich sehe mir die Prozessorenliste an. Edwin hat recht. Das Programm 'min' läuft vielhundertfach in unserem Rechner ab. Tausendfach. Und es wird immer mehr.
"Das ist oberfaul," sage ich, "Wenn all diese Prozesse die Standard-Priorität hätten, dann würde schon einiges an Bord nicht mehr funktionieren!"
"Das kann auch jederzeit passieren!" belehrt Carola uns, "Du kannst in PRO-UNIX alle Prozesse, die dasselbe Programm ausführen, mit einem einzigen Kommando eine andere Priorität verpassen!"
"Auweh."
"Natürlich nur als super-user."
"Natürlich. Oder als super-super-user!"
"Natürlich." Carola wendet sich wieder ihrem Bildschirm zu: "Wißt ihr, was ich glaube: Da will uns jemand zeigen, was er kann! - Da läßt jemand seine Muskeln spielen."
"Ich hoffe," sage ich, "du hast nicht Natalie im Verdacht!"
Carola sagt darauf nichts. Ich setze mich noch einmal mit der Zentrale in Verbindung und beschreibe Wellington die Situation. Er fragt mich, ob ich an seiner Stelle das Boot festlegen würde.
"Ich weiß nicht. Wenn es unserem Unbekannten gefällt, dann können jede Sekunde alle Rechnerdienste bis zur Unbrauchbarkeit abgebremst werden! - Auch wenn wir still liegen, gibt das Ärger!"
Das brauche ich Wellington nicht zu sagen. Er geht auf Nummer Sicher: Um 16 Uhr nimmt das Boot in 6700 Metern Tiefe eine feste Position ein. Dann kommt er zu uns rüber und läßt sich alles noch einmal zeigen.
Diese vielen, niedrigprioren Prozesse werden nicht raufgesetzt. Aber solange sie laufen, könnte das jederzeit geschehen. Und wir können nichts dagegen tun.
Als Wellington unser Labor verläßt, läßt er sich dazu hinreißen, das auszusprechen, was alle denken:
"Scheißcomputer."
Bevor wir zum Essen gehen, beraten wir noch das Vorgehen des nächsten Tages. Viele blendende Ideen haben wir nicht dafür, und jeder weiß es. Während wir palavern, beugt sich Carola plötzlich wieder vor:
"Sie sind weg!"
"Was?"
"Diese Störprozesse - sie sind weg! Alle innerhalb weniger Sekunden!"
Edwin und ich prüfen das sofort nach. Carola hat recht.
"Vielleicht sind das 'dienstschluß-sensitive' Programme!" schlägt Edwin vor. Natürlich war das ein Scherz.
"Oder Betriebssystem und Hardware wurden geprüft." sage ich, "Wenn es aber so ist, dann sollten wir das wissen. Es sollte irgendwo dokumentiert sein!"
"Du bist doch nicht erst seit gestern in unserem Beruf!" sagt Edwin, "Hast du schon mal gesehen, daß etwas dokumentiert ist, was dokumentiert gehört? Das ist doch nun wirklich die Ausnahme!"
"Das weiß ich. Wenn wir uns aber auf den Standpunkt stellen, dann sind wir eben Zeuge eines ganz normalen Vorganges geworden! - Vielleicht hat die Werft in Greenock so etwas installiert!"
"Vielleicht," sagt Carola, "vielleicht auch nicht."
Wir warten, aber mehr sagt sie nicht. Wir alle betrachten die Auslastungsgrafiken auf den Bildschirmen. Ein fein gezeichnetes Balkendiagramm - die Balken sind jetzt ganz kurz: Es ist um Größenordnungen mehr Rechnerleistung verfügbar als das Schiff im Moment braucht.
"Hoffentlich ist heute nacht Ruhe," sage ich, "aber ich sage euch: Auf meinem nächsten U-Boot dürfen nur noch Rechenschieber verwendet werden!"
"Tja, das kannst du haben!" sagt Edwin und dreht sich wieder zu seinem Bildschirm um: "Das hat es schon in X-Windows gegeben!" Plötzlich steht ein Taschenrechner auf seinem Bildschirm.
"Na und?" frage ich.
"Es ist wie mit der Uhr! Weißt du das nicht?" Edwin klickt irgendwo ein Feld in diesem Taschenrechner an - und plötzlich sieht man statt des Taschenrechners einen Rechenschieber auf dem Bildschirm.
"Was habe ich gesagt?" fragt er, "Du kannst ihn ganz normal mit dem Trackball bedienen - wie einen gewöhnlichen Rechenschieber eben! Geschmiert, reibungslos und immer einsatzbereit! - Hier: Du kannst ihn vergrößern und verkleinern und sogar drehen."
Ich stehe auf und gehe zur Kantine:
"Ein Rechenschieber? Schon in X-Windows? Schwachsinn. - Schwachsinn!"
Wenigstens wird das Abendessen echt sein, und wir werden mit Messer und Gabel statt mit Maus oder Rollkugel essen können.
Als ich die Hand schon am Geländer des Niederganges zur Kantine habe, ruft Carola:
"Eh, Herwig! Was ist das denn?"
"Was denn?" frage ich und halte ein, den ersten Fuß schon auf der Stufe.
"Die Meldung hier!"
"Welche?"
Ich gehe zurück. Carola deutet auf das Shell-Fenster vor ihr auf dem Bildschirm: "Das da!"
Ich lese eine auf dem ersten Blick harmlose Zeile:
BUOYANCY CONTROL DRIVER REPLACED
"Was heißt das denn?" frage ich, "Ist die Meldung auf allen Bildschirmen aufgetaucht?"
"Nur in den Shell-Fenstern von root!"
"Aha. Und was heißt das? Hast du das veranlaßt?"
"Nein. Keinen Finger habe ich gerührt. Ich weiß auch nicht, was ein Buoyancy Control Driver sein könnte!"
"'Buoyancy' heißt 'Auftrieb'." sage ich, "Also demnach - demnach ist da vielleicht von dem Server für die Auftriebregelung die Rede. Von dem Server für die Regelzellen."
"Meinst du wirklich?" fragt Carola.
"Ich hoffe, ich irre mich. Das hoffe ich ganz dringend!"
Copyright © Josella Simone Playton
2000-09-15 14:00:00
Zurück zu meiner Hauptseite