Gibt es eine gute Beschreibung des „Systemaufruf“ Mechanismus in OSes verwendet? [geschlossen]

StackOverflow https://stackoverflow.com/questions/126976

Frage

Ich bin für eine gute Grundierung oder technische Beschreibung des Systemaufruf Mechanismus, der von Betriebssystemen verwendet wird von User-Space auf den Kernel, um den Übergang Funktionen aufzurufen, wie „offen“, „lesen “, "schreiben", etc ...

Gibt es etwas anderes als die Wikipedia Eintrag? Webseiten, PDF-Dateien, Bücher, Quellcode, alle sind willkommen:)

War es hilfreich?

Lösung

Nun für Quellcode, gibt es viele Open-Source-Kernel in tauchen.

Wie für Bücher, Robert Love Buch auf dem Linux-Kernel ist sehr informativ.

Andere Tipps

Die genaue Methode ist abhängig von der Prozessorarchitektur und welchen Operationen sie definieren für die Übertragung von dem Kernelmodus. Ein Ansatz, und die traditionellen auf x86, war ein Software-Interrupt zu verwenden. Es stellt sich heraus, das für den allgemeinen Fall so später nicht sehr schnell war, hinzugefügt Intel und AMD SYSCALL hinzugefügt SYSENTER. Windows XP und später eine entsprechende Systemaufruf Technik für die Plattform wählen, beim Booten.

Sie könnten wählen, um spezifische Software-Nummern für bestimmte Funktionen unterbrechen verwenden, aber in der Regel der Prozessor nicht genügend Interrupts alle Systemfunktionen abzudecken, so dass es notwendig ist, eines der Register der Funktionsnummer erforderlich enthalten zu machen. Wenn Sie das sowieso tun, es ist nicht viel von einer Not nur die einer Systemaufruf-Funktion zu verwenden.

Windows CE, vor Version 6.0 verwendet ein Side-by-Side-Prozess virtuelles Adressmodell, das Prozess tatsächlich ermöglicht direkt ineinander zu nennen. Der Seitenschutz ist so eingerichtet, dass, wenn dies geschehen ist, kann eine Zugriffsverletzung Fehler auftritt: Die Kernel Kontrolle gerät, legt den Prozessadressraum nach oben (dem genannten Verfahren in dem Schlitz 0 bewegt), fixiert auf Slot-0-basierte Argumente Punkt zu dem anrufenden Prozess und kehrt in dem Benutzermodus. Da die Absenderadresse in einem anderen Prozess ist, wenn der Funktionsaufruf zurückkehrt, tritt der umgekehrte Prozess. Leider nur dieses Modell für jeden Prozess (32 MB) und eine geringe Anzahl von Prozessen (32), so Windows CE 6.0 kehrt zu einem herkömmlichen System Rufmodells sehr kleine Räume virtuelle Adresse erlaubt.

Sie können einen Blick auf die Minix-Kernel haben wollen. Es ist Open Source, einfach konzipiert sein und ist in vielen Uni-Level-O Kurse verwendet. Haben Sie einen graben um in /usr/src/kernel/proc.c vor allem die sys_call Funktion und die umliegenden Funktionalität. Beachten Sie, dass minix ein Mikro-Kernel ist, so können einige Dinge sein Subtilität anders, was Sie gewohnt sind.

Wenn Sie ein Buch kaufen möchten, die für * nix-Programmierung extrem nützlich ist. Ich würde „Advanced Programming in der UNIX-Umgebung“ von Stevens und Rago empfehlen. Es hat in der Tiefen Erklärungen und Codebeispielen.

Für eine gute Erklärung von Systemaufrufen in Linux, Blick auf die Probe Gerätetreiber in Linux Device Drivers .

Es ist Architektur abhängig und erfordert ein Verständnis von Computerarchitektur. Tanenbaum „Structured Computer-Organisation“ hat eine gute Übersicht über die Grundlagen eines Systemaufrufs. Für weitere Informationen, lesen Sie jedes Lehrbuch über Betriebssystem-Design.

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