システムコール


ユーザプログラムや、MINIXのコマンドは、処理が終了するとシステムのメモリからは消えます。
それに対して、オペレーティングシステムは、起動後はシャットダウンするまでずっと常駐しています。

これを図示すると以下のようになります。

overview3

オペレーティングシステム自体は/minixの下にファイルとして置かれていますが、これを構成する個々の要素ソースプログラムは/usr/src/kernelと/usr/src/mm, /usr/src/fsに書かれています。
これらの機能を使うためには、ユーザプログラムはシステムコールを実行しなければなりません。システムコールはソフトウェア割り込みとして行われるため、いわゆる「関数のコール」を辿るだけではシステムのファイルにはたどり着きません。
ライブラリは、/usr/libにおかれていますが、このコードは/usr/src/libに書かれていて、ライブラリを修正することによってシステムの機能を変えることも可能です。ライブラリを使うためには、そのライブラリで関数がどう定義されているか知らなければ(コンパイラに通知しなければ)なりません。そのために、/usr/includeが提供されています。

MINIXのコマンドは、ユーザプログラムと同様に「実行型のファイル」として提供されています。これらは/usr/binの下に置かれ、/usr/src/binにそのソースコードが書かれています。