Original-URL des Artikels: https://www.golem.de/news/templeos-goettlicher-hardcore-1508-115081.html    Veröffentlicht: 03.08.2015 12:01    Kurz-URL: https://glm.io/115081

TempleOS im Test

Göttlicher Hardcore

Internettrolle reden viel, liefern aber selten. Eine Ausnahme ist Terry Davis: Er hat tatsächlich sein eigenes Betriebssystem geschrieben. Wir haben TempleOS ausprobiert und sind auf dem schmalen Grat zwischen Genie und Wahnsinn balanciert.

Terry Davis ist in einer Vielzahl englischsprachiger Computerforen schon seit langem eine Persona non grata. Er ist nicht der klassische Troll, der provozieren will, vielmehr mischt sich bei ihm technischer Sachverstand mit dem Ziel, die IT-Welt christlich zu missionieren. Das könnte als Internetfußnote abgetan werden. Doch Davis hat tatsächlich getan, wovon andere nur reden: In den vergangenen zwölf Jahren hat er sein eigenes Betriebssystem geschrieben. Nicht nur den Kernel, nicht nur für einen (fiktiven) Mikroprozessor älterer Bauart, sondern ein 64-Bit-Betriebssystem für aktuelle Intel- und AMD-Prozessoren, inklusive eigenem C-Dialekt, Compiler, Kommandozeile, Editor, Anwendungsprogrammen und Spielen. Im März 2015 erschien Version 3.04, wir haben einen Blick auf "Gottes Betriebssystem" geworfen.

So nennt Davis sein Betriebssystem selbst - er ist sehr religiös und betrachtet sein TempleOS als von Gott auserwählt. Das gilt auch für eine Reihe technischer Entscheidungen und "göttlicher" Forderungen an die Hardware, die Software und ihre Entwicklung. Manches ist recht schräg - wie die Aussage, dass nur eine Grafikauflösung von 640 x 480 Pixeln mit 16 Farben zulässig sei und Hardware-Upgrades nur alle 49 Jahre stattfinden sollten. Andere Forderungen wie die nach der Abschaffung von Microsofts Secureboot und einer dedizierten Reset-Taste an einem Computer dürften hingegen eine Vielzahl von Anhängern finden.

Davis hat tatsächlich hardwarenahe Programmierung gelernt und beruflich betrieben. Seine Hinwendung zur Religion setzte anscheinend erst ein, als seine Schizophrenie nicht mehr behandelt wurde. Gleichzeitig scheint ihm dies erst die notwendige Motivation verliehen zu haben, TempleOS tatsächlich so lange allein zu entwickeln. Eine ausführliche und lesenswerte Biografie, die sich mit seinem beruflichen Werdegang, seiner Schizophrenie und seiner Religiosität auseinandersetzt, hat das Vice-Magazin im Herbst vergangenen Jahres veröffentlicht.

Vertraut und doch ganz anders

Die ersten Schritte mit TempleOS unterscheiden sich nicht von denen anderer Betriebssysteme. Die Rituale sind die gleichen. Es gilt, eine ISO-Datei herunterzuladen und auf CD zu brennen - oder in eine virtuelle Maschine einzubinden. Der Anwender kann zwischen einer minimalen und einer vollständigen Distribution wählen. Da aber Letztere auch nur gut 17 MByte groß ist, lohnt sich Geiz an dieser Stelle nicht.

Das CD-Image funktioniert auch als Live-CD. Nur wenig Zeit vergeht, bis das System von CD gestartet ist. Auf Terminalfenster im ASCII-Look waren wir gefasst, auf die blinkenden und scrollenden Fenstertitel nicht. Um es vorwegzunehmen: Das Blinken stört in den ersten Minuten wirklich, doch mit der Zeit beginnt unser Gehirn, es auszublenden, und zuweilen sind die vermittelten Informationen tatsächlich nützlich. Eher durch Zufall entdecken wir den dünnen Mauszeiger in der Mitte des Bildschirms, wir bewegen unsere USB-Maus, und der Zeiger folgt unseren Bewegungen. Wir bewegen den Mauszeiger über die Fensterleiste des kleinsten der drei angezeigten Fenster; es ist die Autovervollständigung, wie wir später lernen werden. Intuitiv klicken wir auf die Fensterleiste und halten die Maustaste gedrückt. Und können das Fenster damit verschieben. Wir probieren, auf das große X in der rechten oberen Ecke des Fensters zu klicken, und wie erwartet schließt sich das Fenster.

