システムコール
POSIXおよび類似のシステムでの主要なシステムコールとしては、open、read、write、close、wait、execve、fork、kill などがある。ファイルシステム・ネットワーク・メモリ・プロセス・スレッド・セキュリティなどの機能を提供している。最近のオペレーティングシステムは数百のシステムコールを持つ。例えば、Linuxは317個(Linux 2.6.35.4現在, i386アーキテクチャ)、FreeBSDは約500個である。
システムコールが呼び出されたとき、呼び出したプログラムは中断され、後で処理を続行するために必要な情報(コンテキスト)が保存される。そしてプロセッサが高い特権レベルのコードを実行し、上述のシステムコールの番号や引数を調べ、必要な処理を行う。この際に呼び出し側のアクセス権なども考慮して指定されたシステムコールを実行する権利があるかどうかがチェックされる。完了すると呼び出し側プログラムに復帰するため、保存されていた状態情報をリストアし、プログラムの処理が続行される。このとき所定のレジスタ(あるいはスタックの所定の位置)にリターン値が設定される。
多くの場合、プログラムへの復帰が即座に行われない可能性があることに注意が必要である。システムコールでは時間のかかるI/O処理をすることがあり(例えばディスクやネットワークへのアクセス)、プログラムは中断され(「ブロック」状態)、その処理が完了するまで「実行可能」キューに置かれる。必要な処理が完了すると、オペレーティングシステムはそれを実行の候補として扱う。