Betriebssystem Linux im Büro

Aus welchen Gründen verwende ich Linux als primäres Betriebssystem in meinem Büro

  • Effiziente Mensch-Maschine-InteraktionLinux fördert und erleichtert Automatisierung — die wichtigste Stärke von Computern.  Während die meisten Menschen — sogar auch viele in der Informatik­branche Berufstätige — heutzutage ihre Computer primär mit Zeige­geräten (Maus, finger­bedienbarer Bildschirm …) bedienen und auf diese Weise überspitzt gesagt gegen sich arbeiten lassen (weil dabei keine Automatisierung möglich ist), bediene ich Computer primär mit einer Tastatur, lasse meine Computer für mich arbeiten (weil mir dabei alle Automatisierungs­möglichkeiten offenstehen).  Arbeiten mit 100 bis 200 Tasten­anschlägen pro Minute kann ich einen ganzen Arbeitstag lang mühelos und mit nur wenig Ermüdung.  Im Gegensatz dazu würden auch nur 20 Mausklicks pro Minute (halbwegs fehlerfrei!) schon nach erheblich weniger als einem Arbeitstag zur Urlaubsreife führen.  Bei Interesse biete ich Ihnen gerne Beratung an zum Thema effiziente Mensch-Maschine-Interaktion
  • Effiziente KodeausführungLinux ist als eines der effizientesten Betriebs­systeme bekannt.  Eine gegebene Maschine erledigt gegebene Aufgaben unter Linux mit weniger Prozessortakten, das heißt schneller und mit weniger Energieverbrauch als unter den meisten anderen Betriebssystemen.  Wie groß der Vorsprung gegenüber anderen Betriebssystemen ist, lassen folgende Zahlen erahnen:   Die Ausgabe November 2013 der Liste der 500 nichtverteilten, kommerziell verfügbaren Supercomputer mit der weltweit größten Rechenleistung verzeichnet Linux als Betriebssystem auf 96 % dieser Systeme und auf 100 % der 50 rechenleistungsstärksten von diesen Systemen
  • Datenschutz:  Einmalige, sorgfältige Konfiguration eines Linuxsystems (sicherheitstechnisch aufgerüstet mit grsecurity) schützt auf Dauer vor gegenwärtigen und zukünftigen Computerviren und sonstigem Schadkode, wirksamer als es mit anderen Betriebssystemen möglich ist.  Schreib- bzw. Ausführverbote für einzelne Dateisysteme festzulegen ist ein einmaliger Aufwand und wirkt dauerhaft — kein Bedarf für irgendeine wöchentliche Aktualisierung.  Völlig anders bei den heutzutage im Büro- und Privatbereich verbreiteten Betriebssystemen der Firma Microsoft:  Schreib- bzw. Ausführverbote sind dort leicht umgehbar oder überhaupt unmöglich.  Die daraus resultierende Notwendigkeit für separate Virenwächter vergleiche ich mit dem Verkauf von „Regenschirmen“ für den Aufenthalt in einem „Haus mit löchrigem Dach“ — für jeden Regentropfen einen neuen Schirm zu verkaufen ist doch ein „geniales“ Geschäftsmodell, oder?  Diese Sicherheitsvorteile von Linux im Vergleich zu anderen Betriebssystemen wurden kleiner aber sind weiterhin vorhanden seit dem Jahr 2017:  Damals wurde unter den Schlagwörtern „Spectre“ und „Meltdown“ bekannt, dass alle Prozessoren der jüngeren Vergangenheit mit größeren Marktanteilen Datensicherheitsdefekte aufweisen, welche von den Herstellern „irrtümlich“ eingebaut wurden und werden (Fehlschlag von spekulativer Kodeausführung führt zu Ausnahmemodus und Aufhebung aller Speicherzugriffsbeschränkungen).  Wie „irrtümlich“, das möge folgende Analogie auch für Laien verständlich machen:  Man stelle sich vor, jede Betätigung der Bremse eines PKWs würde automatisch alle Sicherheitsgurte und alle Türen öffnen, automatisch die „Airbags“ blockieren, und automatisch die gesamte Beleuchtung das Fahrzeugs ausschalten, auch die Bremslichter, und der Fahrzeughersteller würde behaupten, alle diese Fehler wären „irrtümlich“ eingebaut worden. 
  • Der Quellkode des Linuxkernels ist öffentlich zugänglich.  Er wird von so vielen Programmierern weltweit geprüft und weiterentwickelt, wie kein anderes Betriebssystem. 
  • Der Linuxkernel ist unter den Bedingungen der „GNU General Public Licence v2.0“, abgekürzt „GPL v2.0“, öffentlich verfügbar.  Die wesentlichsten Punkte der GPL sind:  (a) Das garantierte Recht („copyleft“) auf die vier Freiheiten, die Software unverändert auf einem Computer auszuführen, den Quellkode zu studieren und zu ändern, exakte Kopien zu publizieren, veränderte Versionen zu publizieren.  (b) Der Autor beansprucht seine Urheberrechte, garantiert die vier genannten Freiheiten für unveränderte Kopien und für veränderte Versionen (Vererbung der Lizenz).  (c) Veränderte publizierte Versionen müssen leicht erkennbar deklarieren, dass und von wem und wann diese Änderungen vorgenommen wurden, und dass für diese Änderungen die gleiche Lizenz gilt. 
  • Linux ermöglicht mir mehr Kontrolle über meine Computer und wirksameren Schutz meiner Daten vor unberechtigten Zugriffen als es mit anderen Betriebssystemen möglich wäre.  Würde ich eines der verbreiteten Microsoft-Systeme verwenden, dann müsste ich die Kontrolle über meine Computer (A) mit Firma Microsoft und (B) mit einer unbekannten Zahl von „Betriebs­system­einbrechern“ teilen.  (A) weil brauchbare Internet­nutzung nur dann möglich wäre, wenn ich den Austausch von unbekannten, verschlüsselten Daten mit Servern der Firma Microsoft dulden würde und (B) weil in diese Betriebs­systeme mühelos eingebrochen werden kann.  Mindestens seit Sommer 2008 ist öffentlich bekannt, dass Systemkennwörter solche Einbrüche meistens nur um Sekunden bis wenige Minuten verzögern, weil Firma Microsoft eine so schwache Verschlüsselung wählt.  Länger als ein ganzes Jahr keine Reaktion der Firma Microsoft auf diesen „Betriebs­system-GAU“ deutet eher auf Absicht als auf Irrtum der Firma Microsoft hin — ob das Ermöglichen von „Bundes­trojanern“ eine Art Kooperation mit Regierungs­behörden ist?
    Daten, für deren Geheim­haltung ich verantwortlich bin, könnte ich höchstens auf separaten Rechnern ohne Internet­verbindung verarbeiten.  Und eine verantwortungs­bewusste Wartung von Servern über verschlüsselte Netz­verbindungen wäre überhaupt unmöglich, mein Rechner könnte viel zu leicht „Trittbrett“ für Einbrüche in die betreffenden Server werden. 
  • Schon die Standard­ausstattung eines Linuxsystems bietet mir tausende Befehle und professionelle Werkzeuge für rationelles Arbeiten und Automatisierung von wiederholt zu erledigenden Aufgaben.  Vergleichbare Werkzeuge fehlen auf Systemen der Firma Microsoft überhaupt bzw. können nur mit deutlich geringerer Funktionalität von anderen Anbietern gekauft und nachinstalliert werden.  Kompromisslösungen wie Cygwin können zwar das Arbeiten erheblich erleichtern, aber nicht die fehlende Wirksamkeit von System­kennwörtern (siehe voriger Absatz) reparieren.  Die Betriebs­system­emulation Qemu bietet mir eine wesentlich bessere Lösung. 
  • Manche Arbeiten lassen sich mit Anwendungen der Firma Microsoft besser als mit entsprechenden Linux­anwendungen erledigen.  Fallweise steht von unternehmens- oder branchenspezifischen Spezialanwendungen nur eine Version für Microsoft-Systeme zur Verfügung.  In solchen Situationen verwende ich die Betriebssystem­emulation Qemu, um ein Betriebs­system der Firma Microsoft als ganzes in einem von Linux verwalteten „Käfig“ (virtuelle Maschine) abgeschottet und unter separatem Benutzer­konto auszuführen.  Ein Bildschirmfoto zeigt, wie es aussehen kann, mit einfachen Tasten­kombinationen zwischen gleichzeitig laufenden Linux- und Microsoft-Anwendungen hin- und herzuwechseln.  Der einzige, für mich deutlich spürbare Unterschied zwischen Ausführung des Microsoft-Systems im Qemu-Käfig bzw. nativ („dual boot“) ist das längere Warten auf den Seiten­umbruch von mehreren 100 Seiten großen Text-Dokumenten.  Übrige Geschwindigkeits­unterschiede sind natürlich messbar, aber kaum spürbar, und ich finde keinen Unterschied in Sachen Stabilität.  Microsoft-Systeme werden nach gröberen Störungen (Viren …) oder zur Vermeidung des „Alterns“ (mit der Zeit fortschreitend langsamer und instabiler) oft neu installiert, Zeit­aufwand jedes mal in der Größenordnung von 1/2 Stunde — bei mir genügt für diesen Zweck das Zurück­schreiben der Sicherungs­kopie einer einzigen, rund 2 GB großen Behälter­datei und schon nach wenigen Minuten habe ich ein Microsoft-System wie frisch installiert und mit allen persönlichen Einstellungen.
  • Der Linuxkernel und fast alle in meinem Büro verwendeten Linuxanwendungen sind lizenzkostenfrei.