Die übrigen beiden Fenster sind klassische Terminalfenster mit jeweils einer Kommandozeile. Im linken Fenster wird uns angeboten, das System auf einer Festplatte zu installieren und ein Einführungstutorial durchzuführen. Wir entscheiden uns dagegen und wollen erst einmal direkt auf der Kommandozeile weitermachen.

Wir geben dir ein und drücken Enter, nichts passiert. Wir geben ls ein und drücken Enter. Daraufhin erhalten wir eine Compiler-Warnung über einen unbekannten Identifier. Richtig gelesen: kein Hinweis zu einem unbekannten Programm, sondern tatsächlich eine Compiler-Warnung. Die Kommandozeile von TempleOS wird von einem C-Compiler ausgewertet. Es ist genau genommen nicht originales C, sondern Davis' eigener C-Dialekt namens HolyC. Doch dazu später mehr.

Installation verlangt tiefere Kenntnisse

Bevor wir weiter das System erkunden, wollen wir es von der Live-CD installieren. Einen Lizenzschlüssel brauchen wir nicht, TempleOS ist Public Domain und Open Source. Davis empfiehlt explizit die Installation als Dual-Boot oder innerhalb einer VM. Auch wenn TempleOS ein vollständiges Betriebssystem ist, so versteht er es doch vor allem als Lern- und Experimentierplattform für Programmierer. Wir aber haben einen älteren Rechner abgestaubt und gönnen TempleOS eine exklusive Installation, wobei wir das bisher installierte Windows komplett von der Festplatte fegen wollen.

Da wir das Skript zur Installation geschlossen haben, das uns die Installation angeboten hat, und wir zu dem Zeitpunkt nicht wissen, wie wir es erneut aufrufen können, starten wir per Hardreset den Rechner einfach neu. Der Startvorgang dauert nur kurz, daher ist das schmerzlos. Diesmal beenden wir das Startskript nicht, sondern bestätigen den Installationswunsch. Das Skript durchläuft eine Reihe von Programmen, die auch manuell aufgerufen werden können.

Trivial ist der Installationsvorgang nicht. Wir müssen die Festplatte partitionieren und mit dem Red-Sea-Dateisystem von TempleOS formatieren. Der Ablauf und die Eingabe von Zahlenwerten zum Festlegen der Partitionsgrenzen erinnern an die Installation von Linux in seinen frühesten Tagen. Dass es sich nicht um ein Linux handelt, wird aber deutlich, als das System von Laufwerksnamen wie 'C' spricht.

Ist die Festplatte eingerichtet, wird der Inhalt der Live-CD auf die Festplatte kopiert und schließlich noch ein eigener Bootloader eingerichtet - TempleOS kann aber auch mit Grub benutzt werden. Wird der Bootloader von TempleOS benutzt, sichert das System den ursprünglichen Master Boot Record (MBR).

Schließlich nehmen wir die CD heraus, per Hardreset erzwingen wir wieder einen Neustart. Wir landen im Bootmenü. Dort haben wir die Wahl, TempleOS zu starten oder den alten MBR wieder aufzurufen. Natürlich starten wir TempleOS.

Unbegrenzter Zugriff auf das System

Die Installation macht schon klar: TempleOS wirkt altbacken, überlässt dem Anwender aber die volle Kontrolle über das System. Davis selbst bezeichnet es als C64-Betriebssystem für moderne Prozessoren. TempleOS reizt die Vorteile der x86-64-Architektur aus, verzichtet aber darauf, den Anwender mit einem Sicherheitsnetz zu schützen. Ein Programmierer kann alle Speicheradressen des Rechners ohne Umwege und Tricks direkt lesen und schreiben, er arbeitet grundsätzlich im Ring-0-Kernelmodus; ein Dateirechtesystem mit Benutzern und Gruppen gibt es nicht. Das System erlaubt es dem Programmierer, den größten Blödsinn anzustellen - mit der Konsequenz, dass das System Programmierfehler auch schon einmal mit einem harten Absturz bestraft oder schlicht stehenbleibt.

Geheiligt werde C

Vor diesem Hintergrund scheint es geradezu natürlich, dass auf der Kommandozeile C gesprochen wird. Kein Standard-C wohlgemerkt. HolyC ist ein sehr freier C-Dialekt, der eher an eine Skriptsprache erinnert. Es gibt etwa kein main(), keine Typenprüfung, Klammern nach Funktionsaufrufen ohne Parameter sind optional. Ein simples Hello-World-Programm besteht tatsächlich nur aus:
"Hello World\n";

