MorphOS

MorphOS - Wege zu einem optimierten MorphOS System

Vorwort


MorphOS ist ein, verglichen mit Windows, OSX und Linux schlankes, optimiertes und schnelles System, dass sich schon mit 128 MB Speicher und komplett ohne virtuellen Speicher nutzen läßt. Speziell auf dem Efika stößt man dennoch schnell an die physikalische Speichergrenze. Mit ein wenig Handarbeit lassen sich viele Dinge an den persönlichen Bedarf anpassen und optimieren.

Für MorphOS gilt eine eigentlich unumstößliche Regel: Dateien in der MorphOS Schublade dürfen nicht verändert werden. Einige der folgenden Tipps setzen sich bewußt über diese Regel hinweg

Alle im Zuge des Artikels angesprochenden Änderungen der MorphOS Schublade sind auf eigene Gefahr durchzuführen und es wird in jedem Fall empfohlen eine bootfähige MorphOS CD oder ein ISO für einen ISO Boot zur Hand zu haben, um gegebenenfalls das System wieder reparieren zu können. Alle diese "verbotenen" Optimierungen gehen natürlich, wie beim Reparieren mit der CD auch, beim nächsten MorphOS Update verloren, da die MorphOS Schublade bei dem Vorgang komplett erneuert wird.

Des weiteren kann man mit Hilfe des Tools "RegisterISO" ISO Dateien und die davon hergestellten CDs mit dem eigenen MorphOS.key versehen und ohne das Zeitlimit im Hinterkopf mit der CD oder dem ISO arbeiten.


Vorbereitung


Speziell auf dem Efika empfiehlt sich das komplette MorphOS ISO zu booten, weil es deutlich schneller startet als das Installations-ISO, wenn man es auf der Platte liegen hat und es bereits alle Dateien zur Wiederherstellung enthält. Auch auf dem Efika kann das normale MorphOS ISO zum Booten genutzt werden. Laden sie einfach die CD für Mac/Pegasos herunter. Speichern sie die Datei ins Hauptverzeichnis ihrer Systempartition und nennen sie es der Einfachheit halber: "boot.iso". Wenn sie das MorphOS Keyfile einsetzen wollen, dann öffnen sie eine Shell und geben die folgende Zeile ein: "RegisterISO SYS:boot.iso". Den Link zu den Dateien finden sie am Ende des Artikels.

Jetzt benötigen sie noch den Devicenamen ihrer Systempartition, damit MorphOS die "boot.ISO" Datei beim Start auch finden kann. Meistens ist das DH0 oder DH1. Wenn sie unsicher sind, dann starten sie HDConfig aus der Tools Schublade. Starten sie das Efika oder den Pegasos neu, brechen sie mit ESC ab und geben sie in der OpenFirmware "boot boot.img bi dh0:boot.iso" ein.

Wenn das System startet, können sie die Sprachauswahl durchführen, die Installation durch das Schließen des Fensters einfach abbrechen und die Live CD nutzen, um ihr System zu reparieren falls nötig. Nach diesem Test können sie normal starten und mit dem optimieren beginnen.


Weniger ist mehr


Es klingt vielleicht seltsam, aber bereits vor der Installation von MorphOS kann man bereits Speicher sparen. Gerade bei der Benutzung kleinerer Platten oder gar SSDs und CompactFlash Karten sollte man sich überlegen ob man mehr als eine Partition will und welches Dateisystem man braucht. Jede gemountete Partition benötigt Speicher für die Puffer.

Das Reduzieren der Puffer ist speziell bei langsamen Platten keine echte Option. Wenn man das ICE-FS nutzen kann, dann sollte man das auch tun. Es wurde auf geringen Speicherverbrauch sowohl auf dem Medium, als auch im Umgang mit den Puffern optimiert. Das Problem ist allerdings, dass man hier eine zweite Partition mit SFS benötigt, damit die OpenFirmware überhaupt das Boot.img laden kann. Auf Mac Systemen hat man zusätzlich das Problem, dass diese Systeme keinen RDB erlauben und da das ICE-FS nicht im boot.img liegt, kann davon nicht gestartet werden.

