Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| edv:betriebsysteme:start [29 14 2026 19 : 14] – gelöscht André Reichert-Creutz | edv:betriebsysteme:start [29 41 2026 19 : 41] (aktuell) – André Reichert-Creutz | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | {{: | ||
| + | {{ : | ||
| + | ====== DON'T PANIC: Per Anhalter durch das Betriebssystem ====== | ||
| + | |||
| + | Willkommen, Anhalter! Dieser zweiwöchige Kurs ist euer Handtuch für die Reise durch die Galaxis der Betriebssysteme. Ein Betriebssystem (OS) ist weit mehr als nur Code auf einem Bildschirm – es ist der ultimative Vermittler zwischen Benutzer, Anwendungen und der Hardware. | ||
| + | |||
| + | Ohne ein Betriebssystem müsstet ihr jede Spannungsänderung im Silizium selbst steuern – eine Aufgabe, die selbst die Geduld eines Vogonen überstrapazieren würde. In den nächsten zwei Wochen werden wir die fundamentalen Konzepte entschlüsseln. Die Antwort auf alle Fragen lautet vielleicht 42, aber bis wir dort ankommen, müssen wir verstehen, wie die Frage überhaupt im Speicher abgelegt wird. | ||
| + | |||
| + | --- | ||
| + | |||
| + | ===== Woche 1: Das Fundament der informationstechnischen Existenz ===== | ||
| + | |||
| + | ==== Modul 1: Historie und Architektur (Tag 1) ==== | ||
| + | Wie strukturieren wir das Chaos aus Nullen und Einsen? Alles begann mechanisch. | ||
| + | * Konrad Zuse konstruierte mit der Z1 das erste Rechenwerk, das voll auf der Grundlage des Dualsystems arbeitete. | ||
| + | * Die Z22 war später der erste Röhrenrechner der Zuse KG, in dem Programme direkt in der Maschine gespeichert werden konnten. | ||
| + | * Die erste Computergeneration (1945-1955) besaß gar kein Betriebssystem, | ||
| + | * Danach kam die Stapelverarbeitung (Batch-Betrieb) der zweiten Generation, bevor die dritte Generation den Dialogbetrieb und Multiprogramming einführte. | ||
| + | |||
| + | **Architektur des Kernels:** | ||
| + | * **Die Monolithische Architektur: | ||
| + | * **Die Mikrokern Architektur: | ||
| + | * **Mehrschichtige Architektur: | ||
| + | |||
| + | {{http:// | ||
| + | |||
| + | ==== Modul 2: Prozesse, Threads und die galaktische Bürokratie (Tag 2) ==== | ||
| + | Ein Prozess ist in der Informatik ein Programm, das sich in Befehle (Codebereich) und Programmdaten gliedert. Ein Thread ist eine Erweiterung dieses Modells – ein " | ||
| + | |||
| + | Damit wir nicht Äonen warten müssen, nutzt das OS ein **Prozessmodell** mit diesen Zuständen: | ||
| + | * **WARTEND (rechenbereit): | ||
| + | * **LAUFEND (rechnend): | ||
| + | * **UNTERBROCHEN: | ||
| + | * **BLOCKIERT: | ||
| + | |||
| + | {{http:// | ||
| + | |||
| + | Ein **Scheduler** bestimmt, wer rechnen darf. Beim **Round Robin** (Zeitscheibenverfahren) erhält jeder Prozess eine feste Zeitspanne, bevor er verdrängt wird. Beim **Prioritäts-Scheduling** wird einem Prozess eine Priorität zugeordnet, wodurch Prozesse niedrigerer Priorität warten müssen. Bei "First come, first served" | ||
| + | |||
| + | ==== Modul 3: Prozesskommunikation, | ||
| + | Ein Prozess kann einen neuen Prozess starten, wodurch ein " | ||
| + | |||
| + | Prozesse müssen kommunizieren (Inter-Process Communication). Dafür gibt es mehrere Wege: | ||
| + | * **Gemeinsamer Speicher:** Prozesse teilen sich Datenbereiche und Variablen. | ||
| + | * **Pipes:** Direkte Datenkanäle zwischen zwei Prozessen – einer schreibt, der andere liest. | ||
| + | * **Signale: | ||
| + | * **Prozedurfernaufrufe (RPC):** Ein Prozess ruft eine Prozedur auf, die in einem anderen Prozess liegt. | ||
| + | |||
| + | Wenn Prozesse um Ressourcen kämpfen, droht der **Deadlock** (Stillstand). Dafür müssen vier Bedingungen erfüllt sein: | ||
| + | 1. Mutual Exclusion (wechselseitiger Ausschluss). | ||
| + | 2. Belegungs- und Wartebedingung (Prozess kann weitere Betriebsmittel anfordern). | ||
| + | 3. Unterbrechbarkeitsbedingung (Betriebsmittel können nicht entzogen werden). | ||
| + | 4. Zyklische Wartebedingung (Zyklus im Betriebsmittelgraph). | ||
| + | |||
| + | ==== Modul 4: Speicherverwaltung & Der Unwahrscheinlichkeitsdrive (Tag 4) ==== | ||
| + | Der Arbeitsspeicher ist chronisch zu klein. Früher nutzte man **Overlay-Verwaltung**, | ||
| + | |||
| + | Heute rettet uns der **virtuelle Speicher**: Der Speicheradressraum des Prozessors wird vom realen Adressraum des Arbeitsspeichers getrennt. | ||
| + | * Beim **Paging** wird der virtuelle Adressraum in " | ||
| + | * Die Umrechnung erledigt die **Memory Management Unit (MMU)**. | ||
| + | * Ein **Translation Look-aside Buffer (TLB)** speichert die zuletzt verwendeten Umrechnungen zwischen – ein enormer Geschwindigkeitsvorteil. | ||
| + | * Alternativ (oder ergänzend) gibt es das **Segmentieren**, | ||
| + | |||
| + | ==== Modul 5: Eingabe, Ausgabe und Geräte (Tag 5) ==== | ||
| + | Peripheriegeräte werden in das Dateisystem eingebunden und aus Benutzersicht meist wie Dateien behandelt. Wir unterscheiden: | ||
| + | * **Block Devices:** Blockorientierte Geräte wie Festplatten, | ||
| + | * **Character Devices:** Zeichenorientierte Geräte wie Terminals, die einen Datenstrom aus einzelnen Bytes verarbeiten. | ||
| + | |||
| + | Die Gerätesteuerung kann programmgesteuert, | ||
| + | |||
| + | --- | ||
| + | |||
| + | ===== Woche 2: Dateisysteme, | ||
| + | |||
| + | ==== Modul 6: Dateisysteme - Everything is a File (Tag 6) ==== | ||
| + | Ein Dateisystem muss die physischen Blöcke einer Festplatte in die logische Form einer Datei übersetzen. | ||
| + | |||
| + | **Linux/ | ||
| + | Unix nutzt zur Adressierung **INodes (Index Nodes)**. | ||
| + | * Ein INode enthält Informationen über Eigentümer, | ||
| + | * Er hat 13 Einträge zur Adressierung. Die ersten 10 zeigen direkt auf Datenblöcke. | ||
| + | * Der 11. Eintrag zeigt auf einen INode, der weitere Blöcke adressiert (einfach indirekt). Eintrag 12 ist doppelt indirekt, der letzte dreifach indirekt. | ||
| + | |||
| + | {{http:// | ||
| + | |||
| + | **Windows (NTFS):** | ||
| + | NTFS nutzt eine **Master File Table (MFT)**. | ||
| + | * Jede Datei besitzt hier einen Eintrag. | ||
| + | * Bei kleinen Dateien werden alle Attribute (inklusive der Daten) direkt innerhalb des MFT-Eintrags abgelegt. | ||
| + | * Bei großen Dateien enthält der Eintrag den Wurzelknoten eines B-Baums, dessen Blätter auf die Dateibereiche (Extents) verweisen. | ||
| + | |||
| + | Um Dateien von mehreren Orten zugänglich zu machen, nutzt man **Links**. Das " | ||
| + | |||
| + | ==== Modul 7: Linux, GNU und die Open-Source-Galaxis (Tag 7) ==== | ||
| + | Historisch stammt Unix aus den 1960er Jahren, hervorgegangen aus dem System Multics. Ken Thompson und Dennis Ritchie entwickelten die erste Unix-Version und schufen dafür die Sprache C. | ||
| + | |||
| + | 1991 initiierte Linus Torvalds den Kernel für Linux. Ein Großteil der grundlegenden Software in Linux (wie C-Compiler oder Shells) stammt aus dem GNU-Projekt. | ||
| + | **Systemvergleich: | ||
| + | * **Linux:** Extrem ressourcenschonend (eine GUI ist optional), sehr sicheres Multiusersystem, | ||
| + | * **macOS X:** Basiert auf einem Unix-Derivat (Darwin/ | ||
| + | * **Windows: | ||
| + | |||
| + | ==== Modul 8: Verteilte Systeme & Cluster (Tag 8) ==== | ||
| + | Ein verteiltes System ist laut Andrew Tanenbaum ein Zusammenschluss unabhängiger Computer, der sich für den Benutzer als ein einzelnes System präsentiert. | ||
| + | Die bekannteste Architektur ist das **Client-Server-Modell**, | ||
| + | |||
| + | Noch spannender sind **Cluster**, | ||
| + | * **HA Cluster (High Availability): | ||
| + | * **HPC Cluster (High Performance Computing): | ||
| + | * **Load Balancing Cluster:** Clientanfragen werden durch einen Loadbalancer an den Serverknoten mit der voraussichtlich besten Performance verteilt. | ||
| + | |||
| + | ==== Modul 9: Grid & Cloud Computing (Tag 9) ==== | ||
| + | Wenn der lokale Rechner nicht reicht, wandern wir ins Netz. | ||
| + | **Grid Computing** vernetzt Tausende einzelner Computer zu einem komplexen System mit enormer Rechenleistung. Es gibt z. B. Computer Grids für Rechenkapazität, | ||
| + | |||
| + | **Cloud Computing** treibt dies auf die Spitze. Dienste werden On-Demand abgerechnet ("pay per use"). Wir unterscheiden: | ||
| + | * **IaaS (Infrastructure as a Service):** Der Anbieter stellt Speicherplatz, | ||
| + | * **PaaS (Platform as a Service):** Bereitstellung einer transparenten Entwicklungsumgebung (z.B. Webserver) zum Testen und Hosten von Apps. | ||
| + | * **SaaS (Software as a Service):** Der Anbieter hostet eine vollständige Software-Applikation; | ||
| + | |||
| + | Die Bereitstellung erfolgt über **Private Clouds** (nur für interne Unternehmenszwecke), | ||
| + | |||
| + | ==== Modul 10: Embedded Systems & Organic Computing (Tag 10) ==== | ||
| + | Betriebssysteme der Zukunft steuern nicht nur Desktop-PCs. | ||
| + | **Embedded Systems** verrichten unsichtbar ihren Dienst in Waschmaschinen, | ||
| + | |||
| + | Die absolute Spitze der Evolution bildet das **Organic Computing**. Systeme werden künftig so komplex, dass sie lebensähnlich (" | ||
| + | * **selbst-konfigurierend** | ||
| + | * **selbst-optimierend** | ||
| + | * **selbst-heilend** | ||
| + | * **selbst-schützend** | ||
| + | |||
| + | Ein "Smart Network" | ||
| + | |||
| + | ---- | ||
| + | //**Quellen & Materialien**// | ||
| + | //Alle Inhalte dieses Kurses basieren auf dem Skript " | ||
