Heim  >  Artikel  >  Welche Schnittstelle stellt das Betriebssystem Programmierern zur Verfügung?

Welche Schnittstelle stellt das Betriebssystem Programmierern zur Verfügung?

青灯夜游
青灯夜游Original
2020-07-23 14:31:1119589Durchsuche

Die vom Betriebssystem für Programmierer bereitgestellte Schnittstelle ist: Systemaufruf. Systemaufrufe sind eine Sammlung aller Systemaufrufe, die von der Betriebssystemimplementierung bereitgestellt werden, d. h. der Programmschnittstelle oder Application Programming Interface (API); es handelt sich um die Schnittstelle zwischen dem Anwendungsprogramm und dem System.

Welche Schnittstelle stellt das Betriebssystem Programmierern zur Verfügung?

Systemaufruf ist die einzige Schnittstelle, die das Betriebssystem Programmierern zur Verfügung stellt.

Die Hauptfunktion des Betriebssystems besteht darin, Hardwareressourcen zu verwalten und eine gute Umgebung für Anwendungsentwickler bereitzustellen, um Anwendungen besser kompatibel zu machen. Um diesen Zweck zu erreichen, bietet der Kernel eine Reihe von Multi-Kernel-Funktionen mit vorgegebenen Funktionen werden dem Benutzer über eine Reihe von Schnittstellen präsentiert, die Systemaufrufe (Systemaufruf) genannt werden. Der Systemaufruf leitet die Anforderung der Anwendung an den Kernel weiter, ruft die entsprechende Kernelfunktion auf, um die erforderliche Verarbeitung abzuschließen, und gibt das Verarbeitungsergebnis an die Anwendung zurück.

Moderne Betriebssysteme verfügen meist über Multitasking-Fähigkeiten, die meist durch Prozesse umgesetzt werden. Da das Betriebssystem die Ausführung zwischen den einzelnen Prozessen schnell umschaltet, scheint alles gleichzeitig abzulaufen.

Gleichzeitig bringt dies auch viele Sicherheitsprobleme mit sich. Beispielsweise kann ein Prozess leicht die Daten im Speicherbereich des Prozesses ändern, was dazu führt, dass ein anderer Prozess abnormal wird oder bestimmte Ziele erreicht Das System muss sicherstellen, dass jeder Prozess sicher ausgeführt werden kann. Die Lösung für dieses Problem besteht darin, dem Prozessor Basisregister und Grenzregister hinzuzufügen.

Der Inhalt dieser beiden Register verwendet Hardware, um die Adresse des Speichers zu begrenzen, auf den der Speicherzugriffsbefehl zugreift. Wenn das System Prozesse wechselt, können auf diese Weise die Inhalte dieser beiden Register in den dem Prozess zugewiesenen Adressbereich geschrieben werden, wodurch Malware vermieden wird.

Um zu verhindern, dass Benutzerprogramme den Inhalt des Basisregisters und des Begrenzungsregisters für den Zugriff auf andere Speicherbereiche ändern, muss auf diese beiden Register über einige spezielle Anweisungen zugegriffen werden. Normalerweise verfügt der Prozessor über zwei Modi: „Benutzermodus“ und „Kernelmodus“, und ein Tag-Bit wird verwendet, um zu identifizieren, in welchem ​​Modus er sich gerade befindet. Einige Anweisungen wie das Ändern des Inhalts des Basisadressregisters können nur im Kernelmodus ausgeführt werden. Im Benutzermodus überspringt die Hardware diese Anweisung direkt und führt die nächste aus.

In ähnlicher Weise sind aus Sicherheitsgründen einige E/A-Operationsanweisungen nur auf die Ausführung im Kernelmodus beschränkt. Daher muss das Betriebssystem Schnittstellen bereitstellen, um Anwendungen mit Funktionen wie dem Lesen von Daten von einem bestimmten Standort aus zu versorgen Auf der Festplatte werden diese Schnittstellen als Systemaufrufe bezeichnet.

Wenn das Betriebssystem die Systemaufrufanforderung empfängt, wechselt der Prozessor in den Kernelmodus, um nach der Verarbeitung des Systemaufrufinhalts Anweisungen wie E/A-Vorgänge auszuführen und den Inhalt des Basisadressregisters zu ändern , die Operation Das System kehrt den Prozessor in den Benutzermodus zurück, um Benutzercode auszuführen.

Weitere Informationen zu diesem Thema finden Sie unter: PHP-Website für Chinesisch!

Das obige ist der detaillierte Inhalt vonWelche Schnittstelle stellt das Betriebssystem Programmierern zur Verfügung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn