Viele verschiedene Distributionen und Anwendungsmöglichkeiten
MacOS
Apple
Linux basiert, jedoch in das Apple-Ökosystem integriert
iOS
Apple
Geschlossenes Ökosystem von Apple
Android
Google; Open Source
Offenes Ökosystem; Verschiedene Distributionen
Schichten eines Betriebssystems (+Kernel)
graph TD subgraph Schichten eines Betriebssystems A[Hardware] --> B[Kernel] B --> C[Systembibliotheken und -dienste] C --> D[Programmierschnittstellen > API] D --> E[Anwendungssoftware] end subgraph HorizontalKernelFunktionen[Kernel-Funktionen] direction LR B1[Hardware-Ressourcenverwaltung] B2[Prozessmanagement] B3[Speicherverwaltung] B4[Sicherheit und Zugriffskontrolle] end B --> HorizontalKernelFunktionen
Vergleich: Interpreter vs. Compiler
Aspekt
Interpreter
Compiler
Übersetzung
Zeile für Zeile (Manchmal auch in Chunks)
Gesamter Code auf einmal
Ausführung
Während der Übersetzung
Nach der Übersetzung
Geschwindigkeit
Langsamer (zur Laufzeit)
Schneller (nach Kompilierung)
Flexibilität
Schnelles Testen, Änderungen leicht möglich
Änderungen erfordern Neukompilierung
Ausgabe
Keine eigenständige Datei
Erzeugt eine ausführbare Datei
Beispiel: Python (Interpreter) vs. Rust (Compiler)
Slash vs. Backslash
Symbol
Verwendung
/
Pfadtrennung in Linux/macOS
\
Pfadtrennung in Windows / Escape-Zeichen
Pfade
Root-Verzeichnis: /
Aktuelles Verzeichnis: .
Parent-Verzeichnis: ..
Navigation (Unix/Linux)
Befehl
Beschreibung
pwd
Zeigt das aktuelle Verzeichnis an
cd VERZEICHNIS
Wechsel zum angegeben Verzeichnis
ls
Listet Dateien im Verzeichnis auf
ls -l
Long-Listing-Format für Dateien
Verwaltung und Berechtigungen
Root-Rechte: sudo → Führt Befehle mit Administrator-Rechten aus
CRUD-Operationen:
Operation
Befehl
Beschreibung
Create
mkdir, touch
Verzeichnisse/Dateien erstellen
Read
cat, less, head, tail
Dateien anzeigen
Update
mv
Verschieben oder Umbenennen von Dateien
Delete
rm
Löschen von Dateien oder Verzeichnissen
Das habe ich gelernt
Die Schichten eines Betriebssystems
Funktionen des Kernels
Verwaltung von Dateien und Verzeichnissen
Über die verschiedenen Betriebssysteme und deren Eigenschaften hatte ich jedoch schon Kenntnis.
Sowohl privat als auch beruflich habe ich mit dem Terminal zu tun, privat mit unix (macOS) und beruflich mit unix und windows.
Daher sind mir hier viele dinge auch nicht fremd.
Nur mit dem Kernel hatte ich bisher noch keine Berührungspunkte.
Nachdem ich mich zu diesem etwas mehr belesen habe, bin in ich nun dazu angeregt mal einen eigenen Kernel in Rust zu schreiben.