Systemkern

Systemkern

Ein Betriebssystemkern oder Systemkern (engl. kernel [ˈkɝːnəl]) 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. Die Konstruktion eines Betriebssystemkerns gehört zum Themenbereich der Informatik und des Softwareengineerings.

Gängige Anforderungen an einen Systemkern sind Parallelverarbeitung verschiedener Aufgaben (Multitasking), Einhaltung zeitkritischer Grenzen, Offenheit für unterschiedlichste Anwendungen und Erweiterungen.

Nicht zum Systemkern gehörende Teile werden als Userland bezeichnet.

Inhaltsverzeichnis

Bestandteile

Ein Systemkern ist in Schichten (oder Layer, siehe Schichtenmodell) aufgebaut, wobei die unteren (maschinennahen) Schichten die Basis für die darüberliegenden bilden. Die oberen Schichten können Funktionen der unteren Schichten aufrufen, aber nicht umgekehrt.

Folgende Schichten sind vorhanden (von unten nach oben):

Die Struktur von monolithischen Kernel, Mikrokernel und Hybridkernel im Vergleich.

Wenn alle diese Funktionen im Systemkern selbst integriert sind, spricht man von einem monolithischen Kernel. Bei einem Mikrokernel finden wesentliche Teile in getrennten Prozessen statt. Daneben, bzw. zwischen den beiden liegend, gibt es noch den sogenannten Hybridkernel.

Auf jeden Fall außerhalb des Kernels laufen die Anwendungsprogramme, die sich der vom Kernel angebotenen Funktionen bedienen, um mit der Maschine zu kommunizieren.

Aufgaben eines Kernels

Ein Kernel hat die folgenden Aufgaben:

  • 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, etwa der Prozessorzeit(en) (bzw. der Prozessoren) auf die Anwenderprogramme
  • Strukturierung der Ressourcen, etwa Abbildung von Dateisystemen auf blockorientierte Geräte wie Festplatten, Netzwerkprotokoll-Stack 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

Prozesse

Zur Realisierung eines Betriebssystems wird oft das Konzept des Prozesses (Task) verwendet. Ein Prozess enthält (mindestens) einen Registersatz des Prozessors und kann über den Scheduler angehalten und wieder gestartet werden. Jeder Prozess hat kontrollierten Zugriff auf einen Teil des Speichers sowie Ein- und Ausgabekanäle, die auf Dateien oder Geräte zugreifen. Mit dem Kernel kommuniziert er über Systemaufrufe. Ein Programm läuft normalerweise in genau einem, in Ausnahmefällen auch in mehreren Prozessen. Auch manche Systemdienste laufen innerhalb von Prozessen.

Starten

Beim Starten eines Computers wird nach einem eventuellen Hardwarecheck und einer teilweisen Geräteinitialisierung der Kernel in den Speicher geladen und gestartet. Er initialisiert die Geräte vollständig und startet den ersten Prozess. Bei einfachen Systemen wie MS-DOS ist das ein Kommandozeileninterpreter, bei Mehrprozesssystemen ein bestimmter Prozess (bei Linux/Unix init), der die Systemdienste (als Prozesse) lädt und wieder, evtl. nach Eingabe von Namen und Passwort, einen oder mehrere Kommandointerpreter oder eine grafische Benutzeroberfläche als Prozesse startet. Danach übernimmt er mit Hilfe der Systemaufrufe das Starten/Stoppen von weiteren Prozessen (Anwenderprogrammen) sowie die Zuteilung von Speicher und Ein-/Ausgabekanälen auf die einzelnen Prozesse.

Kernelarten

Können auf einem Kernel mehrere Prozesse gleichzeitig laufen, spricht man von Multitasking-Kerneln. In 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 eine Zugriffsverwaltung auf Prozesse und Geräte ergänzt, erhält man ein Multiuser-(oder Mehrbenutzer-)System. Darauf können mehrere Benutzer gleichzeitig arbeiten. Jeder Benutzer muss sich einloggen (Authentifizierung). Der Kernel teilt jedem Prozess einen Benutzer zu, jeder Benutzer kann jedoch mehrere Prozesse besitzen. Abhängig vom Benutzer werden Prozessrechte eingeschränkt. Der Kernel ist für die Separation der Prozesse und damit der Benutzer zuständig.

