EuroBSDCon 2011レポート
はっきり見えてきたFreeBSD 10の行方
後藤 大地
2011/10/25
GPLフリーのツールチェーン実現への道
FreeBSDはGCCなどコンパイラを含むGPL由来のツールチェーンを完全に廃止し、BSDライセンスのツールだけで構成するツールチェーンを実現しようとしている。現在のところ、残っている最大の関門はリンカだ。この部分が開発できればBSDワールドをBSDツールチェーンのみで構築できるようになる。
事の発端はGCCがそのライセンスをGPLv2からGPLv3へ変更したことにある。FreeBSDプロジェクトはGPLv3をベースコードにマージしない方針を採用している。このため、FreeBSDのGCCや関連ツールチェーンは、GPLv2でリリースされた最後のGCCで止まっている。これは、2007年8月末にリリースのGCC 4.2.2で、すでに4年も前のコンパイラだ。ツールチェーンに問題が発生しても、もはやサポートを期待できないなど、実際に悪影響があるので、ほかのコンパイラへの移行は急務とされている。
そこでFreeBSDプロジェクトはLLVM(Low Level Virtual Machine)と、「Clang」コンパイラに目をつける。最初にLLVM Clangが*BSD開発者の前で披露されたのはBSDCanのときだったが、多くの開発者がその存在に驚いてたことが記憶に新しい。以後、FreeBSDはClangへの興味を深め、現在ではamd64版とi386版がほぼ対応を終えている。
標準のコンパイラをClangへ変更すると、Ports Collection側でも対応が必要になる。多くのサードパーティアプリケーションやライブラリをClangでビルドできるように変更しなければならない。さらに、Clangではビルドが難しい対象(例えば特定のインラインアセンブラを多用しているコード)にはほかのコンパイラを使用するなど、コンパイラ/ツールチェーンを動的に切り替える仕組みも必要になる。このあたりはPorts committerの今後の開発課題に入っている。
コンパイラをGCCからClangへ切り替える動きや、有名ソフトウェアベンダでClangを利用するシーンの増加は、世界的な流れだ。FreeBSDのコンパイラをClangに切り替えようとする動きは、こうした流れと合わせているといった側面もある。
GPLフリーのツールチェーンの実現はアプライアンスや組み込みデバイスベンダにも利点がある。例えば動作の最速化を実現するために、動作時に動的にC言語のソースコードを生成し、コンパイルしてカーネルに読み込んで実行させるといった処理をすることがある。こういう場合は、やはりコンパイラも含めてBSDライセンスである方が扱いやすい。こういう手法を利用するベンダはライセンス問題に対して敏感であり、BSDライセンスやMITライセンスなど扱いやすいライセンスを好む傾向がある。
今回のDevSummitでは開発者の間で「FreeBSD 10をめどに、GPLフリーのツールチェーンを実現したい」という同意ができつつあった。残る最大の難関はリンカだ。この部分さえクリアできれば、BSDライセンスだけで済むツールチェーンをほぼ実現できる。FreeBSD 9でも、リンカ以外はかなり良いところまで進んでおり、GPLフリーのツールチェーンの実現可能性は高いと感じる。
標準のコンパイラをClangに変更するにはまだまだクリアしなければならない課題がある。しかしこれは、可能性としての提案ではない。確実にこの方向で進めていこう、FreeBSD 10で実現しよう、と多くの開発者が同じ思いを共有していたのは注目しておくべきことだ。
各国からの参加状況
EuroBSDCon2011の参加者の半数弱は開催国であるオランダの開発者だ。あとは、オランダの3分の1ほどの開発者がドイツから、オランダの7〜8分の1ほどが米国・英国・スイスから。あとは細かくフランス、ルーマニア、オーストリア、スウェーデンと続く。合計27カ国から開発者が参加していたが、日本からの参加は4名。うち、日本生まれ日本育ちは2名の参加だった。
EuroBSDConは地元からの参加が多い。あとは欧州各国から顔なじみがやってくるということが多いように思える。海外の*BSD国際会議で、日本からの参加者を見かけることはあまり多くない。敷居が高いのは事実だが、貴重な情報、重要な情報を得やすい場でもあるので、FreeBSDを開発に採用している企業や学術機関などは、積極的にこうした国際会議に参加して頂きたいと思う。さらに、国際会議への従業員や関係者の派遣、または東京で開催されるAsiaBSDConへの参加、またはスポンサーシップの提供なども検討していただければありがたい。
後藤 大地 オングス代表取締役。@ITへの寄稿、MYCOMジャーナルにおけるニュース執筆のほか、アプリケーション開発やシステム構築、『改訂第二版 FreeBSDビギナーズバイブル』『D言語パーフェクトガイド』『UNIX本格マスター 基礎編〜Linux&FreeBSDを使いこなすための第一歩〜』など著書多数。 |
3/3 |
|
||||||
|
- 【 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」コマンドです。
|
|