Nach meinem Verständnis stellt der Kernel die Verbindung zwischen Software und Hardware her, und daher muss der Kernel Systemaufrufe von Betriebssystemanwendungen leiten, richtig? Würden unterschiedliche E / A-Adresszuordnungen bedeuten, dass der Kernel anders programmiert werden muss? Lesen Sie weiter unten, da ich nicht glaube, dass ich diese Frage sehr genau formuliert habe.
Lassen Sie mich näher darauf eingehen, und korrigieren Sie mich bitte, wenn ich mich irre, da ich so verstanden habe, was in mehreren Artikeln angegeben wurde. Ich werde die x86-Familie als Basis für meine Beispiele verwenden. x86-Prozessoren verwenden den Befehl INT sowie einen Index namens Interrupt Vector Table, um eine INT-ID dem richtigen Speicherort der gewünschten Routine zuzuordnen (Routine und IVT im BIOS, richtig?). Die Routinen selbst sind so geschrieben, dass sie der für ein Computersystem spezifischen Hardware befehlen können, eine Aufgabe basierend auf dem Protokoll der verwendeten Hardware auszuführen. Auf diese Weise kann das Betriebssystem Systemaufrufe tätigen und mit der Hardware kommunizieren, ohne die systemspezifische Hardware oder E / A-Zuordnung zu kennen. Für die Kommunikation des Betriebssystems mit der Hardware ist lediglich die ID des gewünschten ISR erforderlich. Da der Kernel das Bindeglied zwischen Hardware und Software ist, müssen die Anwendungen, die vom Betriebssystem ausgeführt werden, nicht einmal die ISR-ID # kennen. Sie teilen dem Kernel einfach mit, dass sie beispielsweise Daten X auf die Festplatte schreiben möchten. Der Kernel leitet Daten X an den richtigen ISR weiter, der die Daten dann auf die Festplatte schreibt. Also würden zwei Systeme, die völlig identisch sind, außer dass sie unterschiedliche ISR-IDs für unterschiedliche Aufgaben verwenden, leicht unterschiedliche Kernel erfordern?
Und würde das auch bedeuten, dass der Bootsektor, der den Kernel lädt, auch von der Zuordnung der ISR-ID abhängt, da Systemaufrufe zum Lesen von der Festplatte erforderlich wären, um den Kernel zu laden?
Ich entschuldige mich, wenn dies am falschen Ort ist, aber ich habe gelesen, dass dies der richtige Ort für Hardware-bezogene Fragen ist. Vielen Dank!