Was ist eigentlich dieses RISC OS

Auf meinem Nachbarblog hubersn.RISCOS geht es um dieses exotische Randgruppenbetriebssystem namens “RISC OS”, das eigentlich nur in britischen Landen und mit Abstrichen in einigen Ländern des Commonwealth eine gewisse Bedeutung erlangt hat. Wobei “gewisse Bedeutung” schon recht hoch gegriffen ist.

Nichtsdestotrotz hat RISC OS eine interessante Geschichte und wird auch heute noch von einigen wenigen Nutzern eingesetzt und von noch weniger Entwicklern vorangetrieben. Irgendwas muss also dran sein an diesem Betriebssystem. Was das ist, soll im Folgenden genauer beleuchtet werden. Ich bin hier quasi die dreifache Randgruppe – RISC OS-Nutzer, RISC OS-Entwickler, Nichtbrite.

Es war Mitte der 80er, als die Firma Acorn – auf der Insel wohlbekannt für ihre 8Bit-Rechner wie den BBC Model B oder den Electron, die hauptsächlich im Bildungswesen ihr Unwesen trieben – sich mit der nächsten Generation Computer beschäftigte und dafür einen 32bit-RISC-Prozessor entwickelte, der folgerichtig ARM (Acorn RISC Machine) genannt wurde. Man war knapp bei Kasse, Software hatte noch nie die höchste Priorität, und so schusterte man mehr schlecht als recht ein Betriebssystem mit dem Namen Arthur (angeblich steht das für “A Risc operating system by THURsday, was auf ziemlichen Zeitdruck bei der Entwicklung schließen lässt) zusammen, im Prinzip eine 32bit-Version des alten 8bit-MOS des BBC Model B. Da die Entwicklung des eigentlich vorgesehenen Betriebssystems ARX nicht in die Gänge kam (über den Grad der Fertigstellung ranken sich verschiedenste Gerüchte), entschied man sich für eine stark aufgebohrte Version von Arthur, die man RISC OS 2 taufte. Für die damalige Zeit – man schrieb das Jahr 1988 – gar kein schlechter Wurf. Vernünftige grafische Oberfläche, konsequente Mausbedienung, multitaskingfähig, das freut den Benutzer.

Acorn war Zeit seiner Existenz nicht besonders vom Erfolg seiner Computer verwöhnt, aber ARM (1990 ausgegründet und umbenannt in “Advanced RISC Machine”) war der große Wurf. Die von Acorn gehaltenen Anteile an ARM waren 1997 der Grund für die Zerschlagung von Acorn, aber der Erfolg von ARM ist letztlich der Grund dafür, dass RISC OS in den letzten Jahren wieder so etwas wie einen zweiten Frühling erlebt – eine besondere Ironie der Geschichte.

Zurück zu RISC OS. Ein Meilenstein war RISC OS 3, das 1992 in der Version 3.1 die neue “Baseline” für Archimedes & Nachfolger (A5000, A30x0, A4000, A4) darstellte. Immer noch schnell, schlank, elegant – aber deutlich abgerundet gegenüber seinem Vorgänger. 1994 leicht aufgehübscht als Version 3.5 für den Risc PC veröffentlicht, war der nächste (und gleichzeitig letzte unter Acorn-Ägide) Meilenstein die Version 3.7, die an den StrongARM angepasst war.

