Changes
Page history
Create Woche 3
authored
Dec 30, 2024
by
Luca Michael Schmidt
Hide whitespace changes
Inline
Side-by-side
Woche-3.md
0 → 100644
View page @
f4ab982e
# Woche 3
## Betriebssysteme (OS - Operating Systems)
| Name | Eigentümer | Informationen |
|---------|-----------------------------|---------------------------------------------------------------|
| Windows | Microsoft | Riesiges Software-Ökosystem |
| Linux | Open Source (Linus Torwald) | 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)
```
mermaid
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.