FreeBSDがClang / LLVMを好み、GCCを使用しなくなったのはなぜですか?

FreeBSDがClang / LLVMを好み、GCCを使用しなくなったのはなぜですか?

だからウェブサーフィンをして偶然発見したこの記事。基本的に見せます。FreeBSD、バージョン 10 以降から廃止されました。湾岸協力協議会お得クラン/llvm

これまでオンラインで見た内容によると、クラン/llvmかなり野心的なプロジェクトですが、信頼性の面では従うことはできません。湾岸協力協議会

お持ちですか?人為的なFreeBSDがコンパイラインフラストラクチャとしてLLVMを選択したのはなぜですか?それとも、問題全体が永遠のGNU / GPL対BSDライセンスに帰結しますか?

この問題(何らかの方法で)使用に関する関連情報があります。湾岸協力協議会存在するFreeBSD

ベストアンサー1

要約: 切り替えたい主な理由湾岸協力協議会到着その音GCCと互換性がありません一般公衆ライセンス v3ライセンスとFreeBSDプロジェクトの目標。企業投資とユーザーベースのニーズに関連する政治的な問題もあります。最後に、標準のコンプライアンスとデバッグの容易さの点で技術的な利点が期待されます。コンパイルと実行の実際のパフォーマンスの向上はコードごとに異なり、両方のコンパイラについて議論の余地があります。

FreeBSDとGPL: FreeBSDGPLと良い関係ではありません。 BSDライセンスの支持者は真のフリーソフトウェアを信じています。使用制限なし。 GPLの支持者は信じる制限が必要ですソフトウェアの自由を保護するために、特にフリーソフトウェアから非自由ソフトウェアを作成する能力は、不当な権力形態自由ではなく。 FreeBSDプロジェクトは可能な限り頑張っています。GPLの使用を避ける:

ただし、GPLソフトウェアを商業的に使用すると追加の複雑さが発生する可能性があるため、可能であれば、これらのソフトウェアをより寛大なFreeBSDライセンスに従って提出するソフトウェアに置き換えます。

FreeBSDとGPL v3:これ一般公衆ライセンス v3いわゆる話すことを明示的に禁止します。チボイゼーションコードの脆弱性GPLバージョンこれにより、ユーザーが合法的なソフトウェア修正を許可しないハードウェア制限が発生します。この抜け穴を防ぐことは受け入れられないステップFreeBSDコミュニティの多くの人に:

特に、デバイスベンダーは、現在GPLv2に基づいてライセンスされている大量のソフトウェアが新しいライセンスに移行された場合、最大の損失を被ります。彼らはもはやGPLv3ソフトウェアを自由に使用することができなくなり、ハードウェアにインストールされているソフトウェアを修正することも制限されています。 。

GCCがGPL v3に移行した後、FreeBSDは引き続きGCC 4.2.1(GPL v2)を使用する必要がありました。2007年に再発売、今は明らかに昔ながらです。 FreeBSDが以前のコンパイラを実行し、修正をバックポートするためのメンテナンスの問題が追加されたにもかかわらず、最新バージョンのGCCに移行しなかったという事実は、GPL v3を回避するための要件の強さに関するアイデアを提供します。 CコンパイラはFreeBSDベースの主要コンポーネントであり、FreeBSD 10の(暫定)目標の1つは、GPLなしの基本システムを達成することです。」。

企業投資:多くの主要なオープンソースプロジェクトと同様に、FreeBSDは次の影響を受けます。資金そして開発作業企業で。 FreeBSDがどの程度までAppleによって資金を受け取られたり開発されたのかはわかりませんが、Appleがかなり重複している部分があります。ダーウィンオペレーティングシステム複数のBSD派生を使用します。カーネルコード。さらに、Clang自体はAppleの内部プロジェクトとして始まり、2007年オープンソース。企業資源は FreeBSD プロジェクトの主要な原動力であるため、スポンサーの要件を満たすことが可能になる可能性があります。重要な実際のドライバ

ユーザーグループ:FreeBSDは、ライセンスがシンプルで制限がなく、訴訟につながる可能性が低いため、多くの企業にとって魅力的なオープンソースオプションです。 GPL v3の登場と新契約バンティボワ条項、誰かが以下を提案しました。サプライヤー中心の傾向は、より許容可能なライセンスに向けて加速されています。。商用オブジェクトに対するFreeBSDの利点は許容ライセンスであるため、企業のユーザーベースでは、一般的にGCCとGPLを放棄する圧力が高まっています。

GCCの質問:ライセンスに加えて、GCCを使用すると、いくつかの認識された問題。 GCCは標準に完全に準拠しておらず、ISO規格Cには見られない多くの拡張。 300万行を超えるコードを含むこの製品は、最も複雑で無料/オープンソースのソフトウェアプロジェクトの1つ」。この複雑さにより、リリースレベルのコードの修正が困難な作業になりました。

技術的な利点:Clangにはいくつかあります。GCCに比べて技術的利点。最も注目すべきことは追加情報を提供するエラーメッセージそして明示的に設計されたAPIIDE用のリファクタリングおよびソースコード分析ツールです。 Clangのウェブサイトにもかかわらず現在のプロットより効率的なコンパイルとメモリ使用量を示し、実際の結果は次のとおりです。劇的な変化、パフォーマンスはGCCとほぼ一致しています。通常、Clangで生成されたバイナリゆっくり走る同等のGCCバイナリより:

LLVMでコードを書くのはGCCよりも高速ですが...ほとんどの場合、GCC 4.5でビルドされたバイナリはLLVM-GCCまたはClangよりもパフォーマンスが優れています...テストの残りの部分では、GCCに近いか非常に遅くなります。一部のテストでは、Clangで生成されたバイナリのパフォーマンスが非常に悪かった。

結論として:特にバイナリパフォーマンスが不足している場合、コンパイル効率はFreeBSDなどの大規模プロジェクトをまったく新しいコンパイラツールチェーンに移動する大きなリスクを取るために重要な動機にはなりません。しかし、このような状況は実際には持続できません。 1)古いGCCを実行する場合、2)最新のGCCに移行し、プロジェクトの目標と互換性のないライセンスを使用する必要がある場合、または3)信頼性の高いBSDライセンスコンパイラに移行するオプションを考慮すると、この決定はおそらく避けられなかったでしょう。これは、基本システムとディストリビューションのサポートにのみ適用されることに注意してください。ユーザーがFreeBSDシステムに最新のGCCをインストールして使用するのを妨げるものはありません。

おすすめ記事