• 検索結果がありません。

オープンソースソフトウェア:2.2FreeBSD プロジェクトに見るオープンソース開発プロジェクトの実際

N/A
N/A
Protected

Academic year: 2021

シェア "オープンソースソフトウェア:2.2FreeBSD プロジェクトに見るオープンソース開発プロジェクトの実際"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)オープンソース ソフトウェア. FreeBSD プロジェクトに見る オープンソース開発プロジェクト の実際. 2.2. 松下 誠 大阪大学大学院情報科学研究科 [email protected].  本稿では,オープンソースソフトウェア開発の中でも比較. ■開発組織. 的歴史が長く,開発形態も成熟している FreeBSD の開発を 例に挙げて,その組織やプロセス等について順を追って見る こととする.著者はこれまで FreeBSD に関するさまざまな 活動に携わってきており,以下はそれらを通じて得られた, 数多くの経験に基づいて書かれている..  一口に「開発組織」といっても,オープンソース開 発プロジェクトの場合「どこからどこまで」を開発組織 として考えればよいのか,という問題が存在する.これ は,世界中にちらばっている作業者が自由に参加,ある. ■ FreeBSD. いは離脱できるということや,雇用契約などの明示的な. とは. 契約を結んでいないため,明確な線引きを行うことが難  FreeBSD は,1993 年 に 最 初 の リ リ ー ス(1.0) が 行. しいことに由来する.. わ れ た, い わ ゆ る BSD UNIX 系 オ ペ レ ー テ ィ ン グ シ.  本稿では,FreeBSD のプロダクトを直接修正できる. ス テ ム の 1 つ で あ り,Intel x86 や Alpha PC 上 で 動 作. 開発者を「FreeBSD プロジェクトの開発者」として考. する.UCB(University of California, Berkeley)の CSRG. え,これをもって開発組織が構成されるという考え方に. (Computer Software Research Group)によって配布され. 立つ.この定義の場合,いわゆる「パッチを書いて送っ. ていた 4.3BSD NET/2 リリースを元に,OS として不足. た」程度の開発者は含まれないことになる.しかし,開. していた部分を補うかたちで作成された 386BSD をその. 発組織という視点から見る場合,開発者が明示的に組織. 源流として持つ.. の一員であることを自覚しているかどうかが重要である.  Linux の世界ではカーネルを含めた各種コンポーネ. と考えられること,また,他の類似したオープンソース. ントがそれぞれ独立に開発され,ディストリビュータ. 開発でも似たような定義が用いられていることから,こ. がそれらをまとめて OS としての体裁を整えているが,. の定義を用いるものとする.. FreeBSD などの BSD UNIX では,基本的な部分(カー.  以下,組織階層のより低位から順番に開発組織を見て. ネル,コンパイラ,基本ツール等)はすべて FreeBSD. いくことにする(図 -1).. のソースコード中に含まれている.このため,FreeBSD. −開発者(コミッタ,Committer). 自身のソースコード規模はおよそ 250MB と,単一のオ ープンソースソフトウェアとしては比較的規模が大き.  FreeBSD プロジェクトには,本稿執筆時点でおよそ. い.BSD UNIX は,その昔より TCP/IP の実装に優れて. 300 人程度の「コミッタ(committer)」と呼ばれる開発. いるとされ,サーバ系などを中心に広く用いられてい. 者が存在している.コミッタは,FreeBSD のプロダクト. る. た と え ば,Yahoo! や Apache Project の Web サ ー バ. を直接修正する権限がある.300 人という規模は,一般. として FreeBSD が用いられていることがよく知られて. のソフトウェア開発から考えると比較的規模が大きいと. いる.. いえるが,コミッタはそれぞれ自分が主に作業する領域 があるということや,コミッタは常に FreeBSD の作業 を行っているわけではない(ほとんどのコミッタは自分 の余暇時間を利用して作業を行っている)ため,この規 IPSJ Magazine Vol.43 No.12 Dec. 2002. −1−. 1329. Open Source Software. 特集:.

