システムコール
ソフトウェアはハードウェアを操作することで、その役割を果たします。
例えば、キーボードから入力を受け付けたり、ディスプレイにデータを出力したり、ソフトウェアはハードウェアがあってはじめて成り立つわけです。
しかしアプリケーションはハードウェアを直接操作することはできません。
ハードウェアと直接やりとりできるのはカーネルだけです。
つまり、ソフトウェアはハードウェアを操作したいとき、カーネルに処理を依頼して、間接的に操作することになります。
では、カーネルに処理を依頼するにはどうしたら良いのでしょうか。
その方法が「システムコール」です。
システムコールの「システム」はここでは「カーネル」と捉え、「カーネルをコール」すると考えるとわかりやすいです。
システムコールには下記のような種類が用意されています。
・open
・close
・read
・write
・ioctl
・fork
・exec
・stat
・unlink etc
上記したのは一部であり、他にもたくさんあります。
ソフトウェアはこのようなシステムコールを介して、ハードウェアを操作することになります。