GNU / Linux
Einblicke in ein freies Betriebssystem
Gliederung
  • 1. Was ist Linux und was ist GNU / Linux
  • 2. Die Anfänge
  • 3. Linux heute
    • 3.1 Entwicklung
    • 3.2 Verwendungszwecke
    • 3.3 Dateibaum-Struktur
    • 3.4 Das virtuelle Dateisystem
    • 3.5 Distributionen
    • 3.6 Paketmanagement
    • 3.7 Grafische Oberfläche
      • 3.7.1 X-Window-System
      • 3.7.2 Desktopumgebung
    • 3.8 Treiber
  • 4. Quellen
Was ist GNU / Linux
  • Linux ist ein monolithischer Betriebssystem-Kernel
  • GNU (GNU's Not Unix) ist ein unixoides Betriebssystem welches den Mach-Mikrokernel oder den Linux-Kernel verwendet
  • GNU-Software ist freie Software
  • GNU / Linux ist ein freies Betriebssystem, welches auf dem Linux-Kernel aufbau
Die Anfänge
Linus Torvalds
  • Unix war proprietär und kostete Geld
  • Linus Torvalds konnte es sich nicht leisten
  • Daraufhin begann er sich sich eigenen Unix-Klon zu programmieren (Hobbyprojekt)
  • Nach und nach schlossen sich hunderte andere Hobbyprogrammierer dem Projekt an
Linux heute
  • größtes gemeinschaftlich entwickeltes Open-Source-Projekt weltweit
  • universell einsetzbarer Kernel
  • unterstützt eine Vielzahl an Architekturen
  • meistverwendetster Kernel weltweit
  • bietet die Grundlage vieler moderner Betriebssysteme
  • kostenlos
  • open source
Verwendungszwecke
  • High Performance Computing
  • Server aller Art
  • Router
  • IoT (Internet of Things)
  • Mobile Geräte (Smartphones / Tablets)
  • Desktop-PC
Linux heute
Entwicklung
  • gemeinschaftlich
  • Großteil der Entwickler sind bei großen IT-Konzernen angestellt
    • Intel (12.9%)
    • Red Hat (8.0%) - Business Server und Desktop
    • Linaro (4.0%) - ARM-Unterstützung
    • Samsung (3.9%)
    • SUSE (3.2%)
    • IBM (2.7%)
  • ca. 10% unbezahlte Entwickler
  • weltweites Netzwerk aus Entwicklern
  • Austausch des Codes über Mailing-Listen
  • Kernel-Experten für jedes Subsystem/Bereich
  • Absegnung der Patches durch Linus Torvalds
Dateibaum-Struktur
Das virtuelle Dateisystem
  • Grundsatz von unixoiden Betriebssystemen: "Everything is a file"
  • Pseudodateien werden vom Kernel beim Boot erstellt und Inhalt bei Lesezugriff dynamisch ausgegeben
  • Ermöglich schnelles auslesen und speichern verschiedener Werte ohne lästige API-Aufrufe
  • Beispiel: procfs (process filesystem)
Distributionen
  • Eine Distribution ist ein vollwertiges Betriebssystem-Paket, welches einen Kernel und darauf abgestimmte Software umfasst
  • Distributionen werden von einem Distributor zusammengestellt und veröffentlicht
  • Oftmals wird dieses Paket um weitere wichtige Komponenten erweitert:
    • Paketmanager
    • Display-Server
    • Fenstermanager
    • Desktop-Umgebung
  • Verschiedene Distributionen sollen verschiedene Anwendungsbereiche abdecken:
    • Raspbian (speziell für ARM-Architektur)
    • Ubuntu (besonders Einsteigerfreundlich)
    • Arch Linux (Konfiguration von Grund auf)
    • Proxmox (Typ-1 Hypervisor)
    • DD-WRT (speziell für Router)
Distributionen
Paketmanagement
In Linux gibt es prinzipiell zwei Wege Software zu installieren:
  • Paketmanagement
    • Software wird im Gegensatz zu Windows nicht einfach aus dem Internet heruntergeladen und installiert, sondern über einen Paketmanager installiert.
    • Sämtliche von einer Distribution bereitgestellte Software wird in sogenannten Repositories hinterlegt (ähnlich einer Datenbank)
    • update-Befehl: die lokale Index-Datenbank wird mit dem Repository der Distribution abgeglichen und aktualisiert
    • upgrade-Befehl: sämtliche Software eines System wird entsprecht dem index aus dem Repository geupdatet
  • Kompilierung des Sourcecodes
Paketmanagement
Grafische Oberfläche
  • nicht Teil des Betriebssystems, wegen Netzwerk- und Multiuser-Funktionalität
  • wird über das X-Window-System realisiert
  • besteht aus: Display-Server, Fenster-Manager und Desktop-Umgebung
  • variablel austausch- und anpassbar
X-Window-System
Besteht aus:
  • Display-Server
    • gibt die Ausgabe aus
    • verwaltet die Grafikkarte
    • ermöglicht z.B. Multi-User-Betrieb: 2 x Benutzer/Maus/Tastatur/Bildschirm an einem PC
  • X-Clients
    • jedes Fenster entspricht einem Client
    • ein Client kann auch ein Fenstermanager sein, welcher die Funktionalität des minimierens, maximieren und schließen von Anwendungen ermöglicht
    • Außerdem kümmert sich der Fenstermanager um die Titelleiste und das Aussehen des Fensterrahmens
  • Eingabe-Medien:
    • Maus
    • Tastatur
    • Touchscreen
  • Ausgabe-Medium: Bildschirm
  • X11-Protokoll
    • netzwerkfähiges Protokoll zur Kommunikation zwischen Client und Server
    • ermöglicht grafische Ausgabe über ein Netzwerk hinweg
    • wird bei lokalem Betrieb über einen Unix-Socket geschickt (Inter-Prozess-Kommunikation)
X-Window-System
Desktopumgebung
  • grafische Arbeits- und Benutzerumgebung
  • teilweise austauschbar
  • Wesentliche Bestandteile:
    • Fenstermanager
    • GUI-Tookit (Qt, GTK, wxWidgets)
    • Benachrichtigungsfeld
    • Startmenü
    • Taskleiste
    • oftmals viele Zusatzprogramme:
      • Dateimanager
      • Terminal
      • etc.
    • Bekannte Desktopumgebungen
      • GNOME
      • KDE
      • XFCE
      • LXDE
Treiber
  • fester Bestandteil des Kernels, dadurch keine Notwendigkeit Treiber herunterladen zu müssen
  • werden dynamisch eingebunden (je nachdem, auf welcher Hardware der Kernel läuft)
  • große Anzahl verfügbarer Open-Source-Treiber (z. B. nouveau für nVidia-Grafikkarten)
  • teilweise schlechte Unterstützung bei nicht Mainstream-Hardware, weil manche Hersteller keine Treiber für Linux zur Verfügung stellen
  • teilweise schlechtere Performance, weil Hersteller für andere Betriebssysteme optimieren
Quellen
  • https://www.linux.com
  • http://www.linuxfoundation.org/
  • https://wiki.ubuntuusers.de/