Speziell Efikas aber auch Pegasos2 mit entsprechender OpenFirmware können von einer einzigen SFS-Partition starten. OS und boot.img liegen auf dieser Partition. Die Puffer, die man in der HDConfig einstellen kann bezeichnen die Anzahl der im RAM gespeicherten Blöcke. Wenn man also eine Blockgröße von 4096 eingestellt hat, dann bedeutet das SFS belegt für diese Partition dauerhaft 2 MB Speicher. Bei drei oder mehr Partitionen sind so schnell 5% und mehr Systemspeicher verbraucht. Wenn man unbedingt Daten, Applikationen und System trennen will, dann kann man das auch mit einer Schublade machen. Einfach in "SYS:" das Verzeichnis "Daten" anlegen, das Piktogramm zu einem Festplattensymbol machen und auf den Desktop ziehen. Sieht fast genauso aus, verbraucht aber deutlich weniger Speicher. Das Laufwerk kann man sich mit einem Assign auch reservieren. Dazu einfach in die user-startup "assign <>NIL: Daten: SYS:Daten" eintragen und schon erscheint in jedem Dateirequester auch "Daten:"

Auf diesem Weg kann man auch einfach eine bestehende Installation aus mehreren Partition auf ein neues System mit nur einer Partition kopieren. Einfach eine Schublade mit dem altem Partitionsnamen erstellen, Dateien umkopieren und die entsprechende Zuweisung in die user-startup eintragen.

Weniger Partitionen sparen nicht nur Speicher, sondern auch Plattenkapazität und das nicht nur unter MorphOS. Wer seine Platte mit MacOSX partitioniert hat, hat mit jeder Partition bis zu 1 GB Plattenplatz verbraten.


Auf die Plätze! Fertig! Verschwendet!


Eine weitere Möglichkeit den Speicherverbrauch zu reduzieren ist den Pufferspeicher des RAM-Debugs zu verkleinern. Abschalten macht hier keinen Sinn, da im Falle eines Fehlers das System für Sekunden einfriert, weil über die serielle Schnittstelle ausgegeben wird. Dazu editiert man den Aufruf des Boot.img in der OpenFirmware. Zusätzlich zu RD für RAM-Debug gibt man zusätzlich "RDS 1" an. Also z.B. "boot.img rd rds 1". Der Wert 0 würde zwar in der Theorie mehr Sinn machen, aber leider scheint das Abschalten des Ram-Debugs nicht 100%ig zu funktionieren und es gibt zufällig auftretende Probleme. Also besser nur den Wert "1" nutzen. Auf Mac basierten Geräten findet man die Einstellungen in einer Textdatei auf der kleinen Boot Partition. Hier einfach entsprechend abändern und dann nicht vergessen die Partition nach der Änderung wieder zu segnen wie es im Readme beschrieben ist. Wenn auf Mac ein Boot-Skript mit Menü verwendet wird, dann reicht es einfach diese Menüauswahldatei zu modifizieren.


Weniger bunt ist auch bunt


Nicht nur auf dem Efika kann das Speichersparen sinnvoll sein. Einige der hier angewendeten Tipps erhöhen auch die Startgeschwindigkeit und reduzieren auch den Verbrauch von Grafikspeicher, was besonders auf Mac minis oder eMacs mit 32 MB Grafikspeicher zum Tragen kommt, da man hier die Grafikkarte nicht einfach wechseln kann.

Generell empfiehlt es sich die Farbtiefe des Bildschirms von 32 auf 16 Bit zu reduzieren und jegliche Art von Speicher zu sparen. Selbst bei einer Auflösung von 1024x768 bringt das schon mehr als 1.5 MB pro Bildschirm.

Wer mit mehreren Bildschirmen arbeitet und diese Arbeitsweise nicht ändern will, der sollte sich seine Einstellungen ansehen. Ein Texteditor macht auf einem 32 Bit Bildschirm wenig Sinn. Für das Surfen im Internet reichen 16 Bit meistens auch aus.

Ambient braucht natürlich auch nicht zwingend 32 Bit. Der Grund warum es oft in 16 Bit so übel aussieht, ist das meistens gerenderte Hintergrundbilder verwendet werden, die Farbverläufe über das komplette Farbspektrum einer Farbe zeigen. Bei 16 Bit kann man hier dann schon deutlich Stufen erkennen. Bei Piktogrammen und sonstigem Inhalt fällt das nicht weiter auf. Eine 16 Bit Auflösung in Verbindung mit einem neuen Hintergrundbild kann also auch eine Lösung sein.

Braucht man wirklich ein Hintergrundbild? Es liegt zwar nur im Hintergrund, benötigt aber bereits bei 1024x768 knapp 4 Megabyte Speicher. Eine schicke Farbe verbraucht keinen Speicher und mit transparenten Objekten wie Menüs und Panels stört sie weniger. Alternativ kann man vielleicht das Bild in ein GIF umrechnen lassen. Dadurch werden die Farben des Bildes auf 256 Farben reduziert und somit auch der Speicherverbrauch des Bildes gegenüber jpg um 1/4 reduziert. Nicht jedes Bild sieht danach noch schön aus, aber es ist eine Möglichkeit für einen Kompromiss.