Obwohl heutige Desktopsysteme in der Regel nur von einem Benutzer gleichzeitig verwendet werden, sind sie als Mehrbenutzersystem ausgelegt. Nicht nur, weil dann mehrere Nutzer mit jeweils eigenen Präferenzen das System verwenden können. Zusätzlich werden die Systemdienste unter anonymen Benutzern gestartet. Jedem Systemdienst und jedem Benutzer können dadurch eigene, eingeschränkte Zugriffsrechte eingeräumt werden, die für die Arbeit nötig sind, wodurch sich die Systemsicherheit drastisch erhöht.

Trivia

Bei Commodore hieß der Kernel lange Zeit "Kernal". Gerüchten zufolge ergab sich das aus einem Schreibfehler in den Handbüchern zu den Commodore-Computern, der dann kurzerhand von Commodore als eigener Begriff für den Kernel erklärt und nachträglich als Backronym umgedeutet wurde: „Keyboard Entry Read, Network, And Link“.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Betriebssystemkern — Ein Betriebssystemkern oder Systemkern (englisch kernel [ˈkɝːnəl]) ist der zentrale Bestandteil eines Betriebssystems. In ihm ist die Prozess und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems… …   Deutsch Wikipedia

  • Betriebssystemkernel — Ein Betriebssystemkern oder Systemkern (engl. kernel [ˈkɝːnəl]) ist der zentrale Bestandteil eines Betriebssystems. In ihm ist die Prozess und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen.… …   Deutsch Wikipedia

  • Resurrection of the Little Match Girl — Filmdaten Deutscher Titel Resurrection of the Little Match Girl Originaltitel 성냥팔이 소녀의 재림 …   Deutsch Wikipedia

  • Terminator 3: Rise of the Machines — Filmdaten Deutscher Titel: Terminator 3 – Rebellion der Maschinen Originaltitel: Terminator 3: Rise of the Machines Produktionsland: USA Deutschland UK Erscheinungsjahr: 2003 Länge: 105 Minuten …   Deutsch Wikipedia

  • Terminator 3 - Rebellion der Maschinen — Filmdaten Deutscher Titel: Terminator 3 – Rebellion der Maschinen Originaltitel: Terminator 3: Rise of the Machines Produktionsland: USA Deutschland UK Erscheinungsjahr: 2003 Länge: 105 Minuten …   Deutsch Wikipedia

  • Terminator 3 – Rebellion der Maschinen — Filmdaten Deutscher Titel: Terminator 3 – Rebellion der Maschinen Originaltitel: Terminator 3: Rise of the Machines Produktionsland: USA Deutschland UK Erscheinungsjahr: 2003 Länge: 105 Minuten …   Deutsch Wikipedia

  • 64-Bit-Architektur — Unter 64 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 64 Bit beträgt. Inhaltsverzeichnis 1 Architekturen 2 Design 3 Vorteile 4 …   Deutsch Wikipedia

  • 64Bit-Architektur — Unter 64 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 64 Bit beträgt. Inhaltsverzeichnis 1 Architekturen 2 Design 3 Vorteile 4 Probleme …   Deutsch Wikipedia

  • 64 Bit-Architektur — Unter 64 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 64 Bit beträgt. Inhaltsverzeichnis 1 Architekturen 2 Design 3 Vorteile 4 Probleme …   Deutsch Wikipedia

  • CP/M — ist eine Reihe von Betriebssystemen, die ab etwa 1974 von Digital Research Inc. unter Gary Kildall entwickelt wurden. CP/M war (neben dem für leistungsstärkere Rechner konzipierten Unix) das erste plattformunabhängige Betriebssystem. Eine… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”