Kernel: Unterschied zwischen den Versionen

Aus Foxwiki
Jeremyehmke (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „Ein Kernel (Betriebssystemkern), ist der zentrale Bestandteil eines Betriebssystems In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weit…“
 
K Textersetzung - „bzw.  “ durch „bzw. “
 
(23 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
Er bildet die unterste Softwareschicht des Systems und hat direkten Zugriff auf die Hardware
Er bildet die unterste Softwareschicht des Systems und hat direkten Zugriff auf die Hardware
==Bestandteile==
==Bestandteile==
Ein Kernel (abhängig von der Struktur) ist in Schichten aufgeteilt, wobei die unteren Schichten die Basis für die darüber liegenden bilden
Ein Kernel (abhängig von der Struktur) ist in Schichten aufgeteilt, wobei die unteren Schichten die Basis für die darüber liegenden bilden. Die oberen Schichten können Funktionen der unteren Schichten aufrufen, aber nicht umgekehrt.
Die oberen Schichten können Funktionen der unteren Schichten aufrufen, aber nicht umgekehrt
Diese Schichten sind vorhanden (von unten nach oben):
*Schnittstelle zur Hardware (Geräte, Speicher, Prozessoren)  
*Schnittstelle zur Hardware (Geräte, Speicher, Prozessoren)  
*Speicherverwaltung (evtl. einschließlich virtuellem Hauptspeicher)  
*Speicherverwaltung (evtl. einschließlich virtuellem Hauptspeicher)  
Zeile 11: Zeile 9:
*Geräteverwaltung (auch Device Management genannt)  
*Geräteverwaltung (auch Device Management genannt)  
*Dateisysteme
*Dateisysteme
==Die Kernelstrukturen im Vergleich==
 
*Wenn alle Module im Kernel selbst integriert sind, spricht man von einem monolithischen Kernel
==Die Kernelstrukturen==
*Bei einem Mikrokernel finden nur wesentliche Bestandteile in getrennten Prozessen statt
[[monolithischer Kernel]]:
*Eine Zwischenstufe ist der Hybridkernel, bei dem eine Teilmenge der Funktionen Teil des Kernels und der Rest ausgelagert ist
*Alle Module sind im Kernel selbst integriert
*Der selten benutzte Exokernel, beschränkt sich darauf, die Hardware zwischen den Prozessen aufzuteilen, alle weiteren Schritte werden den Prozessen selbst überlassen<br>
[[Microkernel]]:
*Der Kernel selbst läuft im sogenannten Kernel-Mode zusammen mit Gerätetreibern und anderen hardwarenahen Anwendungen
*Nur wesentliche Bestandteile integriert und finden in getrennten Prozessen statt
*Der Kernel ist vom Kernel-Mode zu unterscheiden denn nicht jede Anwendung ist auch Teil des Kernels
[[Hybridkernel]]:
**Neben dem eigentlichen Kernel laufen noch andere Anwendungen im Kernel-Mode, z. B. die Hardware Abstraction Layer
*Eine Teilmenge der Funktionen sind Teil des Kernels und der Rest ist ausgelagert
Exokernel:
*ist eine konsequente Weiterführung des Mikrokernel-Konzepts
*Die Hardware wird zwischen den Prozessen aufzuteilen, alle weiteren Schritte werden den Prozessen selbst überlassen
 
==Aufgaben eines Betriebssystem-Kernel==
==Aufgaben eines Betriebssystem-Kernel==
*Schnittstelle zu Anwenderprogrammen (Starten, Beenden, Ein-/Ausgabe, Speicherzugriff)  
*Schnittstelle zu Anwenderprogrammen (Starten, Beenden, Ein-/Ausgabe, Speicherzugriff)  
*Kontrolle des Zugriffs auf Prozessor, Geräte, Speicher (Scheduler, Gerätetreiber, Speicherschutz). Möglichst alleiniger Zugriff des Kernels auf diese Ressourcen.  
*Kontrolle des Zugriffs auf Prozessor, Geräte, Speicher (Scheduler, Gerätetreiber, Speicherschutz). Möglichst alleiniger Zugriff des Kernels auf diese Ressourcen.  
*Verteilung der Ressourcen wie zum Beispiel der Prozessorzeit bzw. der Prozessoren auf die Anwenderprogramme.  
*Verteilung der Ressourcen wie zum Beispiel der Prozessorzeit bzw.&nbsp;der Prozessoren auf die Anwenderprogramme.  
*Strukturierung der Ressourcen, etwa Abbildung von Dateisystemen auf blockorientierte Geräte wie Festplattenlaufwerke, Netzwerkstack auf Netzwerkkarten.  
*Strukturierung der Ressourcen, etwa Abbildung von Dateisystemen auf blockorientierte Geräte wie Festplattenlaufwerke, Netzwerkstack auf Netzwerkkarten.  
*Auflösung von Zugriffskonflikten, etwa Verriegelung bei Mehrprozessorsystemen, Warteschlangen bei knappen Ressourcen.  
*Auflösung von Zugriffskonflikten, etwa Verriegelung bei Mehrprozessorsystemen, Warteschlangen bei knappen Ressourcen.  
*Virtualisierung der Ressourcen (Prozessor: Prozesse, Festplatte: Dateien, Netzwerkkarte: z. B. Sockets, Speicher: virtueller Speicher, Geräte: Spezialdateien).  
*Virtualisierung der Ressourcen (Prozessor: Prozesse, Festplatte: Dateien, Netzwerkkarte: z. B. Sockets, Speicher: virtueller Speicher, Geräte: Spezialdateien).  
*Überwachung von Zugriffsrechten auf Dateien und Geräte bei Mehrbenutzersystemen.
*Überwachung von Zugriffsrechten auf Dateien und Geräte bei Mehrbenutzersystemen.
==Arten==
*Können auf einem Kernel mehrere Prozesse gleichzeitig laufen, spricht man von Multitasking-Kerneln
*Wirklichkeit wird jedoch von der CPU immer nur ein Prozess gleichzeitig behandelt (außer bei Mehrkernsystemen). Den Wechsel regelt in den meisten Fällen der Scheduler. Wird ein Multitasking-Kernel durch Zugriffsverwaltungen auf Prozesse und Geräte ergänzt, erhält man ein Multiuser-(oder Mehrbenutzer-)System. Darauf können mehrere Benutzer gleichzeitig arbeiten
[[Kategorie:Kernel]]

Aktuelle Version vom 28. Mai 2023, 22:06 Uhr

Ein Kernel (Betriebssystemkern), ist der zentrale Bestandteil eines Betriebssystems In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen Er bildet die unterste Softwareschicht des Systems und hat direkten Zugriff auf die Hardware

Bestandteile

Ein Kernel (abhängig von der Struktur) ist in Schichten aufgeteilt, wobei die unteren Schichten die Basis für die darüber liegenden bilden. Die oberen Schichten können Funktionen der unteren Schichten aufrufen, aber nicht umgekehrt.

  • Schnittstelle zur Hardware (Geräte, Speicher, Prozessoren)
  • Speicherverwaltung (evtl. einschließlich virtuellem Hauptspeicher)
  • Prozessverwaltung (auch Scheduler genannt)
  • Geräteverwaltung (auch Device Management genannt)
  • Dateisysteme

Die Kernelstrukturen

monolithischer Kernel:

  • Alle Module sind im Kernel selbst integriert

Microkernel:

  • Nur wesentliche Bestandteile integriert und finden in getrennten Prozessen statt

Hybridkernel:

  • Eine Teilmenge der Funktionen sind Teil des Kernels und der Rest ist ausgelagert

Exokernel:

  • ist eine konsequente Weiterführung des Mikrokernel-Konzepts
  • Die Hardware wird zwischen den Prozessen aufzuteilen, alle weiteren Schritte werden den Prozessen selbst überlassen

Aufgaben eines Betriebssystem-Kernel

  • Schnittstelle zu Anwenderprogrammen (Starten, Beenden, Ein-/Ausgabe, Speicherzugriff)
  • Kontrolle des Zugriffs auf Prozessor, Geräte, Speicher (Scheduler, Gerätetreiber, Speicherschutz). Möglichst alleiniger Zugriff des Kernels auf diese Ressourcen.
  • Verteilung der Ressourcen wie zum Beispiel der Prozessorzeit bzw. der Prozessoren auf die Anwenderprogramme.
  • Strukturierung der Ressourcen, etwa Abbildung von Dateisystemen auf blockorientierte Geräte wie Festplattenlaufwerke, Netzwerkstack auf Netzwerkkarten.
  • Auflösung von Zugriffskonflikten, etwa Verriegelung bei Mehrprozessorsystemen, Warteschlangen bei knappen Ressourcen.
  • Virtualisierung der Ressourcen (Prozessor: Prozesse, Festplatte: Dateien, Netzwerkkarte: z. B. Sockets, Speicher: virtueller Speicher, Geräte: Spezialdateien).
  • Überwachung von Zugriffsrechten auf Dateien und Geräte bei Mehrbenutzersystemen.

Arten

  • Können auf einem Kernel mehrere Prozesse gleichzeitig laufen, spricht man von Multitasking-Kerneln
  • Wirklichkeit wird jedoch von der CPU immer nur ein Prozess gleichzeitig behandelt (außer bei Mehrkernsystemen). Den Wechsel regelt in den meisten Fällen der Scheduler. Wird ein Multitasking-Kernel durch Zugriffsverwaltungen auf Prozesse und Geräte ergänzt, erhält man ein Multiuser-(oder Mehrbenutzer-)System. Darauf können mehrere Benutzer gleichzeitig arbeiten