MRW
http://piratenpartei.ch

Piratenpartei Zürich
PC 85-112704-0

Der Politnetz Auftritt von Marc Wäckerlin Im Politnetz unterstützen

Vorteile von Linux

Aufbau eines Linuxsystems

Der Kernel

Ein Betriebssystem besteht aus einem Kern, Kernel genannt, und aus darauf aufsetzenden Anwendungen. Diese verschiedenen Komponenten sind bei Linux modular aufgebaut. Der Kernel setzt zwar nicht auf einer Mikrokernelarchitektur auf, ist aber mittlerweile dennoch unterteilt worden in einen festen Kern und ladbare Module. Es steht dem Anwender aber frei, die Module fest in den Kern einzukompilieren, um z.B. in einem eingebetteten System einen optimal auf die eingesetzten Komponenten abgestimmten Kernel zu erzeugen.

Stabilität

Die Prozesse im Kernel laufen unter hohen Privilegien, welche entsprechend im Prozessor abgebildet werden. Aus Sicherheitsgründen ist daher immer das Ziel, so viel wie möglich aus dem Kernel in den Benutzerkontext zu verlagern. Dieses Prinzip wird weitgehend umgesetzt, was die Stabilität enorm erhöht. Der unter dem «Windows»-Betriebssystem der Firma Microsoft berüchtigte «Bluescreen» genannte Totalabsturz entspricht unter Linux der «Kernel Panic». Ein solcher Totalabsturz kommt unter Linux kaum je vor, ich selbst arbeite täglich mit Linux und habe seit Jahren keinen mehr gesehen. Wenn er vorkommt, so ist mit an Sicherheit grenzender Wahrscheinlichkeit der Computer defekt.

Unter Linux kann ausserhalb der Kernels jede Anwendung abstürzen, sie reisst dabei nur sich selbst und von ihr direkt abhängige andere Anwendungen in den Tod. Sie kann daher ohne Neustart des Betriebssystems wieder gestartet werden, und alles läuft wieder stabil weiter.

Dadurch ist es auch möglich, das System zu aktualisieren, ohne dass neu gebootet werden muss. Ausser wenn der Kernel selbst aufdatiert wird, genügt es, die betroffenen Anwendungen neu zu starten. Insbesondere ist pro Systemupdate nicht mehr als ein Reboot notwendig.

Modularität

In Unix, und damit auch unter Linux, sind alle Komponenten eigenständig und modular entworfen. Jede Komponente kann gegen eine vergleichbare ausgetauscht werden, und es müssen nur die Komponenten installiert werden, die man auch benötigt. Um die Abhängigkeit zwischen den Komponenten kümmert sich ein vom Distributor geliefertes Paketierungssystem, welches sich um eine saubere Installation, restlose Deinstallation, sowie um die Auflösung von Abhängigkeiten kümmert. SuSE, RedHat, Mandriva, Connectiva und viele mehr verwenden den RedHat Package Manager RPM. Debian, Ubuntu, Knoppix und weitere Debianderivate verwenden das DEB Paketsystem.

Die Idee hinter Linux

Linux entstand als Übungsstück eines finnischen Studenten namens Linus Torvalds, der ein PC-UNIX verimisste. Es sollte nichts Grosses werden. Zufällig interessierten sich noch andere Personen im jungen Internet für sein Projekt, sodass es doch zu etwas Grossem wurde. Linux konnte nur deshalb gross werden, weil viele Entwickler freiwillig und ohne direkte Gegenleistung sehr viel Arbeit hineingesteckt haben. Die Idee dahinter ist, ich mache etwas, was ich selbst brauchen kann, benutze dafür zu Teilen die Arbeit anderer, und stelle mein Werk als Gegenleistung wieder der Allgemeinheit zur Verfügung. So entsteht Grosses aus vielen kleinen Beiträgen, durch ein gegenseitiges Geben und Nehmen. Dies erklärt auch, weshalb Linux modular aufgebaut und mit klaren, gut dokumentierten Schnittstellen ausgerüstet ist, denn nur so ist es möglich, dass jeder seinen Beitrag leisten kann. Davon profitieren letzlich alle, und es entsteht wie von selbst eine hohe Qualität der Software, die es erlaubt, Beiträge von schlechterer Qualität mit wenig Aufwand zu ersetzen.