(2) ーションは FreeBSD 以外の組織によって開発されたも のであり,アプリケーションの性格が異なることから,. �������� (全体のまとめ) �全体のまとめ�. ������� ������担当�. 別の組織として portmgr という役割を作り,コアチーム は portmgr へ権限を委譲する,というかたちをとってい. �� ���� �������� �������� �リリース担当 � ��������� 担当� (リリース担当). る.FreeBSD は OS という性格上セキュリティ問題にも. ���������� のコードを直接変更できる ��������のコードを直接変更できる) � (�������. 注意を払っており,情報収集や実際に問題が発生した場 合の対応などは security officers が他に優先してさまざま な指示を行っている.さらに,定期的なリリースについ. 図 -1 FreeBSD の開発組織. ては,利用者が実際に用いるバイナリ作成を責任を持っ. 模でも人数が不足しているという感じである.. て行い,リリース前の品質管理作業やドキュメント整備.  FreeBSD プロジェクトに多くの貢献(特に,修正内容. などを担当する release engineering team が存在する.. の提供など)をしている人の中から,既存のコミッタが.  この他,各アプリケーションに依存した開発プロジェ. 推薦することによって新たなコミッタが誕生する.新た. クト,マニュアルやハンドブックの執筆を主に行ってい. なコミッタの申請は基本的にコアチーム(後述)に提出. るドキュメンテーションプロジェクトなど,各開発の側. され,コアチームがそれを承認した時点でコミッタへ就. 面に応じてさまざまな組織があり,それぞれが相互に連. 任することが認められるが,ports. ☆1. 関連の作業をする. 携しながら開発作業を行っている.プロジェクト内,あ. コミッタは,これとは別に portmgr(ports manager)と. るいはコミッタ同士で何らかの論争が起き,収拾がつか. 呼ばれる ports 関連の責任者グループがコアチームの代. なくなった場合には,最終的な判断はコアチームに委ね. わりに承認することとなっている.このほかにも,セ. られる.. キ ュ リ テ ィ 周 り の 問 題 を 担 当 す る security officers や, ■開発プロセス. FreeBSD のリリース作業全体を管理する re team(release engineering team)など,作業に応じていくつかの役割が ある.なお,1 人の作業者が複数の担当となることも少.  一般的なソフトウェア開発組織とは異なり,組織があ. なくない.. まり明確に定義されないことや,組織全体を厳格に統括.  現在,コミッタのおよそ 6 分の 1(約 50 人)が日本. する組織がないこと,また,開発者の能力や技術背景に. 人であり,アメリカを除くと比較的多くのコミッタが日. 大きな隔たりがあることなどから,FreeBSD プロジェク. 本から輩出されている.. ト全体の開発プロセスを,明確に定義することは非常に 困難である.しかし,小さな,あるいは大まかなプロセ. −コアチーム(Core Team)と管理グループ. スに分けることは可能である.以下では,規模に応じて.  コアチームは FreeBSD プロジェクト全体の方向を定. どのような開発プロセスが存在しているかを述べる.. め,プロジェクト自体を成功へと導くための舵とり役を. −全体プロセス. 果たす組織であり,原則 9 人で構成されるコアチームは コミッタ同士の互選によって選ばれ,2 年の任期が定め.  前述した通り,コミッタ全体で何らかの話し合いを行. られている.. い,スケジュール表を作成して開発を行うということは.  また,コアチーム以外にも,各作業分野ごとにその. 現実的ではなく,実際にそのようなことは行われていな. 分野での責任者が適宜定義されている.主なものとして. い.プロジェクト全体で作業内容について合意が取れて. portmgr, security officers, release engineering team がある.. いる内容としては,Committers' Guide と呼ばれる文書に.  FreeBSD プロジェクト全体を統括するコアチームと同. 書かれているものがある.この文書は,FreeBSD のプロ. 様な役割を持つが,FreeBSD ports にその範囲を限った. ダクトを修正するための手順といった非常に具体的な内. 組織として portmgr が存在している.従来はコアチーム. 容から,開発者としての心構え(他の開発者を尊重しま. がその役割を担っていたが,FreeBSD ports 自体があま. しょう,など),プロジェクト内で活動する際のルール. りにも巨大となってしまい,その管理コストが膨大なも. といった非常に抽象的な内容が記述されている.. のとなってきたことと,ports 自体は FreeBSD 配布物の.  唯一,FreeBSD プロジェクト全体で定められているプ. 一部でありながら,ports によって管理されるアプリケ. ロセスをあげるとすれば,それはリリースにかかわるプ ロセスである.開発の結果として FreeBSD のリリース. ☆ 1 . Apache など,FreeBSD 自体には含まれていない各種アプリケーシ ョンについて,入手,コンパイル,インストールなどの方法を記 述したもの.利用者は ports に登録されているアプリケーションで あれば,make コマンドで容易にインストールすることができる.. 1330. 版を作成する際には,あらかじめリリース日を確定させ た上で,そのリリース日までに間に合うように全体の作 業が進められる.リリース自体は数カ月単位で定期的に. 43 巻 12 号 情報処理 2002 年 12 月. −2−.

(3) Open Source Software. リリース2カ月前. リリース予定日の告知 それぞれの開発者は各自の作業を進める �� ���� はテスト時のチェック項目洗い出し. リリース1カ月前. 安定ブランチがリリースに向けた準備に入る バージョン文字列が ���������� に 安定ブランチは�� ����の管理下へ ����� �������. リリース15日前. 最初の �� �������� ���������� 版リリース �� 版作成の告知,バグ報告の受付など リリースに含める ����� 作業締切日の予告 状況に応じて,その後数回の�� 版作成など. リリース1週間前. ����� に含まれる内容の確定 最終リリース版の作成,パッケージの作成. リリース. リリース告知 安定ブランチへの ������ 解除. 図 -2 リリーススケジュールの例. 行われているため,この全体作業は安定した間隔で定期. 求め,その承認が得られた時点で実際の修正を行うとい. 的に行われることとなり,これが FreeBSD 全体を安定. った,緩やかな管理体制がとられている.. して進化させることができる要因となっているのではな. −リリース管理. いかと考えられる.リリース作成時のプロセスについて は,後述する..   定 期 的 に 行 わ れ る FreeBSD の リ リ ー ス 作 業 は, そ の 作 業 を 専 門 に 行 う リ リ ー ス チ ー ム(re: release. −チーム・個人プロセス. engineering)によって現在行われている.リリースチー.  全体プロセスがあまり明確に定義されないことから,. ム内では,全体管理と各アーキテクチャ用のリリース. FreeBSD プロジェクトにおける開発作業の多くは個人単. 版作成,またパッケージ作成作業といった複数の役割. 位,あるいは,お互いに理解しあっている複数のコミッ. が分担されている.実際には 1 人の作業者が複数の役. タ等によるチーム単位で開発が行われることとなる.. 割を果たしているため,たとえば 4.5-RELEASE の場合,.  作業の種類としては,大まかに「デザイン」 , 「コーデ. 6 人でこのリリースチームが構成されていた.. ィング」 , 「テスト」などといった,ウォーターフォール.  リリースチームは,コアチームが定めたリリース日を. モデルの各フェイズに相当する作業があり,これらの作. 守るために全体の作業を管理することとなる.まず,コ. 業を行う際には,電子メール等を用いたコミュニケーシ. アチームがかなり早い時点,通常数カ月以上前にリリー. ョン,実際に動作する,あるいは動作する可能性がある. ス日程を定め,これを広く広報する.本稿執筆時点では. ソースコードを相互にやり取りすることによって,どう. 4.8-RELEASE のリリース時期(2003 年 2 月)まですで. いう実装にするべきか,あるいは,実際に動作している. に公となっている.このリリース時期の早期決定につい. かの確認作業が進められる.ある問題に対して,技術的. ては,FreeBSD プロジェクトに特徴的なものであると思. に競合する複数の案が出されることも少なくはないが,. われる.図 -2 は,大まかな FreeBSD リリーススケジュ. この場合にはどちらの案が優れているかを技術的な観. ールの流れである.. 点から議論し,お互いに納得した上でどれかの案を選択.  リリース日が迫ってきた時点で,リリースチームが. し,それに従って実装を行うこととなる.. 本格的な作業を開始する.まず,1 カ月前にその時点の.  また,各アプリケーション,あるいはその一部にはメ. ソースコードを使ってプレリリース版を作成する.この. インテナ(maintainer)と呼ばれる「主にこのソースコ. 時点で,次のリリースに採用する機能等が確定され,以. ードを管理する人」が定められていることがある.この. 降リリース版に向けての修正はすべてリリースチーム. 場合,一般的にはコミッタがメインテナに対して確認を. の承認が必要となる.このような状態はコードフリーズ IPSJ Magazine Vol.43 No.12 Dec. 2002. −3−. 1331.

(4) (code freeze)と呼ばれている.. ールを特定多数に配布するためのメーリングリストは.  コードフリーズ中は,既存のソースコードに存在して. もちろん,過去の議論を追いかけるためのメールアーカ. いるバグを取り除く作業を開発者が集中して行うことと. イブが整備されている.また,FreeBSD のリリース告知. なる.プレリリース版によって発見されたバグは,直ち. やセキュリティ情報の告知などにも電子メールが用い. に対応されることが望まれている.ある程度の修正が行. られている.開発者相互のコミュニケーションには IRC. われた時点,一般的にはコードフリーズされてから半月. (Internet Relay Chat)も広く用いられている.. 後に,最初の RC 版の作成が行われる.RC 版はプレリ.  その他の一般的な情報提供については,主に WWW. リース版よりもさらに多くのユーザによって使われるた. が用いられている.メールアーカイブも WWW によっ. め,より詳細な問題を発見するために役立てられる.以. て閲覧することができるほか,CVS によって管理され. 降,数回にわたって RC 版の作成を行い,目立った問題. ているプロダクトも WWW 越しに閲覧することができ. が発見されなくなった時点で,最終版であるリリース版. るため,最新のソースコードはもちろん,過去の開発. が作成される.. 経緯についても生の情報が WWW によって提供されて.  リリース版作成の際には,FreeBSD 自身だけではな. いる.. く,ports より作成されるアプリケーションパッケージ.  本稿が他のオープンソース開発の状況を調査する際の. の作業や,ハンドブックなどのドキュメント関連の作業. 参考になれば幸いです.. が並行して行われる.リリース版が確定すると,ftp 配. 参考文献 1)Concurrent Versions System: http://www.cvshome.org/ (平成 14 年 11 月 4 日受付). 布のマスターサイトにそれが置かれ,これが世界中のミ ラーに広まった時点でリリース告知が行われる.   「リリース日を守る」という時間制約を満たすために は,いろいろ努力が払われている.まず,前述したコー ドフリーズ中のリリースチームによるレビューである. これにより,システムにとって重要な修正は基本的に禁 止され,細かいバグや挙動に変更を加えないことが保証 されている内容のみがソースコードに加えられることと なる.もちろん,どうしても間に合わない,という場合 にはリリース時期が延期されることになるが,過去の経 験では,長くても 1 カ月程度の延期でとどまっている.  もう 1 つの努力として,定期的なリリース版の提供が あげられる.これは,毎日最新の FreeBSD ソースコー ドを用いて,実際のリリース版と同じ形態の配布物を 自動的に作成して提供するものである.これを用いるこ とにより,インストールの際にのみ発覚する問題を,コ ードフリーズ中以外でも容易に発見することが可能とな る.また,すでに FreeBSD が稼働している PC では,最 新のソースコードを入手して新しい FreeBSD を生成す ることが可能であるため,最新のソースコードにのみ存 在する問題を未然に発見するのに役立っている.. ■開発ツール  FreeBSD の開発では,他のオープンソース開発と同 種のツールが用いられている.まず,FreeBSD のプロダ クトは CVS(Concurrent Versions System). 1). によって管. 理されている.前述したコミッタは,CVS によって管 理されているプロダクトを専用のツールを用いて修正 する.  コミッタ相互はもちろん,一般的に議論や情報交換を 行う場合には,電子メールが広く使われている.電子メ. 1332. 43 巻 12 号 情報処理 2002 年 12 月. −4−.

(5)

参照

関連したドキュメント

の見解では、1997 年の京都議定書に盛り込まれた削減目標は不公平な ものだったという。日経によると、交渉が行われた 1997 年時点で

つの表が報告されているが︑その表題を示すと次のとおりである︒ 森秀雄 ︵北海道大学 ・当時︶によって発表されている ︒そこでは ︑五

て当期の損金の額に算入することができるか否かなどが争われた事件におい

2)海を取り巻く国際社会の動向

で実施されるプロジェクトを除き、スコープ対象外とすることを発表した。また、同様に WWF が主導し運営される Gold

巣造りから雛が生まれるころの大事な時 期は、深い雪に被われて人が入っていけ

2リットルのペットボトル には、0.2~2 ベクレルの トリチウムが含まれる ヒトの体内にも 数十 ベクレルの

❸今年も『エコノフォーラム 21』第 23 号が発行されました。つまり 23 年 間の長きにわって、みなさん方の多く