Version 4 war eigentlich für die nächste Acorn-Hardware-Generation vorgesehen, “Phoebe” hätte der Rechner heißen sollen. Dazu kam es “dank” der Zerschlagung von Acorn nicht, stattdessen übernahm RISCOS Ltd. (kurz “ROL” genannt) den Staffelstab und brachte 1999 RISC OS 4 auf den Markt. In den Folgejahren kam es zum “RISC OS Split” – ROL entwickelte weiter für die vorhandene (Risc PC, A7000(+)) sowie erhoffte neue Hardware (RiscStation, MicroDigital, Millipede, STD) und später vor allem für Emulatoren (VirtualAcorn) den RISC OS 4-Strang in Form von “RISC OS Select” und “RISC OS Adjust”, Castle Technology hingegen verwendete den RISC OS-Strang von Pace Technologies (die hatten sich die Reste von Acorn einverleibt, die kein anderer haben wollte) für den IYONIX pc und nannte ihn RISC OS 5. So kam es zur für Außenstehende verwirrenden Situation, dass “RISC OS 4” teilweise mehr oder andere Features hatte wie “RISC OS 5”. Vollends chaotisch wurde es dann durch “RISC OS SIX”, einer Weiterentwicklung von ROL aus RISC OS 4.39 (genannt “Adjust”). 2006 machte dann wiederum der “RISC OS 5”-Zweig von sich reden, welcher über RISC OS Open Ltd. (kurz ROOL genannt) nach und nach als Open Source (manche bestehen auch auf der Bezeichnung “Shared Source”, um die non-OSI-ness der Lizenz zu betonen) der Community bereitgestellt wurde. Daraus speist sich auch der neue Schwung in Sachen RISC OS, der dem RISC OS 5-Zweig auf allerlei ARM-Hardware wie BeagleBoard, BeagleBoard-xM, PandaBoard und Raspberry Pi Präsenz verschafft.

Soviel zur historischen Vorrede. Was außer historischem Interesse mag es heute noch für Gründe geben, sich mit RISC OS zu beschäftigen?

RISC OS ist, was viele Konzepte angeht, so etwas wie das “Anti-Linux”. RISC OS steht unter einer GPL-inkompatiblem Shared-Source-Lizenz. RISC OS ist sehr mausbedienzentriert. RISC OS zeigt, wie Datei-Drag&Drop wirklich funktionieren sollte. RISC OS hatte von Anfang an einen strengen Style Guide, so dass die Anwendungen sich alle sehr ähnlich bedienen. RISC OS hatte von Anfang an genau einen Desktop. RISC OS ist ein Single-User-Betriebssystem, das nur eine schwache Idee eines “Prozesses” und eines “Task-Schedulers” hat. RISC OS-Anwendungen müssen sich kooperativ verhalten, damit das Multitasking funktioniert. RISC OS hat keinen virtuellen Speicher. RISC OS hat keinen Datencache für Dateisysteme. RISC OS lässt dem Benutzer fast alle Freiheiten, wie er sein Dateisystem organisiert. Die RISC OS-Kommandozeile ist extrem leistungsschwach. Der RISC OS-Desktop erlaubt einen überaus eleganten, dateisystemzentrierten Umgang mit Anwendungen und ihren Daten. RISC OS hat bis heute einen semi-kommerziellen Softwaremarkt, wo kleine Anwendungen für kleine Beträge (und wenige große Anwendungen für relativ große Beträge) verkauft werden. RISC OS wird mit dem proprietären DDE assembliert und compiliert. RISC OS besteht hauptsächlich aus Assembler und nur ein wenig C. Es gibt genau eine “RISC OS-Distribution”, und zwar die von ROOL. RISC OS ist klein, kompakt und schnell. Während der Raspberry Pi für Linux lahmarschige Hardware mit knappen Speicher ist, ist es für RISC OS eine superperformante Plattform mit unendlichen Speicherweiten. RISC OS ist verhältnismäßig einfach gestrickt – vermutlich ist es das einzige wirklich nützliche Betriebssystem, das noch von einer einzigen Person in Gänze verstanden werden kann.

Als erfahrener RISC OS-Benutzer geht man niemals davon aus, dass ein Gerät unter RISC OS “einfach so” funktioniert – die Lücken in der Hardwareunterstützung sind riesig. Erst kürzlich lernte der RISC OS-USB-Stack, den isochronen Übertragungsmodus zu unterstützen – die meisten Computerbenutzer haben davon vermutlich noch nie etwas gehört, da die Mainstream-Betriebssysteme diesen selbstverständlich unterstützen. RISC OS-Benutzer hingegen haben erst seit kurzer Zeit das Vergnügen, USB-Audio-Geräte verwenden zu können. Anderes Beispiel: bis heute gibt es keine Unterstützung für WLAN-Sticks, RISC OS-Nutzer behelfen sich mit LAN-WLAN-Bridges. Dafür gibt es wiederum ganz anständige Unterstützung für UMTS-Sticks. In Verbindung mit dem Motorola Lapdock ergibt RISC OS so eine ganz passable portable Plattform – zum ersten Mal seit 1992, als der A4 veröffentlicht wurde.