Mit «Linux» ist eigentlich nur der Kernel gemeint, doch oft bringt man damit das ganze System mit den GNU-UNIX-Werkzeugen, den Diensten und den Anwendungen in Verbindung. Auch hier treffen wir auf dasselbe Fänomen der Internetgesellschaft: Viele Entwickler, die Lösungen für ihre Probleme geschrieben haben, stellen diese Lösungen der Allgemeinheit zur Verfügung und profitieren ihrerseit von Verbesserungen Dritter.

Ein ganz gewaltiger Vorteil dieses System ist, dass das ganze System offen ist. Jeder kann mit den entsprechenden Kenntnissen an jedem Punkt des Systems eingreifen und seine Verbesserungen hinzufügen. Dies macht Linux so enorm flexibel. Im Gegensatz zu anderen Betriebssystemen, wo jedes Stück Code, jede Schnittstelle, sogar das Format der Daten des Anwenders als Firmengeheimnis gehütet wird, und so der Anwender der Kontrolle über sein eigenes System beraubt wird, bietet Linux die unbegrenzte Freiheit. Dies erlaubt es auch, mit vertretbarem Aufwand eigene Administrationslösungen in grossen Firmennetzen zu entwerfen. Wenn eine Firma dies nicht selbst lösen kann, so kann sie von Firmen wie IBM oder SuSE (Novell) Unterstützung dafür einkaufen. Dadurch kann man ein ideal auf den Kunden und seine Bedürftnisse abgestimmtes Gesammtsystem inklusive Sicherheitsrichtlinien und Softwareverteilung erstellen, was mit herkömlichen Betriebssystemen ohne grosse Basteleien nicht möglich wäre, und ganz sicher nicht so sauber gelöst werden könnte.

Die Distribution

Anders als bei anderen Betriebssystemen ist die Arbeit unter Linux aufgeteilt in die Entwickler, welche den Code breitstellen, und die Distributoren, welche den Code kompilieren, Pakete schnüren und ein fertiges Produkt aus einem gut abgestimmten System mit passender Software erstellen. So kommt eine Linuxdistribution problemlos auf einige tausend Pakete. Auf anderen Betriebssystemen muss sich der Anwender seine Programme mühsam von vielen verschiedenen Herstellern zusammensuchen, auf einem Linux ist es eher die Ausnahme, dass ein Programm von einer anderen Quelle als dem Distributor besorgt werden muss. Nebst den Distributoren gibt es noch viele freiwillige Helfer, welche Pakete von Programmen schnüren, die nicht vom Distributor berücksichtigt wurden, oder die neuere Versionen anbieten, bevor der Distributor diese verpackt. So kommt es nur sehr selten vor, dass ein Anwender Programme installieren muss, die nicht im Paketformat seiner Distribution vorliegen. Solche Pakete werden in der Regel in einem separaten Pfad installiert, unter /usr/local statt /usr.

Skalierbarkeit

Ein Linuxsystem ist modular aufgebaut und skaliert daher hervorragend. Jede Komponente kann wahlweise weggelassen oder durch eine andere ersetzt werden. Egal, ob auf einer Armbanduhr oder einem Cluster aus der Reihe der 500 schnellsten Computer der Welt, es handelt sich immer um dasselbe Linuxsystem, es werden nur unterschiedlich viele Komponenten installiert. Prinzipiell aber laufen genau die gleichen Anwendungen auf einer Armbanduhr, wie auf einem Cluster, sofern der Speicherplatz dazu ausreicht.

