Frage

Ich lerne für mein Betriebssystem endgültig und wundere mich, wenn mir jemand sagen könnte, warum das Betriebssystem für syscalls in Kernel-Modus wechseln muss?

War es hilfreich?

Lösung

Ein syscall verwendet wird speziell ein Betriebs im Kernel-Modus ausgeführt, da die üblichen Benutzercode nicht erlaubt ist, diese Gründe für die Sicherheit zu tun.

Zum Beispiel, wenn Sie Speicher zuweisen wollen, das Betriebssystem ist privilegiert, es zu tun (da es die Seitentabellen kennt und durfte Speicher anderer Prozesse zuzugreifen), aber Sie als ein Anwenderprogramm nicht erlaubt sein sollen peek oder die Erinnerung an anderen Prozessen ruinieren. Es ist ein Weg, um Sie über Sandbox. So haben Sie eine syscall senden Sie das Betriebssystem anfordert Speicher zuzuweisen, und das geschieht auf Kernel-Ebene.

Edit: Ich sehe jetzt, dass der Wikipedia-Artikel auf diesem überraschend nützlich ist

Andere Tipps

Da diese „Hausaufgaben“ markiert ist, werde ich nicht nur die Antwort weg geben aber einen Hinweis bieten:

Der Kernel ist verantwortlich für die Hardware des Computers zugreifen und sicherzustellen, dass Anwendungen nicht Schritt aufeinander. Was würde passieren, wenn eine Anwendung ein Hardware-Gerät zugreifen kann (zum Beispiel der Festplatte) ohne die Mitwirkung des Kernels?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top