Liegen viele Piktogramme auf dem Desktop, benötigen diese natürlich auch Speicher. Neben dem radikalen Entfernen kann man die Programme ja vielleicht sinnvoller über bereits laufende Programme starten. So bietet das Ambientmenü die Möglichkeit eigene Menüpunkte anzuhängen.

Die Möglichkeiten der "Enhanced Display Engine" sind schön anzusehen, kosten aber auch Speicher. Double and Tripple-Puffer benötigen ihren Platz und das nicht nur im Grafikspeicher. Man sollte sich also überlegen, ob man diese Erweiterungen nutzen will und ob man sie wirklich braucht.

Schnell vergessen wird die Möglichkeit den Skin und somit das Aussehen der Fenster zu verändern. Buntes Fensterdesign benötigt auch viel System- und Grafikspeicher und verlangsamt das System leicht. Farbverläufe und verschnörkelte Fenstertitel sehen nicht nur ausladender aus, sie sind es auch, wenn man sich den Speicherverbrauch ansieht. Einfacher ist hier eben doch mehr.


Misthaufen des Systems


Der Ordner ENVARC: ("sys:prefs/env-archive") ist in zweierlei Hinsicht ein Verschwender. Dort sammeln sich meist Einstellungen von Programmen, die man nur einmal getestet oder vor Jahren gelöscht hat. Außerdem wird der Ordner bei jedem Start in die RAM-Disk kopiert. Es empfiehlt sich also den Ordner von Zeit zu Zeit genau anzusehen und von überflüssigen Daten zu befreien. Bei den meisten Dateien kann man schon am Namen erkennen, welches Programm sie erzeugt hat.


Eine Klasse für sich


Ein weiterer Speicherfresser sind die USB Klassen. Der Poseidon Stack läd alle USB Klassen beim Systemsstart ein, damit es nach dem Einstecken eines USB Gerätes sofort loslegen kann. Das macht allerdings nur Sinn, wenn man diese Geräte überhaupt besitzt. Kurzum, wer nur USB Sticks oder Festplatten hat, kann einige hundert Kilobyte sparen und den Systemstart beschleunigen, wenn er die anderen Klassen entfernt.

USB-Geräte wie Tastatur, Maus, Hubs und Massenspeicher kann man ignorieren. Diese Klassen kann man nicht löschen, weil sie im boot.img liegen. Damit die Klassen nicht dauerhaft verloren gehen, schlage ich vor in der Schublade "MorphOS/Storage/" den Ordner "USBClasses" anzulegen und mit Ambient alle Klassen aus "MorphOS/Classes/USB/" dorthin zu verschieben. Nach einem Neustart prüfen sie ob alle Geräte noch funktionieren. Wenn die Kamera nicht mehr geht, brauchen sie die "ptp.class" und für den USB Drucker die "usbprinter.class". Also gezielt diese Dateien wieder zurück schieben. Die anderen Treiber sind exotischer und wer die passenden Geräte nutzt, weiss auch welche Klasse die nutzen.


Der Geräteschuppen


Es werden Standardmäßig diverse Geräte gemountet, die man meist nicht oder nicht immer gebraucht. "SER:", "PAR:", "PRT:", "PS:" und "USBRAW:" sind nur einige. Die Mount-Dateien findet man in "SYS:MorphOS/Devs/DosDrivers/". Zum Deaktivieren einfach nach "SYS:MorphOS/Storage/DosDrivers/" verschieben. Sollte ein Programm diese Geräte benötigen, dann erscheint in der Regel eine Aufforderung. Dort kann man "Anmelden" auswählen und es wird nur bis zum nächsten Neustart aktiviert.


Zuweisung du bist Unsinnig!


Ohne Frage ein sehr praktischer Vorzug des AmigaOS ist die ebenso simple wie einfache Zuweisung von Verzeichnissen (ASSIGN). Leider wurde dieses Feature in der Vergangenheit oft unsinnig eingesetzt. Meistens finden sich Assigns wie "Programmname4:" in der user-startup, die nur einem Zweck dienen, den Systemstart zu verlangsamen und Speicher zu verbrauchen. Ohne diese Zeilen läuft das Programm aber auch nicht. Sinnvoll sind diese Zuweisungen in den wenigsten Fällen. Doch was kann man machen?

