🐧 Linux 総合学習プラットフォーム

システムコールの用語集(12語)

システムコールに関する Linux 用語を、読み・意味・補足つきでまとめました。

Cライブラリ(libc)しーらいぶらり
printf や fopen などを提供する標準ライブラリ。
システムコールを使いやすく包んだ上の層。内部でバッファリングなどを行いつつ write/open を呼ぶ。glibc が代表。
errnoえらーなんばー
直近のシステムコール失敗の原因を表す番号。
戻り値が -1 のときに参照する。ENOENT(ファイルなし)・EACCES(権限なし)など。perror/strerror で文章に直せる。
execいぐぜっく
現在のプロセスを別のプログラムに置き換えて実行する。
execve が本体で、PIDは変わらず中身だけが入れ替わる。fork で作った子の中で呼ぶのが定番の流れ。
forkふぉーく
自分とほぼ同じ子プロセスを複製するシステムコール。
親には子のPID、子には 0 を返す。この戻り値で親子を区別する。多くは直後に exec で別プログラムへ置き換える。
manページ(セクション)まんぺーじ
マニュアルの分類番号。2=システムコール、3=ライブラリ関数。
man 2 open のように番号で指定する。同名でも別物のことがあるため番号指定が重要。一覧は man man で確認。
straceえすとれーす
プロセスが呼ぶシステムコールを記録・表示するツール。
「呼び出し名(引数) = 戻り値」の形で並ぶ。失敗時は errno 名も付く。-f で子も追跡、-e trace= で対象を絞れる。
カーネル空間かーねるくうかん
OSの中核が動く、特権を持つ領域。
ハードウェア制御やメモリ管理を担う。ユーザ空間とは隔離され、境界はシステムコールでのみまたげる。
コンテキストスイッチこんてきすとすいっち
CPUが実行する処理を別のものへ切り替える動作。
プロセス間の切替や、システムコールでのユーザ→カーネルのモード切替を指す。頻発すると性能に影響する。
システムコールしすてむこーる
アプリがカーネルに処理を依頼する公式の窓口。
ファイル入出力・プロセス生成・通信など、特権が要る処理はすべてシステムコール経由で行う。open・read・write・fork などが代表例。
ゾンビプロセスぞんびぷろせす
終了したが親に回収されず残る子プロセス。
親が wait で終了ステータスを受け取ると消える。回収を怠るとプロセス表に残り続ける。
ファイルディスクリプタふぁいるでぃすくりぷた
開いたファイルを指す小さな整数(0以上)。
open が返し、read/write/close で対象指定に使う。0=標準入力, 1=標準出力, 2=標準エラー出力が最初から開かれている。
ユーザ空間ゆーざくうかん
アプリが動く、権限を制限された領域。
ハードウェアやカーネルのメモリに直接触れない。必要な処理はシステムコールでカーネルに依頼する。

▶ 学習アプリで「引く」を使う