Benutzer:Jst/Kernel
Kernel
Der Kernel ist der zentrale Teil des Betriebssystems. Er verbindet die Hardware (z.B. den Prozessor) mit der Anwendungssoftware (z.B. Fortnite). Der Kernel hat direkten Zugriff auf die Hardware, alle übergeordneten Softwareschichten können auf diese nur über ihn zugreifen.
Aufgaben
Der Kernel übernimmt zentrale Aufgaben, ohne die andere Software nicht funktionieren würde:
Prozessverwaltung
Der Kernel sorgt dafür, dass Prozesse nacheinander oder gleichzeitig ausgeführt werden können. Dabei verwaltet er, wieviel Rechenzeit jeder Prozess abbekommt und wann er pausiert und fortgesetzt werden soll.
Speicherverwaltung
Der Kernel kontrolliert Zugriffe auf den Arbeitsspeicher und sorgt dafür, dass Programme nur auf ihre eigenen Dateien zugreifen. Er verhindert so, dass Programme sich gegenseitig in die Quere kommen.

Geräteverwaltung
Der Kernel steuert Ein- und Ausgabegeräte (z.B. den Bildschirm vor deiner eleganten Nase.) über Treiber. Dadurch können diese Geräte mit den Programmen kommunizieren und du dein Gerät bedienen.
Dateisystem-Verwaltung
Der Kernel verwaltet Dateien im Speicher (Festplatte, SSD) und sorgt dafür dass Dateien erstellt, geöffnet, bearbeitet und gespeichert, sowie gelöscht werden können.
Sicherheits- und Zugriffsrechte
In Betriebssystemen mit mehreren Benutzern regelt der Kernel, welcher Benutzer worauf zugreifen darf.
Arten von Kernels
Es gibt drei verschiedene wichtige Arten von Kernels. Welche alle einen verschiedenen Aufbau und Vor-Nachteile haben.
Monolithische Kernel
Beim Monolithischen Kernel werden alle verschiedenen Betriebssysteme(z.B. Dateisystem, Gerätetreiber, Speicherverwaltung und Netzwerk) direkt im Kernel verarbeitet. Dies sorgt für verschiedene Vor- und Nachteile:
Vorteil ist zum einen, dass der Kernel sehr schnell Arbeitet, da alles im selben Adressraum verarbeitet wird.
Nachteil ist aber die fehlende Stabilität, da wenn eine Sache nicht mehr läuft gar nichts mehr läuft, da alles miteinander verbunden ist.
Der Kernel ist also sehr Performance basiert und wird oft bei Leistungsorientierten Systemen benutzt.
Mikro Kernel
Anders als beim Monolithischen Kernel wird beim Mikro Kernel nur das nötigste direkt im Kernel bearbeitet (z.B. die Interprozesskommunikation und Speicherverwaltung). Die anderen Funktion laufen separat im User Space.
Vorteil davon ist, dass das Netzwerk stabiler und sicherer ist, da beim Absturz eines Dienstes es nicht unbedingt direkt den Kernel betrifft.
Nachteil hier ist aber, dass der Kernel langsamer läuft durch häufigen Kontextwechsel.
Der Kernel wird oft bei kritischen Echtzeitsystemen benutzt.
Hybrid Kernel
Der Hybrid Kernel ist eine Mischung aus den beiden vorherigen Kernels. Hier läuft weiterhin vieles im Kernel aber mit dem System eines Mikro Kernels.
Vorteil hierbei ist, dass der Kernel versucht das beste von beidem zu kombinieren Performance und Stabilität.
Nachteil ist aber, dass ein Hybrid Kernel sehr schwer in der Umsetzung ist, da ein Hybrid Kernel extrem Komplex ist.
