バージョン †
2.x †
2.6 †
- システムコールの仕様変更が存在しており、従来と互換性がなくなった
- glibcも、glibc 2.4以降はLinuxカーネル2.6以降でなければ動かない
3.x †
- Linux 3.0は、元々はLinux 2.6.40として開発が進んでいたものだった
- いわゆるメジャーバージョンが更新されたが、Linus Torvaldsの意向によるもので、従来のLinux 2.6.xからの大きな機能変更や非互換はない
4.x †
- ライブカーネルパッチの導入(再起動せずにパッチ適用を可能とする機能)
- 3.xとの互換性は保たれている
コンフィグレーション †
Kconfig †
書式 †
menu [MENU名]
config [CONFIG名]
bool "説明"
default [y|n]
depends on [他のCONFIG名]
select [他のCONFIG名]
:
endmenu
menu [MENU名]
:
- デフォルト値: "default" <expr> ["if" <expr>]
- コンフィグオプションにはいくつものデフォルト値を設定できる
- 2つめ以降のデフォルト値が表示されるためには、最初のデフォルト値がアクティブである必要がある
- デフォルト値はメニュー項目を定義した場所にしか書けないというわけではありません。別の場所に書いたり、事前に定義した値を上書きしたり出来ます。
- デフォルト値はユーザが何も値を設定しなかった(上記の "input prompt" で)ときに、コンフィグオプションに割り当てられます。もし見出しが見えていれば、ユーザに対してデフォルト値が表示され、ユーザは値を上書きできます。
- もしこのデフォルト値だけに対する依存関係がある場合は、"if" とともに条件を指定してください。
- 依存関係: "depends on"/"requires" <expr>
- メニュー項目の依存関係を定義
- 複数の依存関係を定義したいなら、'&&' で繋げてください。
- 依存関係はメニュー項目の属性全て("if" も含め)に適用されます。
カーネルモジュール †
- 静的リンクされたモジュールはカーネルイメージ(vmlinux)の一部になる
- 動的リンクされるモジュールは拡張子 *.ko のファイルとしてファイルシステムの何処かに置き、必要なときにロードする形態を取る
ローダブル・カーネル・モジュール(LKM) †
コマンド †
lsmod †
modprobe †
関数 †
- include/linux/device.h でプロトタイプ宣言
- drivers/base/core.c で定義
- dev_emerg()
- dev_alert()
- dev_crit()
- dev_err()
- dev_warn()
- dev_notice()
- dev_info()
- dev_dbg()