Dieses Verhalten ist vollkommen unterschiedlich zu «Windows»-Betriebssystem der Firma Microsoft. Dort handelt es sich bei der CE-Version für eingebettete Geräte um ein volkommen anderes Produkt, als beim Desktopbetriebssystem, was enorme Einschränkungen für den Entwickler bedeutet, der unter WindowsCE nicht einmal ein halbwegs brauchbares C++ nach dem ISO-Standard von 1998 verwenden kann, insbesondere fehlt die Standard Template Library STL. Desktopprogramme sind daher nicht ohne grossen Aufwand auf ein eingebettetes Gerät portierbar.

Systemverwaltung

Tendenziell werden unter UNIX Textformate gegenüber binären Formaten bevorzugt. Neuerdings verwendet man oft ein XML-Format für die Daten und speichert dieses komprimiert ab. Auch Konfigurationen werden textuell gespeichert. Systemweite Konfigurationen landen unter /etc. Der Benutzer kann diese für sich oft anpassen. Die Anpassungen landen in seinem Heimatverzeichnis /home/benutzername. Dadurch, dass diese Dateien textuell vorliegen, hat man die Wahl, ob man sie mit einer grafischen Oberfläche bearbeiten will, oder im Texteditor, — oder von einem Skript aus, was wiederum unendliche Möglichkeiten eröffnet.

Die Installation und Aktualisierung von Programmen und des Systems läuft alles mit dem Paketsystem der Distribution. Es gibt keine Probleme mit zueinander inkompatiblen Bibliotheken, denn der Distributor stimmt diese aufeinander ab, und das Paketsystem kennt die Abhängigkeiten. Es erlaubt auch nebst der einfachen Installation von Paketen ihre saubere Entfernung, und die problemlose Aktualisierung. Der Administrator kann alle seine Kunden auf dem neuesten Softwarestand halten, ohne dass diese in ihrer Arbeit beeinträchtigt, oder das auch nur bemerken würden. Kein erzwungenes Neustarten, kein Unterbruch der Arbeit ist dazu notwendig.

Linux als Server

Der Serverbereich ist das Kerngebiet von UNIX. Hier gibt es keine vernünftige Alternative. Linux als vollwertiges UNIX kann sich problemlos gegen Grössen wie Solaris behaupten. Das «Windows»-betriebssystem ist in diesem Bereich auch in seiner «Server»-Version vollkommen ungeeignet. Es wurde für den Schreibtisch des unerfahrenen Gelegenheitsnutzers entworfen, und diese Erbschaft lastet auch auf der «Server»-Version. So ist nicht einmal eine Installation ohne grafische Oberfläche möglich. Für Linux und jedes andere UNIX ist das aufgrund des modularen Aufbaus kein Problem.

Kommandozeile

Gerade bei Serveranwendungen benötigt man keine grafische Benutzerschnittstelle, sondern eine mächtige Kommandozeilenumgebung, unter der man einfach Skripte entwickeln und laufen lassen kann. Hier bietet Linux die volle Palette: Bash, Perl, awk, sed, \ldots. Es gibt unter Unix nichts, was man nicht auch komfortabel auf der Kommandozeile erledigen könnte — mit etwas Erfahrung sogar effizienter als über eine grafische Benutzeroberfläche. Ein erfahrener UNIX-Administrator ist ein regelrechter Zauberer der Kommandozeile, und er kann sein Wissen unter jedem UNIX anwenden.

Fernwartung, Fernsteuerung

Die Fernwartung und Fernsteuerung ist unter «Windows» nicht ausgereift, im Gegensatz zu UNIX, wo man per Kommandozeile über SSH1) zugreifen und auch einzelne grafische Anwendungen auf einen anderen Rechner umleiten kann. Die grafische Oberfläche von Unix, X11, ist netzwerktransparent aufgebaut, das heisst, die Anwendung kann an einem beliebigen Computer laufen, während die Darstellung auf einem beliebigen anderen Computer stattfindet. Man kann mit X11 die Fenster einzelner Anwendungen, oder gleich einen ganzen Schreibtisch auf einen anderen Computer umleiten. Anstelle von X11 kann man wahlweise auch eine Anwendung wie VNC verwenden, um den Schreibtisch umzuleiten. Viel schneller und oft einfacher geht es, wenn man sich zur Wartung entfernter Systeme gleich der überaus mächtigen Kommandozeile bedient.

