Linuxカーネルはフィンランドの大学生リーナストーバルズ氏が開発し、1991年に公開された0.01が最初のバージョン。
現在開発に参加している技術者は約1300人以上という大規模なオープンソースプロジェクトとなった。
その公式プロジェクトで開発されたカーネルは公式版カーネル(vanilla kernel)と呼ばれている。
公式版Linuxカーネルはプロジェクトのサイトkernel.orgから入手できる。
Linuxカーネルはリーナストーバルズ自身が開発したgit上で開発されている。
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
各ディストリは、この公式カーネルを元にカスタマイズされたカーネルを使っている場合が多い。
システム起動時にメモリにロードされ、その後メモリに常駐、システムリソースの管理やデバイスの制御などを行っている。
unameコマンドを使う
$ uname -r
/proc/versionを見る
$ cat /proc/version
カーネルのMakefileの頭4行を見る
$ head -4 /usr/src/linux/Makefile
[バージョン].[メジャーレビジョン].[マイナーレビジョン]-[サフィックス]
例えばこんなバージョンなら
$ uname -r
バージョン: 3
メジャーレビジョン: 11
マイナーレビジョン: 0
サフィックス: 24-generic
こんな感じですかね。
/usr/src/linux*
/usr/src/linux*/Documentation
その他makeターゲット
現在開発に参加している技術者は約1300人以上という大規模なオープンソースプロジェクトとなった。
その公式プロジェクトで開発されたカーネルは公式版カーネル(vanilla kernel)と呼ばれている。
公式版Linuxカーネルはプロジェクトのサイトkernel.orgから入手できる。
Linuxカーネルはリーナストーバルズ自身が開発したgit上で開発されている。
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
各ディストリは、この公式カーネルを元にカスタマイズされたカーネルを使っている場合が多い。
カーネルの動作
システム起動時にメモリにロードされ、その後メモリに常駐、システムリソースの管理やデバイスの制御などを行っている。
カーネルの構成
- プロセス、ユーザー、時刻、メモリ管理などを行う本体部分
- コンパイル時に静的に本体にリンクするカーネルモジュール
- システム起動時などに必要時にメモリに読み込まれるローダブルモジュール(カーネルモジュール)
カーネルバージョンを確認する3つの方法
unameコマンドを使う
$ uname -r
3.11.0-24-generic
/proc/versionを見る
$ cat /proc/version
Linux version 3.11.0-24-generic (buildd@tipua) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #42~precise1-Ubuntu SMP Fri Jul 4 21:22:54 UTC 2014
カーネルのMakefileの頭4行を見る
$ head -4 /usr/src/linux/Makefile
VERSION = 3
PATCHLEVEL = 11
SUBLEVEL = 10
EXTRAVERSION = .11
カーネルのバージョン表記のルール
[バージョン].[メジャーレビジョン].[マイナーレビジョン]-[サフィックス]
例えばこんなバージョンなら
$ uname -r
3.11.0-24-generic
バージョン: 3
メジャーレビジョン: 11
マイナーレビジョン: 0
サフィックス: 24-generic
こんな感じですかね。
カーネルの置き場所
/usr/src/linux*
カーネルのドキュメントのパス
/usr/src/linux*/Documentation
カーネルコンパイルの手順
- make menuconfig カーネル構成を設定して.configファイルを作成する
- make 作成された.configを基にカーネルモジュールを生成
- make modules_install /lib/modules以下にモジュールをインストール
- make install カーネルを/bootにインストール
その他makeターゲット
- make mrproper 以前のカーネルコンフィグを削除して初期化する
- make oldconfig 以前のカーネルコンフィグファイルを使ってコンパイルする。新しい定義が必要な場合聞く
- make clean コンフィグで生成されたファイルの削除
- 関連記事
-
-
カーネルモジュール関連のコマンド 201 2014/08/07
-
Linuxカーネルをコンパイル,インストールしてみる 201 2014/08/07
-
Linuxカーネル 201 2014/08/05
-
LPIC 201と202の模擬問題をやってみた 2014/08/05
-
LPICの有意性切れ間近の知らせが来た 2014/06/21
-