Ganz einfach. Die Zeilen werden zusammen mit dem Programmaufruf in ein Skript verschoben, das den normalen Programmstart ersetzt.

Wenn ein Programm auf eine Zuweisung besteht und nicht bei jedem Systemstart aufgerufen wird, dann kann man sich meist ziemlich leicht behelfen. Alles was man dazu benötigt liefert MorphOS gleich mit. Zuerst läd man die Datei "s:user-startup" in den Editor. Wenn das Programm den Installer verwendet hat, dann finden sich Markierungen vor (";BEGIN") und hinter (";END") dem entsprechenden Zuweisungsblock. Diesen Block einschließlich der Markierungen schneiden sie mit dem Editor aus. Die Datei ohne diesen Block speichern sie einfach wieder. Nun öffnen sie ein neues Textfenster und fügen den Text wieder ein. Hinten fügen sie den Programmaufruf an. Also z.B. "sys:Applications/Programmname4/Programmname4"

Diese kleine Textdatei speichern sie einfach wieder ab und zwar in das Verzeichnis mit dem Programm, dass diese Datei startet. Hier also "sys:Applications/Programmname4/". Nennen sie die Datei einfach "Programmname4-startup", damit sie später noch wissen wozu diese Datei war.

Jetzt gehen sie mit Ambient in das Programmverzeichnis und wählen mit der rechten Maustaste über der neuen Datei "Informationen ..." aus. Drei Dinge müssen sie hier jetzt machen. Den Haken für "Skript" rechts oben im Fenster setzen, den Typ auf "Projekt" umstellen und ein Bild in das kleine Symbolbild ziehen, damit auch ein Piktogramm angelegt wird. Am Einfachsten nehmen sie einfach das Piktogramm von "Programmname4" selbst. Nach dem Speichern können sie das neue Piktogramm doppelklicken und das Programm sollte wie gewohnt starten. Zur Sicherheit sollten sie das System vorher neu starten, da die Zuweisungen ja bereits beim letzten Systemstart vorgenommen wurden und sich noch im Speicher befanden. Von nun an werden die Zuweisungen nur noch ausgeführt, wenn sie das Programm auch starten wollen. Das spart Speicher, beschleunigt den Systemstart ein wenig und macht die Dateirequester übersichtlicher, da nicht Hunderte von Zuweisungen den Blick auf das wesentliche Versperren. In Panels oder Menüs können sie dieses neue Symbol auch genauso benutzen, als wäre es die Programmdatei selbst.


Schnell oder nicht ganz so schnell


Der JIT Compiler von MorphOS ist sehr schnell und effektiv. Verbraucht aber auch etwas über 2 MB an Speicher. Wer also keine oder wenig 68K Software benutzt, sollte darüber nachdenken den JIT Compiler einfach auszuschalten. Ein einfaches "Setenv SAVE NOTRANCE 1" in der Shell schaltet den JIT beim nächsten Neustart aus. Sollte die reduzierte Arbeitsgeschwindigkeit dennoch Probleme bereiten kann man den JIT mit dem folgenden Kommando in der Shell wieder dauerhaft aktivieren: "delete envarc:NOTRANCE". Alternativ kann man den JIT auch zur Laufzeit, also bei Bedarf, wieder einschalten. Dazu ruft man einfach "Run <>NIL: DETACH QUIET Trance" in der Shell auf. Diese Zeile kann man sich wie oben beschrieben auch wieder als Piktogramm oder Menüeintrag ablegen und nur bei Bedarf aktivieren.


Falsch verbunden


Wer auf dem Rechner keinen Server laufen hat, braucht auch kein inetd. Abschalten kann man das in der Datei: SYS:MorphOS/s/network-startup". Dort kann man die folgende Zeile mit einem ";" einfach deaktivieren: "run DETACH MOSSYS:Net/INetD"

Wenn man statt DHCP in den Netzwerkeinstellungen eine feste IP einstellt, spart man ebenfalls zusätzlich Speicher.


Nachschlag


Mit den hier angegebenen Tricks kann man den Speicherverbrauch von MorphOS auf unter 15 MB drücken.

Danke an Ingo Schmitz für die Unterstützung und die Ideen zur weiteren Optimierung und Verfeinerung der Tipps.


Links zum Thema


RegisterISO finden sie hier: http://www.geit.de/deu_additional.html
Die aktuelle MorphOS CD finden sie hier: http://www.morphos.de/downloads.html