Anwendungen

Egal ob Webserver, Mailserver, Proxy, Dateiserver, LDAP-Server, SQL-Server, \ldots, Linux liefert alle notwendigen Serveranwendungen gleich mit, nicht als separat teuer zu erwerbendes Paket, sondern als Beilage auf der DVD der Distribution. Diese OpenSource-Gratisanwendungen sind von erstklassiger Qualität, und oft die besten ihrer Klasse, wie z.B. der Webserver Apache. Alles, was man braucht, ist bei Linux dabei. Man kann dies zu Recht auch umdrehen: Alles was bei Linux nicht dabei ist, braucht man auch nicht. Im Serverbereich gilt dies garantiert.

Linux als Desktop

Immer mehr Firmen und öffentliche Einrichtungen steigen erfolgreich auf Linux um. München und Wien sind Beispiele für grosse Kommunen, die umgestiegen sind. Ich selbst verwende privat ausschliesslich Linux mit KDE seit 1998 und in der Firma seit 2005, seit wir von Solaris mit KDE auf Linux mit KDE umgestiegen sind2).

Anpassungsfähigkeit und Komfort

Unter Linux passt sich die Benutzung dem Benutzer an, nicht umgekehrt. Die Schreibtischumgebungen sind voller nützlicher Details und Einstellungsmöglichkeiten, die man, wenn man sie einmal kennengelernt hat, nie mehr missen möchte. Dies begint damit, dass man dank dem modularen Aufbau seine Schreibtischumgebung aus vielen Angeboten frei wählen kann. Die bekanntesten sind KDE und GNOME, von denen ich persönlich aus vielen kleinen Gründen KDE eindeutig vorziehe. Aber es gibt noch weitere, wie XFCE, Blackbox, Enlightenment, \ldots. Auf der Schreibtischumgebung setzt eine Fensterverwaltung auf, die wiederum unabhängig davon gewählt werden kann. Wobei viele Fensterverwaltungen eigene Schreibtischelemente mitbringen, wie Werkzeug- und Fensterbalken, was die genaue Abgrenzung etwas erschwert. Jedenfalls hat der einzelne Anwender hier unzählige Wahl und Kombinationsmöglichkeiten. Die Schreibtischprogramme ihrerseits bringen verscheidene Darstellungsstile und eine sehr weitgehende Konfigurierbarkeit mit sich. Der Benutzer kann z.B. wählen, ob Fenster aktiv werden, wenn er bereits die Maus darauf bewegt, wie dies unter UNIX üblich ist, oder erst wenn er in ein Fenster hineinklickt. Dann kann er wiederum wählen, ob ein Klick das Fenster nach vorne bringt, oder ob das Fenster im Hintergrung aktiviert wird. Dies ermöglicht es z.B. in einem Fenster im Vordergrund etwas zu lesen, oder zu markieren, um es im Fenster im Hintergrund einzutragen, ohne dass man den Blick auf die Quelle verliert. Dem «Windows»-Betriebssystem fehlt ein solcher Komfort, was die Benutzbarkeit und die Produktivität massiv einschränkt.

Ebenfalls möglich ist die Vergrösserung eines Fensters auf den ganzen Bildschirm durch klick mit der linken Maustaste auf den Vergrösserungsknopf. Dies ist bei allen mir bekannten Betriebssystemen möglich. Nicht überall gibt es aber die weiteren Komfortfunkionen, dass die Fenster durch Klick auf die mittlere Maustaste nur in der Höhe, und duch die rechte Maustaste nur in der Breite maximiert werden. Beim KDE-Browser Konqueror ist es möglich, neue Seiten in Tabs zu öffnen, oder eine bestehende Anzeige horizontal oder vertikal zu splitten. Einen solchen Komfort habe ich unter einem «Windows»-Betriebssystem noch nie gesehen. Selbstverständlich kann der Konqueror alles in derselben Anwendung anzeigen: Internetseiten, Bildgalerien, das Dateisystem mit Symbolen, Listen oder Bäumen, Subversion- oder CVS-Repositories, usw.. Die folgende Abbildung zeigt ein extremes Beispiel dieser Flexibilität.

