In der Informatik Ein Kernel ist ein Computerprogramm, das den Kern oder das Herzstück eines Betriebssystems darstellt. Bevor wir den Kernel im Detail besprechen, wollen wir zunächst seine Grundlagen verstehen, d. h. das Betriebssystem in einem Computer.
vergleichbare Saite
Betriebssystem
Ein Betriebssystem oder OS ist eine Systemsoftware, die als Schnittstelle zwischen Hardwarekomponenten und dem Endbenutzer fungiert. Es ermöglicht die Ausführung anderer Programme. Jedes Computersystem, ob Desktop, Laptop, Tablet oder Smartphone, muss über ein Betriebssystem verfügen, um grundlegende Funktionen für das Gerät bereitzustellen. Einige weit verbreitete Betriebssysteme sind Windows , Linux , MacOS, Android, iOS usw.
Was ist der Kernel im Betriebssystem?
- Wie oben erläutert, ist der Kernel der Kernbestandteil eines Betriebssystems; Daher hat es die volle Kontrolle über alles im System. Jeder Betrieb von Hardware und Software wird vom Kernel verwaltet und verwaltet.
- Es fungiert als Brücke zwischen Anwendungen und Datenverarbeitung auf Hardwareebene. Es ist die zentrale Komponente eines Betriebssystems.
- Es ist der Teil des Betriebssystems, der sich immer im Computerspeicher befindet und die Kommunikation zwischen Software- und Hardwarekomponenten ermöglicht.
- Es ist das Computerprogramm, das beim Systemstart zuerst geladen wurde (nach dem Bootloader). Sobald es geladen ist, verwaltet es die verbleibenden Startvorgänge. Es verwaltet auch Speicher-, Peripherie- und E/A-Anfragen von Software. Darüber hinaus übersetzt es alle I/O-Anfragen in Datenverarbeitungsanweisungen für die CPU. Es verwaltet auch andere Aufgaben wie z B. Speicherverwaltung, Aufgabenverwaltung und Festplattenverwaltung .
- Ein Kernel wird gespeichert und normalerweise in einen separaten Speicherbereich geladen, der als „Kernel“ bezeichnet wird Geschützter Kernel-Bereich. Es ist vor dem Zugriff durch Anwendungsprogramme oder weniger wichtige Teile des Betriebssystems geschützt.
- Andere Anwendungsprogramme wie Browser, Textverarbeitungsprogramme, Audio- und Videoplayer nutzen separaten Speicherplatz, der sogenannte „ Benutzerbereich.
- Aufgrund dieser beiden getrennten Räume stören sich Benutzerdaten und Kerneldaten nicht gegenseitig und verursachen keine Instabilität und Langsamkeit.
Funktionen eines Kernels
Ein Kernel eines Betriebssystems ist für die Ausführung verschiedener Funktionen verantwortlich und hat die Kontrolle über das System. Nachfolgend sind einige Hauptaufgaben des Kernels aufgeführt:
Um verschiedene Aktionen auszuführen, benötigen Prozesse Zugriff auf Peripheriegeräte wie Maus, Tastatur usw., die an den Computer angeschlossen sind. Ein Kernel ist für die Steuerung dieser Geräte mithilfe von Gerätetreibern verantwortlich. Hier ein Gerätetreiber ist ein Computerprogramm, das dem Betriebssystem hilft oder es ermöglicht, mit jedem Hardwaregerät zu kommunizieren.
Ein Kernel führt eine Liste aller verfügbaren Geräte. Diese Liste ist möglicherweise bereits bekannt, vom Benutzer konfiguriert oder vom Betriebssystem zur Laufzeit erkannt.
Der Kernel hat die volle Kontrolle über den Zugriff auf den Arbeitsspeicher des Computers. Jeder Prozess benötigt etwas Speicher, um zu funktionieren, und der Kernel ermöglicht den Prozessen einen sicheren Zugriff auf den Speicher. Um den Speicher zuzuweisen, wird der erste Schritt als bezeichnet virtuelle Adressierung, Dies erfolgt durch Paging oder Segmentierung. Virtuelle Adressierung ist ein Prozess, bei dem den Prozessen virtuelle Adressräume bereitgestellt werden. Dies verhindert, dass die Anwendungen ineinander stürzen.
Eine der wichtigen Funktionen des Kernels besteht darin, die Ressourcen zwischen verschiedenen Prozessen zu teilen. Es muss die Ressourcen so teilen, dass jeder Prozess einheitlich auf die Ressource zugreift.
Der Kernel bietet auch eine Möglichkeit zur Synchronisierung und Interprozesskommunikation (IPC). Es ist für den Kontextwechsel zwischen Prozessen verantwortlich.
Ein Kernel ist für den Zugriff auf Computerressourcen wie RAM und E/A-Geräte verantwortlich. RAM oder Direktzugriffsspeicher wird verwendet, um sowohl Daten als auch Anweisungen zu enthalten. Jedes Programm muss zur Ausführung auf den Speicher zugreifen und benötigt meist mehr Speicher als verfügbar ist. In einem solchen Fall spielt der Kernel seine Rolle und entscheidet, welchen Speicher jeder Prozess nutzt und was zu tun ist, wenn der erforderliche Speicher nicht verfügbar ist.
Der Kernel verteilt auch die Anforderung von Anwendungen, E/A-Geräte wie Tastaturen, Mikrofone, Drucker usw. zu verwenden.
Arten von Kerneln
Es gibt hauptsächlich fünf Kerneltypen, die im Folgenden aufgeführt sind:
1. Monolithische Kernel
In einem monolithischen Kernel ist der Für die Implementierung von Benutzerdiensten und Kerneldiensten wird derselbe Speicherplatz verwendet.
Dies bedeutet, dass bei diesem Kerneltyp kein unterschiedlicher Speicher für Benutzerdienste und Kerneldienste verwendet wird.
Da der gleiche Speicherplatz verwendet wird, erhöht sich die Größe des Kernels und damit auch die Gesamtgröße des Betriebssystems.
Die Ausführung von Prozessen ist außerdem schneller als bei anderen Kerneltypen, da kein separater Benutzer- und Kernelraum verwendet wird.
Beispiele von monolithischen Kerneln sind Unix, Linux, Open VMS, XTS-400 usw.
Vorteile:
Windows-Befehl arp
- Auch die Ausführung von Prozessen erfolgt schneller, da kein separater User-Space und Kernel-Space vorhanden ist und weniger Software erforderlich ist.
- Da es sich um eine einzelne Software handelt, sind sowohl die Quellen als auch die kompilierten Formen kleiner.
Nachteile:
- Wenn ein Dienst einen Fehler generiert, kann dies zum Absturz des gesamten Systems führen.
- Diese Kernel sind nicht portierbar, was bedeutet, dass sie für jede neue Architektur neu geschrieben werden müssen.
- Groß und daher schwierig zu handhaben.
- Um einen neuen Dienst hinzuzufügen, muss das komplette Betriebssystem geändert werden.
2. Mikrokernel
Ein Mikrokernel wird auch als bezeichnet MK und unterscheidet sich von einem herkömmlichen Kernel oder monolithischen Kernel. In diesem, Benutzerdienste und Kerneldienste werden in zwei verschiedenen Adressräumen implementiert: Benutzerraum und Kernelraum . Da für beide Dienste unterschiedliche Speicherbereiche verwendet werden, verringert sich die Größe des Mikrokernels und damit auch die Größe des Betriebssystems.
Mikrokernel sind im Vergleich zu monolithischen Kerneln einfacher zu verwalten und zu warten. Wenn es jedoch zu einer größeren Anzahl von Systemaufrufen und Kontextwechseln kommt, kann dies die Leistung des Systems beeinträchtigen, indem es langsamer wird.
Diese Kernel verwenden ein Nachrichtenübermittlungssystem zur Bearbeitung der Anfrage von einem Server an einen anderen Server.
Nur einige wesentliche Dienste werden von Mikrokerneln bereitgestellt, z. B. die Definition von Speicheradressräumen, IPC (Interprocess Communication) und Prozessmanagement. Andere Dienste wie Netzwerkdienste werden nicht vom Kernel bereitgestellt und von einem User-Space-Programm namens verwaltet Server .
Was ist in Python?
Einer der Hauptnachteile monolithischer Kernel, dass ein Fehler im Kernel das gesamte System zum Absturz bringen kann, kann im Mikrokernel behoben werden. Wie bei einem Mikrokernel kann bei einem Absturz eines Kernelprozesses der Absturz des gesamten Systems immer noch durch einen Neustart der fehlerhaften Dienste verhindert werden.
Beispiele von Microkernel sind L4, AmigaOS, Minix, K42 , usw.
Vorteile
- Mikrokernel können einfach verwaltet werden.
- Ein neuer Dienst kann einfach hinzugefügt werden, ohne das gesamte Betriebssystem zu ändern.
- Wenn in einem Mikrokernel ein Kernelprozess abstürzt, ist es immer noch möglich, den Absturz des gesamten Systems zu verhindern.
Nachteile
- Es besteht ein höherer Bedarf an Software für die Schnittstellen, was die Systemleistung verringert.
- Prozessmanagement ist sehr kompliziert.
- Die Messaging-Fehler sind schwer zu beheben.
3. Hybridkernel
Hybridkernel werden auch als Hybridkernel bezeichnet modulare Kernel , und es ist die Kombination von Monolithic und Microkernels. Es nutzt die Geschwindigkeit monolithischer Kernel und die Modularität von Mikrokerneln.
Unter einem Hybridkernel versteht man die erweiterte Version eines Mikrokernels mit zusätzlichen Eigenschaften eines monolithischen Kernels. Diese Kernel werden häufig in kommerziellen Betriebssystemen verwendet, beispielsweise in verschiedenen Versionen von MS Windows.
Es ähnelt stark einem Mikrokernel, enthält jedoch auch zusätzlichen Code im Kernel-Bereich, um die Leistung des Systems zu verbessern.
Hybridkernel ermöglichen die Ausführung einiger Dienste, z Netzwerkstapel im Kernelraum um die Leistung im Vergleich zu einem herkömmlichen Mikrokernel zu reduzieren, ermöglicht es aber dennoch, Kernel-Code (z. B. Gerätetreiber) als Server im Benutzerbereich auszuführen.
Beispiele für Hybridkernel sind Windows NT, Netware, BeOS usw.
Vorteile:
- Zum Testen ist kein Neustart erforderlich.
- Technologie von Drittanbietern kann schnell integriert werden.
Nachteile:
Bourne-Again-Shell
- Es besteht die Möglichkeit, dass mehr Fehler durch mehr Schnittstellen passieren.
- Für einige Administratoren kann die Pflege der Module eine verwirrende Aufgabe sein, insbesondere wenn es um Probleme wie Symbolunterschiede geht.
4. Nanokernel
Wie der Name schon sagt, Im Nanokernel ist der gesamte Code des Kernels sehr klein, was bedeutet, dass der Code, der im privilegierten Modus der Hardware ausgeführt wird, sehr klein ist . Hier definiert der Begriff Nano einen Kernel, der eine Taktauflösung im Nanosekundenbereich unterstützt.
Beispiele für Nanokernel sind EROS usw.
Vorteile
Instanziierung in Java
- Es bietet Hardware-Abstraktionen auch bei sehr geringer Größe.
Nachteile
- Nanokernel fehlen Systemdienste.
5. Exokernel
Exokernel befindet sich noch in der Entwicklung und ist der experimentelle Ansatz für die Entwicklung von Betriebssystemen.
Dieser Kerneltyp unterscheidet sich von anderen Kerneln wie folgt: Der Ressourcenschutz wird von der Verwaltung getrennt gehalten, was uns die Durchführung anwendungsspezifischer Anpassungen ermöglicht.
Vorteile:
- Das Exokernel-basierte System kann mehrere Bibliotheksbetriebssysteme integrieren. Jede Bibliothek exportiert eine andere API, beispielsweise kann eine für die High-Level-UI-Entwicklung und die andere für die Echtzeitsteuerung verwendet werden .
Nachteile:
- Das Design des Exokernels ist sehr komplex.
Was ist Kernel-Panik?
Wie wir bereits besprochen haben, kontrolliert dieser Kernel das gesamte Computersystem; Wenn es also abstürzt, kann es das gesamte System lahmlegen. Unter MacOS und Linux ist ein solches unerwünschtes Ereignis bekannt als „ Kernel-Panik.' Um die Kernel-Panik zu beheben, müssen wir das System neu starten.
Normalerweise werden diese Kernel-Paniken durch Hardware-Kommunikationsprobleme verursacht. Wenn also wiederholt Kernel-Panik auftritt, versuchen Sie, die weniger benötigten oder unnötigen Geräte auszustecken und prüfen Sie, ob das Problem behoben ist oder nicht.