Was ist der Benutzermodus im Vergleich zum Kernelmodus in Windows?

Sie haben vielleicht schon von Anwendungen gehört, die im „Kernel“- oder „Benutzer“-Modus laufen. Es hängt alles davon ab, wie Betriebssysteme funktionieren, wenn sie ihre Arbeit erledigen. Sobald Sie das verstanden haben, ist es einfach, den Unterschied zwischen Benutzermodus und Kernelmodus zu verstehen.

Verstehen, was ein Betriebssystem tut(Does)

Ein Computer besteht aus Hardware, den elektronischen Komponenten, und Software, dem Computercode, der von dieser Hardware ausgeführt wird. Weniger klar ist jedoch, wie sie zusammenarbeiten.

Das wichtigste Element eines Computers ist das Bit oder die „Binärziffer“. „Alles(” Everything) , was ein Computer tut, wird als Einsen und Nullen dargestellt. Verschiedene(Different) Computerkomponenten stellen Bits auf unterschiedliche Weise dar. In einer CPU stellen mikroskopisch kleine Transistoren Einsen und Nullen dar, indem sie entweder ein- oder ausgeschaltet sind. Diese Transistoren sind in logischen Strukturen angeordnet, die als Logikgatter bezeichnet werden.

In elektronischen Computerspeichern werden Bits durch Speicherzellen dargestellt, die entweder eine Ladung über oder unter einem bestimmten Schwellenwert haben. Auf einer mechanischen Festplatte werden Bits als magnetische Schwankungen dargestellt, die auf einer sich drehenden Platte gemessen werden. Auf optischen Discs erfüllen Pits und Lands, die Laserlicht reflektieren oder nicht, die gleiche Aufgabe. 

Unabhängig davon, wie die physische Darstellung des Binärcodes erreicht wird, können Sie schließlich alle Verbrauchercomputerkomponenten auf diesen rohen Maschinencode reduzieren.

Wie gelangt man also von der benutzerfreundlichen Schnittstelle eines Computers zu den rohen Low-Level-Prozessen im Computer selbst? Hier kommt das Betriebssystem ins Spiel. Es steuert direkt die Hardware des Computers. 

Diese Software übersetzt alles, was Anwendungen (und damit der Benutzer) wollen, in Maschinencodeanweisungen, die die CPU und andere Komponenten verstehen. Das kritischste Stück Software in diesem Prozess ist der Kernel.

Was ist der Kern?

Der Kernel ist, wie der Name schon sagt, der Kern des Betriebssystems. Der Kernel ist eine Software, die sich im RAM befindet und alles steuert, was der Computer tut. Wenn etwas in den Speicher geschrieben wird, steuert der Kernel die Ausführung.

Der Kernel weiß, wie er sich mit Hardware wie GPUs und Netzwerkkarten verbindet, aber er weiß möglicherweise nicht, wie er sie mit ihrem vollen Potenzial betreiben kann, da er sich auf generische Standards in der Computerindustrie verlässt.

Hier kommen die Hardwaretreiber ins Spiel. Treiber teilen Ihrem Betriebssystem mit, wie es mit bestimmten Komponenten arbeiten soll, weshalb Sie beispielsweise für Nvidia- und AMD-GPUs unterschiedliche Treiber benötigen .

Ausgestattet mit den richtigen Treibern ist der Kernel die ultimative Autorität innerhalb des Computers, einschließlich der Ausführung von Dingen, die Daten katastrophal zerstören können.

Die Rolle(Role) von Anwendungsprogrammierschnittstellen(Application Programming Interfaces) ( APIs )

Zu Zeiten von MS-DOS mussten Softwareentwickler ihre Software speziell für die Hardware des Benutzers schreiben. Das bekannteste Beispiel dafür auf MS-DOS- Systemen waren Soundkartentreiber.

Ein bestimmtes Videospiel müsste die beliebtesten Karten ( Sound Blaster , Ad-lib , Gravis Ultrasound usw.) unterstützen und hoffen, dass die meisten Spieler abgedeckt sind. Heute funktionieren die Dinge dank APIs ganz anders .

Microsoft DirectX ist ein großartiges Beispiel. Wenn Sie eine ausführliche Erklärung wünschen, lesen Sie Was ist DirectX und warum ist es wichtig? (What Is DirectX and Why Is It Important?)Das Wichtigste ist jedoch, dass die API Softwareentwicklern eine Standardmethode bietet, um Hardwareressourcen von Komponenten wie der GPU anzufordern(GPU) . Darüber hinaus müssen Hardwarehersteller nur sicherstellen, dass ihre Produkte mit DirectX kompatibel sind, um die volle Kompatibilität mit jeder ebenfalls kompatiblen Software sicherzustellen.