Konqueror extrem unterteilt: Links drei verschiedene Ordeneransichten, in der Mitte oben eine HTML-Seite, unten ein Bilderalbum und rechts ein Subversion-Repository

Schiebt man die Fenster auf dem Bildschirm herum, so rasten sie auf den Rand anderer Fenster, sowie am Bildschrimrand ein, was eine passende Anordnung enorm erleichtert. Zum Standard gehört es, dass es mehrere Schreibtische gibt, auf denen man unterschiedliche Dokumente und Arbeiten geöffnet haben kann und zwischen denen man beliebig hin- und herwechseln kann, ohne jedesmal alle offenen Fenster schliessen zu müssen. Ich habe mir die Funktionen «nächster-Schreibtisch» und «vorhergehender-Schreibtisch» auf die Tasten Alt+Pfeil-nach-unten, respektive Alt+Pfeil-nach-oben gelegt. Drücke ich dazu noch die Ctrl-Taste, so wird das aktive Fenster gleich mitgenommen. Die Taste F12 schiebt bei mir das Fenster aus dem Vordergrund in den Hintergrund, beziehungsweise sie holt ein aktives aber nicht voll sichtbares Fenster nach oben. So kann sich jeder seine Oberfläche einrichten, dass er bequemes Arbeiten und maximale Produktivität erreichen kann. Für «Windows»-Geschädigte gibt es auch die Möglichkeit, Verhalten und Aussehen ganz im «Redmond»-Stil zu wählen. Die Distribution Linspire, ehemals Lindows, treibt das auf die Spitze, indem «Windows» bis ins Detail nachempfunden wird, und mit der Emulation Wine «Windows»-Programme wie Microsoft-Office unter Linux benutzt werden können (wofür eigentlich die Motivation fehlt, denn OpenOffice ist in jeder Hinsicht besser, und dennoch ist LaTeX beiden überlegen).

Öffnet ein neues Fenster, wird es automatisch «intelligent» platziert, das heisst es kommt an die Stelle des Bildschirms zu liegen, wo noch am meisten Platz frei ist. Dies gehört nebst vielen anderen Details zu dem, was das Leben erleichtert und man nie mehr missen möchte.

Anwendungen

Linux liefert auf dem Desktop alles, was man braucht. Oft hört man das Argument, dass das «Windows»-Betriebssystem mehr Anwendungen haben soll. Das stimmt so nicht. Für jede pouläre «Windows»-Anwendung gibt es mindestens eine Linux-Alternative. Der Ansatz bei Linux ist zwar oft ein anderer, aber gerade deshalb löst Linux das Problem meist besser. So setzen viele «Windows»-Anwendungen auf proprietäre, geheime Datenformate, während Linux auf offene Formate und Standards setzt. So ist unter Windows z.B. das Dateiformat des beliebten Zeichnungsprogramms Visio geheim, während die Linux-Alternative Dia in komprimiertem SVG3) setzt, und Visio-Dateien nur deshalb nicht importieren kann, weil Microsoft das Dateiformat geheim hält. So wird der Kunde zu seinem Nachteil an einen Hersteller und eine Anwendung gebunden, und es wird ihm die Freiheit genommen, über seine eigenen, mühsam erstellten Daten, frei zu verfügen.

Linux eingebettet

