上川純一
日本ヒューレット・パッカード株式会社
コンサルティング・インテグレーション統括本部
2005/5/31
linux-kernelメーリングリスト(以下LKML)かいわいで起きた出来事を毎月お伝えするLinux Kernel Watch。さて、4月のLinux開発の現場はどうだったでしょうか。
ソースコード管理ツールgitの登場
Linus Torvaldsは、「Kernel SCM saga..」と題したメールで、
- BitKeeper(編注)が使用できなくなったこと
- Linuxの開発のために新しいSCM(ソースコード管理)ツールを探していること
を宣言しました。そのメールには、「ふさわしいツールが何も見つからなかったら困るので、“git”というツールを作っている」ことも追記されていました。
編注:Linuxのソースコード管理に活用されていたツール。BitKeeperの採用については、Linuxカーネル2.5 最新開発動向を参照。 |
これを受けて、まず「どのようなツールが必要か」「どのようなツールが存在するのか」という議論が続きました。議論の中で、Linusは最初「monotoneが有力だ」と提案しました。しかし、実際に試用してみたところ、monotoneは遅くて改善が必要であるという結論に達しました。monotoneの動作速度について、Linusは以下のようなメール(抜粋)を書いています。
1つのパッチを適用するのに30秒かかるツールでは、250のパッチを適用するのに2時間もかかってしまうじゃないか。そのうえ途中でパッチの適用が失敗したりしたら最悪だ。 |
「svkがよいんじゃないか」「darcsはどうか」などのメールが大量に流れ、LKMLはしばしSCMツール専用メーリングリストの様相を呈していました。その後gitメーリングリストが別途立ち上がり、以降はそちらで議論が継続しました。
Linusにいわせるとgitは、コマンドラインツールとしては「plumbing(配管工事のような現場の仕事)」に十分なインターフェイスのみを持つ、ということです。直接利用するのには不便なので、インターフェイスはそれぞれ開発してください、というスタンスです。Linusが利用している、メールに添付されているパッチを取り込むツールなどは、git-toolsとして公開されています。
gitを一般的に利用するためのインターフェイスを開発しているグループもあります。いま最も広く使われているのは、Petr Baudisが中心となって開発しているcogito(最初はgit-paskyという名称だった)でしょう。cogitoは、git上にBitKeeperやCVSなどのコマンドラインインターフェイスに似たインターフェイスを実装しています。
gitはまだ若いツールですが、実用本位で何とか使えるものになっているようです。
参考リンク: | ||
git | ftp://kernel.org/pub/software/scm/git/ | |
cogito | ftp://kernel.org/pub/software/scm/cogito/ | |
gitのWebインターフェイス | http://www.kernel.org/git/ |
gitベースによる初のカーネルリリース、今後は?
git管理になって以来、初めてLinusのツリーがリリースになったのは、4月20日に出た2.6.12-rc3です。ChangeLogの形式が変更されたこともあり、このリリースは反響を呼びました。
Greg Kroah-Hartman(以下Greg K-H)やRussel KingとLinusが、このリリースの前後にLKMLで「gitはどうやって使うんだ?」「どうやってマージするのだ?」というやりとりを交わしていました。そして、Linusがgitでツリーのマージを実装し、マージできることを確認した時点でリリースにこぎ着けたという形になります。
こうしてgitでも無事リリースが行われましたが、gitのパフォーマンスについてはまだ未知数な点が残っています。
linux-ia64メーリングリストで、Linusが
rsync ends up being the easiest way to fetch the data (and I like the irony of using a tool that Tridge helped write ;) |
とコメントしていたように、gitはrsyncを利用してデータの転送を行います。
問題はサーバです。gitを使うことにより、従来bkbits.netでホスティングされていた部分もkernel.orgで提供することになります。git導入前の情報を含めるとリポジトリが3Gbytesになってサーバに負担を掛けるため、gitのリポジトリにはgit導入前の履歴は含まないことにした、とLinusはChangeLogに書いています。
ちょうど4月に、kernel.orgは新規のHP DL585 quad Opteron、24Gbytesのメモリ、10Tbytesのストレージを持つサーバを導入しました。マシンスペックは向上しましたが、今後はサーバに対して直接rsyncを利用する量が増えることになります。このサーバがrsyncの負荷に耐えられるか、gitリポジトリに変更履歴が蓄積されてもパフォーマンスを維持できるのか、注目です。
参考リンク: | ||
2.6.12-rc3のChangeLog | http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.12-rc3 |
1/2
|
|
||||
|
連載 Linux Kernel Watch |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|