APIs bieten eine Übersetzungsebene zwischen Softwareanwendungen und dem Low-Level-Kernel mit seinen Hardwaretreibern. Ja, dies ist mit einer leichten Leistungseinbuße verbunden. Auf modernen Computern ist dies jedoch vernachlässigbar und bringt eine Reihe von Vorteilen mit sich, wo wir schließlich zum Benutzermodus und Kernelmodus kommen.

Benutzermodus vs. Kernelmodus

Moderne Betriebssysteme führen Hunderte oder Tausende von "Prozessen" gleichzeitig aus und geben ihnen dynamisch CPU -Zeit nach Bedarf, basierend auf ihren Prioritäten und Rechenleistungsanforderungen.

Wenn Sie eine Anwendung starten, generiert sie Prozesse, und die CPU kann sie entweder im Benutzermodus oder im Kernelmodus ausführen.

Ein im Benutzermodus ausgeführter Windows -Prozess hat nur Zugriff auf seinen eigenen privaten virtuellen Speicheradressraum und seine Handle-Tabelle. Die Software verwendet diese Tabellen, um Daten im RAM zu speichern und Ressourcen anzufordern. Es gibt keinen direkten Zugriff auf Speicher oder andere Hardware, und es ist Aufgabe des Betriebssystems, diese virtuellen Räume der tatsächlichen Hardware des Computers zuzuordnen.

Das ist aus vielen Gründen gut, aber der wichtigste Vorteil ist, dass die Anwendung keine Daten außerhalb ihres virtuellen Speicheradressraums überschreiben oder ändern kann. Darüber hinaus sind bestimmte Funktionen für Prozesse im Benutzermodus gesperrt, hauptsächlich solche, die das System zum Absturz bringen oder Daten zerstören könnten.

Wenn ein Prozess gestartet oder in den Kernelmodus versetzt wird, hat er vollen Zugriff auf Systemressourcen, sogar auf die, die für das Betriebssystem reserviert sind. Theoretisch könnte es also wichtige Daten überschreiben, die das Betriebssystem benötigt, um ordnungsgemäß zu funktionieren.

Fallen und Ausnahmen

Es ist wichtig zu verstehen, dass diese beiden Modi auf Hardwareebene von der CPU selbst erzwungen werden. Wenn eine Anwendung, die im Benutzermodus ausgeführt wird, versucht, etwas zu tun, das einen Zugriff im Kernelmodus erfordert, generiert sie eine „Falle“ oder „Ausnahme“. Das Betriebssystem kümmert sich dann um die Anwendung, normalerweise indem es sie herunterfährt und ein Absturzprotokoll erstellt, damit die Entwickler sehen können, was im Speicher passiert ist, als die Dinge aus dem Ruder gelaufen sind.

Die Gefahren(Dangers) des Kernel-Modus(Kernel Mode) : Der blaue Bildschirm(Blue Screen) des Todes(Death)

Wenn Sie jemals einen Blue Screen of Death erlebt haben (wer hat das nicht?), der Ihren Computer gezwungen hat, sich auszuschalten oder neu zu starten, besteht eine gute Chance, dass ein Kernel-Modus-Prozess schuld war.

Wenn ein Prozess im Kernelmodus etwas tut, was er nicht tun soll, kann das Betriebssystem sich nicht davon erholen, und der gesamte Computer hält an. Wenn ein Prozess im Benutzermodus durcheinander gerät, stürzt nur die Anwendung ab und der Rest der Software und des Betriebssystems können ohne Probleme weiterlaufen.

Dies ist ein Bereich, in dem APIs eine wesentliche Rolle spielen, da es die API ist , die nach Kernelmodus-Privilegien fragt. Anwendungen im Benutzermodus delegieren im Wesentlichen Anfragen, für die Kernelmodus-Privilegien erforderlich gewesen wären, an die API .

Aus diesem Grund wird der Kernelmodus normalerweise nur Systemprozessen auf niedriger Ebene gewährt, die direkt auf die Hardware des Computers zugreifen müssen. Normalerweise wird dieses Privileg auf einen Prozess ausgedehnt, da er mehr Leistung benötigt, als der Benutzermodus bereitstellen kann. Einige CPU -Anweisungen funktionieren nur im Kernel-Modus. Wenn also ein Prozess diese Funktionen verwenden muss, muss er erhöht werden.

Wenn Sie Probleme mit dem Blue Screen of Death haben, lesen Sie unbedingt unseren Blue Screen of Death-Fehlerbehebungsleitfaden für Windows 10(Blue Screen of Death Troubleshooting Guide for Windows 10) !



About the author

"Ich bin ein freiberuflicher Windows- und Office-Experte. Ich habe über 10 Jahre Erfahrung in der Arbeit mit diesen Tools und kann Ihnen helfen, das Beste aus ihnen herauszuholen. Zu meinen Fähigkeiten gehören: Arbeiten mit Microsoft Word, Excel, PowerPoint und Outlook; Erstellen von Web Seiten und Anwendungen und hilft Kunden dabei, ihre Geschäftsziele zu erreichen."



Related posts