Durch seine grosse Skalierbarkeit kann Linux sehr gut auf beliebig schwacher Hardware installiert werden. Dabei hat man grundsätzlich die ganze Mächtigkeit von Linux zur Verfügung. Man kann sich im Rahmen der Möglichkeit der Hardware sein System beliebig zusammensetzen. Sehr oft wird dazu eine abgespeckte libc Systembibliothek eingesetzt, zusammen mit einem in seinen Optionen reduzierten, platzsparenden Set an UNIX-Werkzeugen und für die grafische Oberfläche einer reduzierten und auf kleine Bildschirme optimierten Version von Qt. Zu Hause habe ich auf einem kleinen Netzwerk-Speicher-Gerät von Linksys (nslu2) mit einem ARM 133MHz Prozessor und 32MB RAM eine altrernative Linux-Firmware aufgespielt, auf der neben einem Dateiserver nun ein DHCP-Server, ein Apache Webserver und ein Mailserver laufen. Aus Speichergründen musste ich auf den Druckeranschluss und den Scanner an diesem Gerät verzichten. Es funktionierte zwar, aber mit einigen Minuten Wartezeit für einen Scan oder einen Druck eindeutig zu langsam für einen ungeduldigen Menschen wie mich. Es zeigt sich aber auch hier: Die Limite ist nur die Hardware, das Betriebssystem ist unlimitiert. Kein Wunder also setzt sich Linux auch in eingebetteten Geräten still und heimlich immer mehr durch.

Warum Linux einsetzen?

Die Zeitschrift LinuxMagazin hat in der Ausgabe 10/06 eine Umfrage veröffentlicht. Gefragt wurden die Leser, weshalb sie Linux einsetzen, Mehrfachnennungen waren möglich. Es ist typisch für Linux, dass Stabilität und Sicherheit an erster Stelle genannt werden. Sehr interessant, aber durchaus nachvollziehbar, dass für 68% die grosse Softwareauswahl den Ausschlag gibt. Es folgen die Resultate:

  • Stabilität und Sicherheit: 88%
  • Keine Lizenzkosten: 84%
  • Grosse Softwareauswahl: 69%
  • Politische Überzeugung: 62%
  • Keine Viren und Würmer: 61%
  • Offener Quellcode: 56%
  • User helfen Usern: 53%
  • Gewohnheit: 21%
  • Breite Hardware-Unterstützung: 12%
  • Kleinstes Übel: 1%

Fazit

Auf die Frage, welches Betriebssystem eingesetzt werden soll, um optimal und produktiv arbeiten zu können, gibt es aus allen Gründen nur eine Antwort: Linux.

Linux überzeugt vom Konzept her, es überzeugt vom Gedanken der maximalen Freiheit, es bietet Sicherheit und Komfort. Die Auswahl an Anwendungen ist für jeden Zweck gross genug, und wenn mal eine Anwendung tatsächlich fehlen sollte, kann man die Funktionalität meist durch Kombination bestehender Module erreichen. Die Gemeinschaft nimmt neue Lösungen gern auf, und es ist auch eine faire Form, seine Dankbarkeit zu zeigen, indem man eigene Lösungen wiederum an die Gemeinschaft zurückgibt. Dies ist eine faire Gegenleistung dafür, dass man sein Betriebssystem mit allen Anwendungen umsonst erhält, zumal man dadurch auch wieder in den Genuss von Verbesserungen kommen kann, die zurückfliessen.

Alles in allem ist Linux ausgereift und stabil und bietet für alle, vom Anfänger bis zum Grosskonzern, vom Cluster bis zum eingebetteten Gerät, eine optimale Lösung. Der einzige Grund, Linux nicht einzusetzen, ist Unwissenheit und die Angst vor zu grosser Produktivität.

Referenzen

1) SSH: Secure Shell, eine verschlüsselte Verbindung auf Kommandozeilenebene
2) Aufgrund einer nicht nachvollziehbaren Firmenpolitk musste Linux in eine VmWare-Umgebung auf einem verkrüppelten Windowssystem installiert werden. Dies läuft jedoch problemlos und bindet sich ohne nennenswerte Einschränkungen in das Firmennetzwerk ein. Es läuft im Gegenteil selbst in einer VmWare-Umgebung stabiler, als die Windowssysteme meiner Kollegen. Wenn wiedereinmal ein Windowsupdate ansteht, bin ich oft der einzige, der weiterarbeiten kann.
3) SVG: Scalable Vector Grafic. Ein standardisiertes XML-Format.