システムコール(System Call)とは何か?標準ライブラリとの違い

スポンサーリンク
OS
スポンサーリンク

システムコール (System Call) とは

システムコールとは、オペレーティングシステム (OS、より明確に言えばOSのカーネル) の機能を呼び出すために使用される機構のことです。

 

実際のプログラミングにおいては、OSの機能は関数 (API、Application Programming Interface) 呼び出しによって実現されるので、OSの備える関数 (API) のことを指します。

 

 

システムコールと標準ライブラリの違い

C言語で使用できるfopen()やmalloc()などのライブラリ関数が標準ライブラリです。

これらの関数内においてシステムコール (例えばPOSIX準拠のOSであればopen()やsbrk()など)を呼び出しています。

open()やsbrk()がシステムコールです。

 

デバイスドライバ

デバイスドライバ (ドライバ)とは、画像ディスプレイモニター、プリンターやイーサネットボード、拡張カードやその他周辺機器など、パソコンに接続されているハードウェアなどをOSによって制御可能にするために用意された、ソフトウェアのことです。

Windowsでは、デバイスドライバはカーネルモード (x86 CPU のリング0) またはユーザーモード(x86 CPU のリング3) で動作します。

ドライバをユーザーモードで動作させる最大の利点は安定性の向上であり、ユーザーモードのデバイスドライバは品質が悪くてもカーネルメモリを上書きしてシステムをクラッシュさせるということがありません。

 

 

コメント

タイトルとURLをコピーしました