Linuxカーネル学習(1)

前置き

講習を終えていよいよ本格的にネタがなくなってきた(笑)
Linuxカーネル本を地道に読み進めて、その学習経過を出すことにした。
一日日記本文含めて30分くらいで終わらせる予定なので、結構小出しになりそう。
ちなみに私が読んでいるのは2.4.18が安定リリース版、2.5.22が開発版の最新版となっている。今はもう少し変わっているかもしれない点を留意のこと。

Linuxのバージョン管理

Linuxのバージョンは次のように管理されている。

メジャー マイナー リリース番号
メジャーバージョン マイナーバージョン。また、奇数が開発版、偶数が安定版を表す 開発版と安定版で別々に管理されているリリース番号

つまり「2.4.18」というバージョンは、次のようになる。

メジャー マイナー リリース番号
2 4 18
メジャーバージョン2の 安定版4の 18回目のリリースを数えるLinuxカーネル

このバージョン管理はなかなか美しいように思う。

POSIX

Unix系の最低限の仕様を定義していて、POSIX準拠のアプリケーションというのはどのUnixでも動くという事になる(ホントか?)。
Linuxはパーソナルコンピュータで動作する、POSIXを備えたOS、すなわちPC Unixという位置付けになる。
もちろんFreeBSDPOSIX準拠。

APIシステムコール

APIシステムコールの違いは、次の通りとのこと。
本当にそうかの調査はしてないので解釈は自己責任で。
ちなみにPOSIXAPI

API

要求されたサービスを得るための関数インターフェースの定義。

システムコール

ソフトウェア割り込みを利用して行われるカーネルに対する明示的な要求。

結局Unixって何よ?

発祥は1968年に開発されたOSの名称だが、現在は「The Open Group」が保持している商標。
The Open GroupがUnixか否かを公開している基準(SPEC1170や統一Unix仕様というものらしい)を満たしているかを確認した後、対象のOSに対して「Unix95」だとか「Unix98」だとかのブランド名を名乗ることを許可している。
つまりPOSIX準拠であっても、この団体に認可されないとホントは「Unix」ではない。
要するに、まとめるとUnixは商標であり、ブランド名である。現在においてはOSの名前でも、規格の名前でもない。