どうやってシステムコール動作しますか?
システムコール中に行われる操作は何ですか?など、
さまざまなシステムコールがありますopen , read, write, socket
。一般的にどのように動作するのか知りたいです。
ベストアンサー1
簡単に言うと、システムコールは次のように機能します。
- まず、ユーザー アプリケーション プログラムはシステム コールの引数を設定します。
- 引数がすべて設定された後、プログラムは「システム コール」命令を実行します。
この命令により、例外:プロセッサを新しいアドレスにジャンプさせ、そこでコードの実行を開始させるイベント。
新しいアドレスの命令は、ユーザー プログラムの状態を保存し、必要なシステム コールを判断し、そのシステム コールを実装するカーネル内の関数を呼び出し、ユーザー プログラムの状態を復元し、制御をユーザー プログラムに戻します。
システム コールを呼び出すユーザー アプリケーションの視覚的な説明open()
:
システム コール インターフェイス (オペレーティング システムによって使用可能になるシステム コールへのリンクとして機能します) は、OS カーネルで目的のシステム コールを呼び出し、システム コールのステータスと戻り値を返すことに注意してください。呼び出し側は、システムコールがどのように実装されているか、実行中に何が行われるかについて何も知る必要はありません。別の例:
Cプログラムがprintf()
ライブラリ呼び出しを呼び出し、それがwrite()
システムコールを呼び出す
より詳しい説明については、CH-1のセクション1.5.1とCH-2のセクション2.3を参照してください。オペレーティング システムの概念。