Der Vergleich mit einer Skriptsprache im klassischen Sinn wird auch an einer anderen Stelle deutlich. Standardmäßig gibt es nur ein einziges Binary in TempleOS, den unmittelbaren Startup-Code. Alle anderen Programme sind eigentlich Skripte, die im Quellcode vorliegen und erst bei der Nutzung just-in-time kompiliert werden.

Davis geht den Weg sogar konsequent weiter: Programme im herkömmlichen Sinn gibt es eigentlich gar nicht. Alle vermeintlichen Kommandozeilen-Aufrufe sind letztlich Funktionsaufrufe. Umgekehrt können "Programme" auch einfach in eigene Skripte inkludiert werden, um sie auszuführen. Und ja: Eine Datei auf der Kommandozeile zu inkludieren und dann eine Funktion daraus aufzurufen, funktioniert:
void MyTest() { "Hello World\n"; }



Farbliche Formatierungen im Text sind gleichfalls trivial. Das $-Zeichen hat in TempleOS eine besondere Bedeutung, auch bei der reinen Eingabe. Folgende Zeile gibt das Wort "World" in Grün aus und stellt danach wieder die originale Vordergrundfarbe her:
"Hello $GREEN$World$FG$\n";

Die Maus im Terminalfenster

So faszinierend die Verwendung von C auf der Kommandozeile klingt, in der Praxis nervt es natürlich, statt cd .. jedes Mal Cd(".."); oder statt dir eben Dir; tippen zu müssen. Erst recht, da das System natürlich case-sensitiv ist.

Aber wer sich durch Verzeichnisse arbeiten will, muss das gar nicht per wiederholter Tastatureingabe tun. Die ausgegebene Verzeichnisauflistung ist klickbar. Ein Klick auf ein Unterverzeichnis öffnet sie. Wer eine Datei anklickt, öffnet direkt den Editor - der auch Bilder anzeigen kann, allerdings nur solche im BMP- und TempleOS-eigenen Format. Letzteres unterstützt auch Animationen analog zu animierten Gifs.

Doch das ist nicht die einzige Stelle, an der Hypertext zum Einsatz kommt. Das Betriebssystem unterstützt ihn praktisch überall. So können auch normale Texte und Quellcode Hyperlinks enthalten und auf andere Dokumente verweisen. Kein aktuelles System dürfte die Vision des Xanadu-Projekts aus den 60er-Jahren des 20. Jahrhunderts so konsequent umsetzen wie TempleOS.

Die Unterstützung von Hypertext ist umso merkwürdiger, als TempleOS ein entscheidendes Feature fehlt, das heute geradezu selbstverständlich wirkt: Netzwerk- und Internetunterstützung.

Für Erinnerungsschwache: die Autovervollständigung

Ein anderes Feature unterstützt den Nutzer nicht nur auf der Kommandozeile. Die Autovervollständigung funktioniert praktisch überall, wo es etwas einzugeben gibt. Wer das Fenster aus Versehen geschlossen hat, öffnet es wieder mit Alt+w.

Wird nichts eingegeben, wird eine Liste überall verfügbarer Tastaturkürzel angezeigt. Sobald der Anwender mit Tippen beginnt, listet ihm die Autovervollständigung die verfügbaren Wörter auf. Ausgewählt wird ein Wort mit der angezeigten Taste in Kombination mit Ctrl.

Die Autovervollständigung kennt nicht nur englische Wörter, sondern umfasst gleichfalls alle bekannten C-Funktionen des Systems wie auch Variablen. Oft lassen sich diese sogar anklicken, und prompt öffnet sich der Editor und springt zur Zeile der jeweiligen Definition.

Der Editor

Wie bereits angedeutet, dient der Editor nicht nur dazu, simplen Text darzustellen und zu bearbeiten. Bilder kann er genauso darstellen wie auch Hypertext in beliebigen Dokumenten. Das Konzept von TempleOS geht dabei so weit, dass Bilder und Hypertext unmittelbar in den HolyC-Text eingebettet werden können und auch so dargestellt werden. Ja, richtig gelesen: Wer einer Variablen eine Bildressource zuweist, sieht tatsächlich das Bild im Editor selbst. Und natürlich unterstützt der Editor Syntax-Highlighting für HolyC.

