読者です 読者をやめる 読者になる 読者になる

戦場のプログラマー

名前は誰も知らない。

Linux カーネルを読もうとするこれからの自分へのまとめ

WIP Linux カーネル まとめ

Linux カーネル読むぞーって思ってたけどとりあえずクローンしたはいいけどこれどうしたらええんやろって思って 3 日坊主になってしまっていたので、最近カーネルの話をよく聞くようになったからまた性懲りもなく Linux カーネルをクローンしました。

カーネルの入手方法

まず Git 入れてます。

sudo apt-get -y install git
sudo yum -y install git

おもむろに The Linux Kernel Archives を訪れます。 おぉ、サイト全体 SSL 化されてるんだな。 こういうサイト最近増えたよね。 PROTOCOL のリンクを踏むと HTTP だったら RFC に飛ばされたりします。うーん感慨深い。

  1. www.ietf.org/rfc/rfc2616.txt

なんか前はトップにある Git のリポジトリの URL を指定してクローンすればよかったんだけど、

f:id:wnoguchi0727:20151031214758p:plain

なんにも考えずに

git clone https://git.kernel.org/

ってやったらそんなもんねーよ!って言われてしまった。

Cloning into 'git.kernel.org'...
fatal: repository 'https://git.kernel.org/' not found

このリンク https://git.kernel.org/ を素直に踏んでみると https://git.kernel.org/cgit/ に飛ばされました。 うお、めっちゃリポジトリたくさんある・・・。 いつの間にこんなに分裂したんだ・・・。

f:id:wnoguchi0727:20151031222610p:plain

分裂したわけではないのか、 以前は GitHub にミラーされてるリポジトリをクローンしたのかな。

ちなみにここに PR 送ると怒られます。 Git 開発自体のリポジトリも PR 送るとパッチの送り方読めって怒られて速攻クローズされます。

何はともあれ stable 版の Linux カーネルをクローンするには以下のようにします。

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

ビルド環境の整備

Debian

sudo apt-get -y install libncurses5-dev gcc make git exuberant-ctags bc

RedHat

sudo yum -y install gcc make git ctags ncurses-devel

カーネルのビルドは以下が詳しい。

その他

メーリングリスト

  1. VGER.KERNEL.ORG
  2. VGER.KERNEL.ORG - Majordomo info

メーリングリストはいっぱいあるが、ここでは linux-kernel に登録するようにしてみよう。
ちなみに登録するとめっちゃメールが届くので注意。

登録

majordomo@vger.kernel.org 宛に件名を空で以下のプレーンテキスト本文でメールを送信する。 配送遅延があることがあるので返事を気長に待とう。

subscribe linux-kernel

"Confirmation for subscribe linux-kernel" というタイトルの確認メールが来るので、 同様の宛先で、件名空の以下の様な本文の認証メールを送ればよい。

auth ******** subscribe linux-kernel あなたのメールアドレス@example.com

ちょっとして Welcome to linux-kernel という件名のメールが来れば晴れて登録完了である。 おめでとう。

解除

majordomo@vger.kernel.org 宛に件名を空で以下のプレーンテキスト本文でメールを送信する。
こっちに認証コードはない。 Suceeded. のメールが来ればこれで完了となる。

unsubscribe linux-kernel

RSS

Feedly あたりに以下を登録しておきましょう。

  1. https://www.kernel.org/feeds/all.atom.xml
  2. https://www.kernel.org/feeds/kdist.xml

Linux カーネルのトレーニングプログラム

  1. Linux Foundation Training - Home

蛇足

UNIX V6 のカーネルのコードリーディングの勉強会に参加してたんだけど、これも中途半端になってしまっていたので、プロフェッショナルといえるような UNIXカーネルの理解は深めておきたいな・・・。

参考リンク集

  1. The Linux Kernel Archives
  2. KernelBuild - Linux Kernel Newbies
  3. gitから任意のバージョンのLinuxカーネルのソースコードをチェックアウトするメモ - Plan9日記

書籍

詳解 Linuxカーネル 第3版

詳解 Linuxカーネル 第3版

はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)

はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)