Manchmal muss man unter RISC OS für Dinge bezahlen, die es anderswo wie selbstverständlich kostenlos gibt. Anständige Textverarbeitung zum Beispiel. Da muss man schon ein paar Euro bei meinem Freund Martin Würthner hinterlegen, um EasiWriter oder TechWriter zu kaufen, während auf anderen Systemen OpenOffice und LibreOffice zur Verfügung stehen. Oder Druckertreiber mit Qualitätsanspruch – auch hier ist Martin Würthner mit Gutenprint und dem PostScript3-Treiber erster Ansprechpartner. Will man Email und News lesen und schreiben, empfiehlt sich Messenger Pro von R-Comp (nicht erschrecken beim Besuch dieser Website – es hat keine Zeitreise stattgefunden!). Für Pixelbildbearbeiter ist Photodesk von CJE erste Wahl. Und obwohl eine recht moderne GCC-Version zur Verfügung steht, ist der Kauf des DDE dennoch empfehlenswert – und sei es nur als Unterstützung für die Arbeit von ROOL. Die gute Nachricht: einen Gutteil der genannten Software kann man als Raspberry Pi-Nutzer im NutPi-Bundle für kleines Geld erwerben.

Dass RISC OS das Anti-Linux ist, hat leider teilweise ungünstige Auswirkungen. So ist die Portierung von Anwendungen aus der Linux-Welt – vor allem bei denen mit grafischer Oberfläche – eher schwierig. So gibt es z.B. nur eine Uralt-Portierung von Firefox, keine von Thunderbird und OpenOffice/LibreOffice, es gibt kein Java, kein GIMP, keinen Emacs. Audio/Video-Codec-Unterstützung ist Glücksache. Die Unterstützung für Dateisysteme jenseits von FAT ist nicht vorhanden.

Das Geheimnis des zufriedenen RISC OS-Benutzers ist, dass er RISC OS nur für das benutzt, wo es gescheite Software gibt. Und dann ist die Benutzung ein Traum. Illustrationen mit ArtWorks, Textverarbeitung mit TechWriter, DTP mit OvationPro, Emails und News mit Messenger Pro. Dazu kleine feine Tools wie SparkFS, PrintPDF, StrongEd, Zap, DigitalCD und Sunfish. Zum Surfen tut es auch ein Windows-Rechner, den man per UniPrint und UniScan prima zum Treiber-Knecht degradieren kann. Und der bei Softwarenot per RDP komfortabel auf dem RISC OS-Rechner zur Verfügung steht.

Wer nun Lust bekommen hat, RISC OS mal auszuprobieren, hat zwei relativ einfache Möglichkeiten: wenn man schon einen Raspberry Pi hat, einfach NOOBS verwenden und RISC OS auswählen. Wenn man einen gewöhnlichen PC hat, RPCEmu als RISC OS-Emulationsplattform verwenden – wenn was komisch ist, liegt es dann am PC und dem Emulator und niemals an RISC OS. Man kann “ready-to-run”-USB-Sticks mit RPCEmu für Windows und Mac bei RISC OS Open Ltd. kaufen, aber der wahre Fan baut natürlich selbst.

Frohes Fest und guten Rutsch

Ich wünsche allen Lesern des hubersn.IT-Blogs ein Frohes Weihnachtsfest und einen guten Rutsch ins neue Jahr.

Ich hoffe, ich kann Qualität und Frequenz der Blogeinträge auch in 2015 halten oder sogar ausbauen. Naturgemäß gibt es in der schnelllebigen IT im Rückblick viel zu viele Themen, die man nicht behandelt hat – mit dem Start als Neublogger in 2014 bin ich dennoch ganz zufrieden, ich hoffe meine Leser sind es auch. Anregungen und Kritik gerne jederzeit per Kommentar oder per Mail.

Mein Ada-Wiedergänger

