diff --git a/Writerside/images/image_18.png b/Writerside/images/image_18.png new file mode 100644 index 0000000..8bd27f6 Binary files /dev/null and b/Writerside/images/image_18.png differ diff --git a/Writerside/images/image_19.png b/Writerside/images/image_19.png new file mode 100644 index 0000000..e2085c3 Binary files /dev/null and b/Writerside/images/image_19.png differ diff --git a/Writerside/topics/Betriebssystemkerne.md b/Writerside/topics/Betriebssystemkerne.md index d704af7..28c911a 100644 --- a/Writerside/topics/Betriebssystemkerne.md +++ b/Writerside/topics/Betriebssystemkerne.md @@ -27,8 +27,8 @@ - Der **User-Bereich** ist nicht privilegiert, kann aber darauf aufbauende Funktionalitäten bereitstellen - Zugriff auf die Hardware erfolgt alleinig durch die im _Kernel_ bereitgestellten Funktionalitäten (System-Calls) - -## Monolitische Kerne +## Kernarten +### Monolitische Kerne Ein Monolith enthält alle Funktionalitäten eines Betriebssystems | Pro | Con | @@ -36,7 +36,7 @@ Ein Monolith enthält alle Funktionalitäten eines Betriebssystems | Bessere **Ausführungsgeschwindigkeit** da weniger _Prozesswechsel_ notwendig sind | Abgestürzte Komponenten des Kerns können nicht separat neu gestartet werden -> können das gesamte BS zum Absturz bringen | | Durch jahrelange Entwicklungstätigkeit ist eine gewachsene **Stabilität** vorhanden | | -## Minimale Kerne (Microkernel) +### Minimale Kerne (Microkernel) Hier befinden sich nur die nötigsten Funktionen im Kernel | Pro | Con | @@ -45,5 +45,31 @@ Hier befinden sich nur die nötigsten Funktionen im Kernel | Ausgelagerte Funktionalitäten sind leichter austauschbar, bietet bessere _Stabilität_ und _Sicherheit_ | | -## Hybride Kerne -Enthalten Komponenten, die, aus Geschwindigkeitsgründen, zusätzlich in den Kernel aufgenommen werden \ No newline at end of file +### Hybride Kerne +Enthalten Komponenten, die, aus Geschwindigkeitsgründen, zusätzlich in den Kernel aufgenommen werden + +| Pro | Con | +|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------| +| höhere Geschwindigkeit als minimale Kerne | keine klare Definition, was in den Kernel integiert wird | +| höhere Stabilität als monolithische Kerne | Systeme differieren stark -> kann zu einer fehlenden Unterstützung der Hardware- und Software-Hersteller führen | + + +### Vergleich monolithischer Kern / minimaler Kern +![image_18.png](image_18.png) + +## Alternative Architekturen +_Flaschenhals_ alle bestehenden Systeme liegt in ihren Schichtenmodellen +- Anwendung hat _keinen direkten Zugriff auf Hardware_ +- _Kommunikation und Datenfluss_ wird über Bibliotheken und deren Kernel abgewickelt +- _Zugangskontrolle_ weiterhin über Bibliotheken und Kernel + +## Programmierschnittstellen +**Systemaufruf (System Call)** ist eine API, die es ermöglicht auf Dienste und Ressourcen des BS zuzugreifen +- Implementierung von Systemaufrufen hängt stark von _Hardware_, _Architektur_, _BS_ ab +- ![image_19.png](image_19.png) +- Wann werden die benutzt? + - Berechtigungen, Ressourcenverwaltung, Kommunikation mit Hardware, Prozesssteuerung, Netzwerkkommunikation, Zeitverwaltung +- Nutzung eines direkten Systemaufrufs **nicht empfehlenswert** + - Software ist schlecht portierbar + - Auf Funktionen von Bibliotheken zurückgreifen + - befinden sich mit entsprechenden Wrapper-Funktionen logisch zwischen Benutzer- und BS-Kern \ No newline at end of file