Wem das zu bunt wird, drückt die Tastaturkombination Ctrl+T. Sie schaltet in einem Terminalfenster auf die Rohdarstellung um, die Inhalte ohne jegliche Verzierung darstellt. Ein erneuter Aufruf der Kombination wechselt wieder zur bunten Ansicht zurück.

Dass sich auch der Editor an Programmierer wendet, wird deutlich, wenn der Anwender F5 drückt. Dann wird der Dateiinhalt sofort - unabhängig vom Dateinamen - kompiliert und in einem eigenen Terminalfenster ausgeführt. Mit Esc wird das Programm wieder beendet beziehungsweise geschlossen. Auch diese Konvention gilt systemweit. Esc beendet ein Programm, wie auch den Editor selbst, mit abschließendem Speichervorgang. Esc+Shift schießt es einfach ab.

Eine kleine Windows-Referenz und eine Einführung

TempleOS hat auch ein Startmenü, inklusive animierter Icons. Es wird mit Ctrl+m geöffnet oder per Klick auf den Menu-Button in einer beliebigen Fensterleiste. Es kann beliebig angepasst werden und enthält einige kleine Hilfestellungen, die besonders Einsteigern zugutekommen.

Einsteigern sei sowieso dringend angeraten, das Angebot von TempleOS wahrzunehmen und der Einstiegstour zu folgen. Zu stark weicht TempleOS von den heutigen Konventionen ab, als dass man sich die Bedienung intuitiv aneignen könnte. Außerdem lohnt sich ein Blick in die Tipps-Sektion der Webseite.

Ein Anwender benötigt ein, zwei Stunden, bis erste Tastaturkürzel und Arbeitsweisen sitzen. Dann gestaltet sich der Umgang mit dem Betriebssystem aber recht flüssig. TempleOS ist anders, aber dabei in sich sehr konsistent. Der Wahnsinn hat Methode und einheitliche Tastaturkürzel für jedes Problem.

Einen einfachen Überblick über alle mitgelieferten Programme liefert ein Testskript unter C:/Misc/OSTEstSuite.CPP.Z.

Fazit

Terry Davis hat ein Betriebssystem geschrieben, das er rein auf seine Bedürfnisse, Erwartungen und Gewohnheiten zugeschnitten hat. So ist der erste Kontakt mit dem System für jeden anderen zwangsläufig ein Schock. Doch wer die Zeit investiert, sich ein wenig an das System zu gewöhnen, entdeckt immer neue praktische Ideen, besonders aus der Sicht eines Programmierers.

Wäre TempleOS von einer Gruppe Studenten geschrieben worden oder gar Resultat einer Kickstarter-Kampagne, würde es vermutlich als Teil des allgegenwärtigen Retro-Computings seine Anhänger finden. Wäre nicht die Begrenzung auf Intels und AMDs x86-64-Architektur, wir könnten es uns mit kleineren Anpassungen als ein sehr gutes Bastel- und Lern-Betriebssystem für das Raspberry Pi vorstellen. Wir hoffen, dass der eine oder andere Betriebssystem-Entwickler doch einmal einen ernsthaften Blick auf TempleOS wirft - so manches Feature würde anderen Betriebssystemen gut stehen.

Ob TempleOS "Gottes Betriebssystem" ist, können wir nicht beantworten. Als Werkzeug und Spielzeug für die Programmierer-Ausbildung und als Spielplatz für systemnahes Arbeiten sollten ihm die höheren Weihen aber nicht verwehrt werden.

Das Video enthält Musik von Eric Skiff nach CC-by-SA 3.0  (am)


Verwandte Artikel:
Google: Alphaversion von Android P ist da   
(08.03.2018, https://glm.io/133218 )
LLVM 6.0: Clang bekommt Maßnahme gegen Spectre-Angriff   
(09.03.2018, https://glm.io/133241 )
Programmiersprache: Go 1.10 cacht besser und baut Brücken zu C   
(19.02.2018, https://glm.io/132857 )
Raspad: Raspberry Pi kommt ins Bastel-Tablet-Gehäuse   
(06.03.2018, https://glm.io/133180 )
Privatsphäre: Bildungsrechner spionieren Schüler aus   
(22.04.2017, https://glm.io/127438 )

© 1997–2020 Golem.de, https://www.golem.de/