【レポート】
|
|
FreeBSD - The Power To Serve |
FreeBSDはシステムコンパイラとツールチェーンの入れ替えを進めている。2010年5月中旬にカナダで開催されたBSDCan2010およびFreeBSD Developer Summitで、このあたりのまとまった議論と発表があった。GCCからLLVMへの移行はFreeBSDのみならず他のOSSプロジェクトでも進んでいる。FreeBSDの事例が他のプロジェクトにすべて当てはまるわけではないが、FreeBSDの場合にはどういった背景があってLLVMへの移行が決定されたのかがわかって興味深い。なお、いくつかのプロジェクトはFreeBSDと似たような理由で移行を進めている。
FreeBSDはこれまでGCCをシステムのデフォルトコンパイラとして採用してきた。強力な機能、必要とするアーキテクチャにすべて対応し、比較的高速なバイナリを出力する。FreeBSDにとってGCCは必要十分なコンパイラだったが、GCCがライセンスをGPL2からGPL3に変更した時点で状況が一転した。FreeBSDはシステムにマージされているGCCのアップグレードをGCC 4.2.1で停止し、それ以上アップグレードを実施しないことにした。GCC 4.2.1がGPL2でリリースされた最後のバージョンだ。
FreeBSDを利用する企業やユーザからGPL3になったGCCをベースシステムにマージしてほしくないという要望があり、それを受けての処置となる。GCCのみならず、GPL3のコードはFreeBSDのベースシステムにはマージしない方針になっており、今のところその方針が変更される可能性はない。
しかしいつまでもGCC 4.2.1を使いつづければいいというものではなく、いくつかの問題がではじめている。問題点をまとめると次のとおり。
GCCのバージョンをアップグレードできないということは、ツールチェーンのアップグレードもできないということになる。将来のアップグレードが見込めないとなると、別のツールへの変更が対処方法として上がってくるわけだが、ここに現れたのがLLVM Clangだ。
そこでFreeBSD開発者の目を惹いたのがLLVM Clangだ。LLVMは2年前のBSDCan2008でFreeBSD開発者の前に現れ、多くの開発者の関心を惹いた。BSDCan2009以降は実際に対処が進められ、すでにコミット一歩手前まで対応を進めている。ClangBSDと呼ばれるLLVM Clangに対応したブランチはすでにそれなりの仕上がりを見せており、近いうちに9-CURRENTへマージされる見通しだ。
FreeBSDにとってLLVM Clangの利点は次のようなもの。
現状での課題は次のとおり。
amd64は良好、i386には若干の問題あり、mipsとpowerpcは対応中、sparcも対応中で、armに対しては今のところきわだった進展なしといった状況にある。
LLVM Clangへの移行に合わせて、ツールチェーンを従来のGPLベースのものからBSDライセンスベースのものを開発して置き換える作業も進められている。GCC 4.2.1でアップグレードが停止したことにより、FreeBSDベースシステムで使われるツールチェーンも古くなってきているためだ。GCCのバージョンをあげることができなければ、対応するツールチェーンのバージョンもアップグレードできない。結果としてツールチェーンにもGCCの場合と同じ問題があることになり、このタイミングでの入れ替えというわけだ。
導入されることになるのはBSDライセンスで開発されるELFツールチェーンとデバッガ。nm(1)、size(1)、string(1)、c++filt(1)、addr2line(1)、readelf(1)、elfdump(1)、objcopy(1)、strip(1)などのシンプルなツールはすでに変更済み。後はas(1)やld(1)など複雑なツールの実装、libelfの改善、libdwarfの改善、libmcの導入、LLVMとの連携などが取り組まれることになる。
FreeBSDのビルドがLLVM Clangベースになり、そしてPorts Collectionにおけるビルドの大半をLLVM Clangにするには、まだまだ時間が必要。しかし、amd64版とi386版のカーネルとシステムのLLVM Clang対応はすぐそこまで迫ってきており、9.0での実験的な導入、10.0での正式な対応といったあたりが現実的な路線ということになりそうだ。
FreeBSDのケースでは主にライセンスが理由になっているが、コンパイル時間やコンパイルした成果物のパフォーマンスの高さなどからLLVMへ移行するOSSプロジェクトもある。FreeBSDとしてはLLVMのC++対応の改善とアセンブラ機能の改善が現在特に注目される分野であり、FreeBSDマージ後の対応性や性能改善に関与してくるものとみられる。
| FreeBSD 9に新ジャーナル機能登場、fsck(8)高速化 [2010/4/28] |
| ついに登場! FreeBSD 8.0の新機能をさっそくチェックしてみました [2009/11/24] |
| Google、BSDカンファレンス報告 [2009/10/7] |
| FreeBSD 8.0-BETA3登場、調査検討はこの版から [2009/8/25] |
| ルータ専用FreeBSD、BSDRP登場 [2009/7/7] |
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
AKB48の松原夏海「待ち遠しかった」 - 映画初主演作『骨壺』公開に感激 [14:30 5/27] エンタメ |
|
[ゲーム質問状]「ドラゴンズドグマ」 ゲームブックのドキドキ感を今の技術で [13:30 5/27] ホビー |
|
「デビルサバイバー」&「氷結鏡界」シリウスでマンガ化 [13:15 5/27] ホビー |
|
[SKE48]松井玲奈、17人ランクインで手応え「飛躍できている」 [13:12 5/27] ホビー |
|
【レポート】【2010年非オタ編】成功したと思う歴代深夜アニメランキング [13:00 5/27] ホビー |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。