Es war einmal ein Informatik-Student der Uni Stuttgart im vierten Semester. Bis dato wurde er programmiertechnisch mit Modula-2, Prolog und Lisp traktiert. Dann: Das Software-Praktikum in der Abteilung “Software Engineering” mit dem Thema “Durchführung eines Softwareprojekts: Entwicklung eines Fahrplanauskunftssystem” stand an. Die Implementierung erfolgte in Ada 83 unter DEC Ultrix (schon damals eher exotisch), zuvor habe ich deshalb den Ada-Kompaktkurs bei Jürgen Schwille (inzwischen hat es der zum Prof.Dr. gebracht und unterrichtet an der DHBW Stuttgart) genießen dürfen.

Gemessen an den damals verfügbaren Alternativen (C, BASIC, Pascal, Modula-2 und vielleicht noch Objective-C, wenn man sich zufällig einen NeXT leisten konnte) war Ada eine Offenbarung. Die Multithreading-Abstraktion in Form des “Taskings”, die “Derived Types”, die Abstraktionsmöglichkeiten über Packages und Generics – obwohl oft als “Designed By Committee” verschrien, fand ich Ada damals gemessen an der Leistungsfähigkeit bemerkenswert elegant.

Anno 1995 kam dann mit Ada 95 ein großes Sprachupdate. Hierarchische Packages, Objektorientierung via “Tagged Types”, eine stark erweiterte Standardbibliothek – das nächste Uni-Projekt, das Fachpraktikum mit Thema “Entwicklung eines Terminkalenders unter Gesichtspunkten des Software Engineerings” in der interessanten Kombination Backend in Ada – Frontend in Tcl/Tk, machte mich zum Ada-Fan.

Endlich war mit GNAT auch ein freier Ada-Compiler verfügbar, der sogar auf RISC OS portiert wurde. Das gab mir die Gelegenheit, mal schnell eine CD-Brenner-Software namens CDBurn in Ada zu entwickeln. Um Mitstreiter in Sachen Ada unter RISC OS zu finden, habe ich 1999 einen Artikel namens “Die Programmiersprache Ada” für die GAG-News geschrieben – ein wenig Ada-Historie, kurze Codebeispiele, was für den Einsatz unter RISC OS spricht, Literaturempfehlungen.

Der Artikel ist m.E. nicht besonders gut gelungen. Oberflächlich, sehr bemühte Beispiele, setzt gewisse Programmierkenntnisse voraus ohne diese genau zu spezifizieren…aber mangelhafte Qualität hat ja noch nie Verbreitung behindert. Die TU München hat anno 2005 meinen Text für ein Ada-Proseminar als Mini-Einführung verwendet – keine Ahnung, wie die drauf gekommen sind. Und heute sehe ich bei einer statistischen Auswertung der Referrer-URLs auf meine Domains, dass auch die Uni Stuttgart, genauer das Institut für Automatisierungs- und Softwaretechnik, in Unterlagen für das Fachpraktikum Automatisierungstechnik meinen Artikel als Literaturreferenz aufführt.

Jetzt mal ehrlich: wenn mein höchst mittelmäßiger Artikel ein zitierwürdiges Werk im deutschsprachigen Ada-Universum ist, steht es sehr sehr schlecht um diese Programmiersprache. Und das wäre ein Jammer, denn besonders die letzten beiden Sprachupdates Ada 2005 und Ada 2012 haben eine Menge getan, um die Sprache modern zu halten, ohne die ursprünglichen Stärken zu verlieren.

Also: flugs mal bei AdaCore vorbeischauen, GNAT GPL 2014 Edition runterladen , und loslegen – meine Empfehlung ist, eher das Eclipse-Plugin GNATbench zu verwenden, anstatt es mit GPS zu versuchen. Dann ein Tutorial – Vielleicht nicht unbedingt mit meinem Artikel, sondern lieber “Ada Distilled” von Richard Riehle, das Lovelace Tutorial von David Wheeler  (echt oldschool), das Wikibook zur Ada-Programmierung, den Ada Crash-Course oder, falls man einen Background in C oder C++ hat, mit diesem PDF anfangen.

Besonders mutige Naturen laden die GNAT-Variante für die JVM herunter (gibt es leider nur in der GNAT GPL 2013-Variante) – damit kann man Ada-Quellcode in Bytecode compilieren und auf der JVM ausführen. Erste Aufgabe: schreibe ein Ada-Programm, das mit Swing-Mitteln einen JFrame öffnet. Der erste Einsender einer richtigen Lösung erhält einen Sonderbonus.