「システムコール」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> システムコール (System Call) とは、 OSカーネル の機能を呼び出すための仕組みです。 '''...」)
(相違点なし)

2013年8月25日 (日) 12:07時点における版

システムコール (System Call) とは、 OSカーネル の機能を呼び出すための仕組みです。

読み方

システムコール
しすてむ こーる
system call
しすてむ こーる

概要

システムコール は、OS (カーネル) が一般のプログラムに提供する機能 や OS (カーネル) が提供する機能を呼び出すための API のことをいいます。

プログラムは、入出力装置や物理メモリを直接操作することができません。そうしたプログラムの変わりに、カーネル が処理を実行します。

ライブラリ関数とシステムコールがありますが、 fopen などの関数は、内部的に システムコール を呼び出しています。 ファイル I/O 系のライブラリ関数は、バッファリングの機能などを持っているため、直接 システムコール を呼び出すよりもパフォーマンスが良いかもしれません。


UNIX のシステムコール

  • fopen / fread / fgets などの関数は、ライブラリ関数です。
  • open / read / write などの関数は、システムコール です。

ライブラリ関数を利用する利点

  • 移植性(ポータビリティ)の向上
    • システムコール は、OS によって変わってきます。
  • バッファリングによるパフォーマンスアップ
  • 開発効率
    • ライブラリ関数がシステムコールをラップしてくれているため、短いコードで簡単に利用できる。

関連項目