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)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です