私は内部構造をよりよく知るために、単純なオペレーティングシステムを開発しています。 Boot loader
と、16-bit Real Mode
で実行される単純なカーネルの開発では、私はよく知られていない用語System Call
と使い慣れたInterrupt
に出くわしました。システムコールと割り込みの実装はどのように異なっていますか?
私は概念がまだ私には不明であることを見つけるためにのみ、用語をグーグルしています。私が理解している限り、システムコールはleast privileged mode
で動作するアプリケーションプログラムによって、Higher Privileged mode(Ring 0)
で動作するカーネルへのサービスを要求するために使用されます。
システムコールの実装方法はまだ不明です。
と言って、私はprint a word
にSimple Cプログラムを作成してコンパイルしています。今、私は画面上の指定された単語を印刷するシステムコールを含む実行可能ファイルが残っています。次のように与えられたシナリオに対応する私の質問は以下のとおりです。
質問1:
とすぐにプログラムが実行され、システムコールは、リクエストのカーネルに知らせる - まさに低レベルの観点から、ここで何が起こりますプログラミング?
質問2:
割り込みは、システムコールまたはその逆のことができますか?
私が概念をはっきりと理解していないと思われる場合は、「システムコールの概念」を説明してください。
ありがとうございます。
リアルタイムモードの特権レベルはありません。システムコールは、OSを呼び出すための一般的な用語です。システムコールですが、x86も持っています( '' syscall'、 '' sysenter')に特化した指示です。 – Jester
システムコールと割り込みは同じ意味ですか? –
いいえ、同じではありません。割り込みはシステムコールを実装するために使用できますが、それはその主要な目的ではありません。 – Jester