linux kernelのコードネームは無視していい

  • 8
    いいね
  • 0
    コメント

Linux Kernelにはバージョン名(本記事執筆時点では4.x)に加えてコードネームが存在します。Linux 4.10-rc6 Released, Now Codenamed The "Fearless Coyote"のように、記事のタイトルにコードネームを持ってきたり、コードネームが記事の中に記載されたりすることがあります。

実はこのコードネームにはほとんど意味がありません。少なくともlinuxの主要開発メーリングリストでもこれまでほとんど見たことがありません。2,3ヶ月に一度新バージョンがリリースされる現在ではコードネームがついていても覚えきれるわけがないので、使われないのは無理からぬことです。

カーネルのバイナリであるvmlinuxにもこの情報は含まれません。

$ strings vmlinux | grep "Fearless Coyote" 
$ 

そもそもLinuxのコードネームはソースディレクトリ直下のMakefileにName = <codename>という形で定義されているだけで、他の用途に使われることは一切ありません。

$ head Makefile 
VERSION = 4
PATCHLEVEL = 10
SUBLEVEL = 0
EXTRAVERSION = -rc6
NAME = Fearless Coyote         # ←コードネーム
...
$ find | xargs grep -rnH '\$(NAME)'
$ 

バージョン名がいたるところで使われており、かつ、vmlinuxにも情報が含まれていることに比べると大きな違いです。

ついでに言うと、過去のコードネームの一覧を見ればわかる通り、この名前はリリース毎に更新されているわけではなく、数バージョンにわたって同じものが使いまわされたりしています1

このためOpenStackのバージョン名"Mitaka"や"Newton"のような感覚で「君、昨日リリースされたFearless Coyoteをもう動かしてみたかね?」とかいう奴がいたら、そいつは似非カーネル通だと思います。

筆者はLinuxを使い始めて高々十数年なこともあって、過去のLinuxの歴史については詳しくありません。このため、過去にこのコードネームがいつから何のためにつけられたのかは知りません。しかし、少なくとも今現在は大した意味を持っていないことは確かです。このあたりの事情に詳しいかたがおられましたら、教えていただけると嬉しいです。


  1. Linus氏はコードネームについては更新をルーチンワークにしておらず、思い出したときに適当に更新しているのではないかと私は推測しています。