Kleine Auswahl von Linuxanwendungen, welche ich häufig verwende

… mit ein paar Praxisbeispielen und Features zur Andeutung von „Glanzlichtern“.  Viele der genannten Namen sind vermutlich urheberrechtlich geschützt.

  • Systemprotokolldienst Rsyslog:
    Protokolliert jeden wichtigen Vorgang in meinen Linuxsystemen in schnell durchsuchbaren Protokolldateien und archiviert diese Dateien automatisch, sobald die Dateigröße eine konfigurierbare Grenze überschreitet. 
  • http-Proxyserver Wwwoffle:
    Dient mir zur Konfiguration des gesamten http- und ftp-Datenverkehrs mit dem Internet für alle Clients — ELinks, curl, wget, Opera, Firefox, … — zentral an einer einzigen Stelle, sorgt für vollautomatisches Zwischenspeichern („cache“) aller meiner http- und ftp-Zugriffe auf das Internet mit zahlreichen Feineinstellungsmöglichkeiten, blockiert das Herunterladen von allen unerwünschten Inhalten (Werbung …), „desinfiziert“ unerwünschten JavaSkript-Kode mittels Kommentarzeichen zwecks Sicherheit, zensiert http-Kopfzeilen zwecks Privatsphärenschutz (Referer, User-Agent, Set-Cookie) oder um Probleme resultierend aus fehlerhaft konfigurierten Servern zu umgehen (Content-Type). 
  • Befehlsinterpreter Bash:
    Die „Kommandozentrale“ des Linux-Systems.  Befehle mit längerer Laufzeit können asynchron im Hintergrund ausgeführt werden, wodurch die Eingabeaufforderung augenblicklich für den nächsten Befehl bereit steht.  Maximale Befehlszeilenlänge im Normalfall ungefähr 120 000 Zeichen.  bash speichert unbegrenzt langen Befehlszeilenverlauf mit Zeitmarken.  Komplexere Befehle aus diesem Verlauf zurückholen und mit kleinen Änderungen ausführen kann die Arbeit sehr beschleunigen.  Aufgaben, welche für eine Befehlszeile zu komplex sind, lassen sich mit Skriptdateien lösen.  Linux bietet selbstverständlich Möglichkeiten, solche Skriptdateien automatisch zu bestimmten Terminen auszuführen. 
  • Befehlsinterpreter Zsh:
    Für alle interaktiven Tätigkeiten, welche keine oder nur einzelne Systemverwaltungsprivilegien erfordern.  Unterscheidet sich von anderen, für Linux zur Auswahl stehenden Befehlsinterpretern unter anderem durch:
    • Modulare Struktur:  35 Module können zur Bauzeit einzeln aus- oder eingeschlossen werden.  Zum Beispiel Ausschließen von Netzwerkfähigkeiten kann die Sicherheit verbessern. 
    • Rund 200 Optionen erlauben zur Laufzeit feinabgestimmte Konfiguration des Verhaltens für weitgehende Kompatibilität mit Ksh oder Csh oder Sh oder POSIX oder Mischungen daraus oder für größte Automatisierungsfreundlichkeit. 
    • Der relative — nicht der absolute — Lernaufwand zählt:  Eine Stunde Lernen der komplexen Zsh Fähigkeiten nützt mehr für die alltägliche Arbeit, als der gleiche Zeitaufwand für das Lernen eines anderen Befehlsinterpreters. 
    • Befehlsverlauf:  Eine zsh Instanz kann mehrere Befehlsverläufe schreiben oder mehrere zsh Instanzen können einen gemeinsamen Befehlsverlauf schreiben.  Zugriff auf den Befehlsverlauf wesentlich flexibler und komfortabler, kann zum Beispiel aus anderen zsh Instanzen importierte Befehle ein- oder ausschließen. 
    • Ein Befehl kann für bessere Lesbarkeit mehrere Zeilen umfassen.  Der Befehlseditor kann einen Stapel von mehreren Eingabepuffern verwalten. 
    • Umfassende Unterstützung für Mehrbytezeichen:  Gültig in Namen von Variablen und Befehlsfunktionen.  Formatieren von Zeichenketten mit Feldbreiten gemessen in Zeichen — nicht Byte. 
    • Ersetzt und übertrifft Dateimanager:  Vervollständigungsvorschläge sind flexibler und schneller. 
    • Muster zur Dateinamenerzeugung „globbing“ wesentlich komplexer:  Operatoren für Alternation, Quantifizieren, Exklusion, Qualifizieren sensibel für Dateiattribute, Sortieren bzw. Filtern von resultierenden Dateinamenslisten. 
    • Parametersubstitution wesentlich komplexer:  verschachtelt, im Falle von assoziativen Feldern Filtern nach Schlüsseln oder Werten, Operationen mit Feldern (Vereinigung, Schnittmengen, …). 
    • Umfassende Unterstützung für Perl-kompatible Regelausdrücke. 
    • Fließkommaarithmetik, zahlreiche mathematische Funktionen. 
    • Anonyme Befehlsfunktionen erzeugen Positionsparameter, können viel „Schreibarbeit“ sparen wenn ein längeres Argument mehrmals benötigt wird;  ersparen im Unterschied zur gebräuchlichen Konstruktion „$SHELL -c 'Befehlsliste …' ARG0 Positionsargumente …“ Schwierigkeiten mit Maskieren, Verschachtelung, Export von Befehlsfunktionen und Variablen. 
    • Eine Befehlsschleife kann mehrere Schleifenvariablen benützen.  Eine Befehlsschleife kann Positionsparameter als Schleifenvariable(n) verwenden, besonders interessant innerhalb von anonymen Befehlsfunktionen. 
    • Prozesssubstitution in der Form „=( Befehlsliste )“ erzeugt und löscht eine Temporärdatei automatisch. 
  • Texteditor Vim:
    Zeigt beliebig viele Dateien in beliebig vielen Fenstern und Subfenstern.  Ein Suchen-und-alle-Fundstellen-Ersetzen-Befehl kann ohne Weiteres mehr als 60 Dateien durchlaufen, die Ersetzen-Positionen können zum Beispiel 12 Zeilen unter der jeweiligen Fundstelle stehen.  Eine eigene Skriptsprache ermöglicht Automatisierung von komplexeren Aufgaben.  Tastenbindungen sind frei konfigurierbar.  Befehlsausführung kann auch durch Ereignisse wie Öffnen bzw. Schließen von vim, Lesen, Schreiben bzw. Schließen von Dokumenten getriggert werden.  Schon die Standardausstattung bietet Syntaxhervorhebung mit 16 bzw. 256 Farben für mehr als 500 Programmiersprachen und Dateiformate.  Die hervorragende Dokumentation erleichtert das Einarbeiten in die Funktionsvielfalt. 
  • Datenstromeditor Sed:
    Dient primär als Filter in Befehlsketten zur nicht interaktiven Textbearbeitung.  Und bietet die schnellste Lösung für einfache Bearbeitungsschritte von Textdateien wie Suchen-und-alle-Ersetzen, Löschen und Einfügen von bestimmten Zeilen.  An die Zeilenlängengrenze bin ich noch nie gestoßen:  2 Gigabyte auf 32-Bit-Systemen, gesamter Arbeitsspeicher auf 64-Bit-Systemen. 
  • Versionsverwaltung Git:
    Archiviert Versionsverlauf von beliebigen Dateien schnell und platzsparend. 
  • Versionsverwaltung Mercurial:
    Archiviert Versionsverlauf von beliebigen Dateien.  Ideal für den Datenaustausch zwischen Microsoft-Systemen von Kundschaften und meinen Linux-Systemen. 
  • Dateisynchronisation Rsync:
    Praxisbeispiel ein Projekt aus ungefähr 1 200 Dateien über verschlüsselte Verbindung mit einem entfernten Server synchronisieren, 0,5 MB geänderte Dateien übertragen und inhaltliche Übereinstimmung der übrigen 20 MB des Projektes prüfen:  rsync erledigt das Ganze nach einer einzigen Befehlszeile und benötigt dafür weniger als 0,2 MB Datenverkehr über die Netzverbindung — ein genialer Algorithmus ermöglicht so erstaunlich effiziente Netzwerknutzung. 
  • Internet-Client Firefox:
    Für das „Surfen“ im Internet in jenen seltenen Fällen, welche Grafikmodus oder JavaSkript unbedingt erfordern. 
  • Grafikwerkzeug Gimp:
    Bietet mir alles, was ich für Erstellen und Bearbeiten von Rastergrafiken benötige.
  • Grafikwerkzeug Inkscape:
    Bietet mir alles, was ich für Erstellen und Bearbeiten von Vektorgrafiken benötige.
Validiere XHTML 1.0 TransitionalValidiere CSS