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
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/