web-dev-qa-db-ja.com

Linuxと(Free)BSDカーネルの概念的な違い

(この質問が以前に尋ねられたことにすでに気づきましたが、トピックを理解したい方法で回答されていないと思います。)

の概念的および構造的な違いは何ですか

  • Linuxカーネル
  • BSDカーネル(FreeBSDとしましょう)

結局のところ、どちらもカーネルですが、構造、機能、特殊化に違いがあると思います。どのシナリオで、ある種類のカーネルが他の種類のカーネルよりも優れていますか? (Webサーバー、データベース、コンピューティングなど)

1つの共通のカーネルまたは特定のモジュールに力を集中させるための共同の努力はありますか、それともとにかく無意味でしょうか?

PS:異なるライセンスタイプや配送/パッケージング/メンテナンスのアプローチは、このコンテキストでは重要ではありません。構造的、機能的、機能的なレベルと専門分野でどのように異なるかを理解することに本当に興味があります。

21
binaryanomaly

1。 LinuxカーネルとBSDカーネルの概念的および構造的な違いは何ですか?

アーキテクチャと内部構造に関しては、当然、物事のやり方に違いがあります(つまり:lvmgeom、初期の複雑なjail機能はFreeBSDの...)ですが、全体としては2つの間にそれほど大きな違いはありません。

  • BSD *カーネルとLinuxカーネルはどちらも、純粋にモノリシックなアプローチからハイブリッド/モジュラーへと進化しました。

それでも、彼らのアプローチと歴史には根本的な違いがあります:

  • BSD-kernelはBSDライセンスを使用しており、Linux-kernelはGPLライセンスを使用しています。
  • BSD-kernelはスタンドアロンのカーネルではありませんが、全体の一部として開発されています。もちろん、これは単なる哲学的観点であり、技術的観点ではありませんが、これはシステムの一貫性を与えます。
  • BSD-kernelは、より保守的な視点で開発されており、ファンシーな機能を持つよりも、アプローチとの一貫性を保つことについてより多くの懸念があります。
  • Linuxカーネルは、ドライバー、機能などの詳細です(多ければ多いほど良い)。

同様に 他の場所で述べられている

それはインテリジェントデザインと注文(BSD *)対自然選択とカオス(GNU/Linux)です。

2。どのシナリオで、ある種類のカーネルが他の種類のカーネルよりも利点がありますか?

それらの全体的な構造と概念については、ほとんどバニラのLinuxカーネルとFreeBSDカーネルを比較しながら、多かれ少なかれ同じ一般的な使用レベル 、それは特に特化されていません(リアルタイム、高度に並列化されていない、ゲーム指向ではない、埋め込まれていない、など)。

もちろん、ネイティブZFSサポートやFreeBSDのgeomアーキテクチャとLinuxの多くのドライバーやさまざまなファイルシステムなど、いくつかの違いがあります。しかし、Webサーバーやデータベースなどの一般的なソフトウェアが実際に違いをもたらすために実際に使用するものはありません。これらのケースでの比較は、ほとんどの場合、2つの間のチューニングの戦いで終わりますが、大きなことは何もありません。

しかし、OpenBSDはセキュリティへの深く一貫したアプローチを持っていると主張する人もいますが、強化されたLinuxディストリビューションはバニラLinuxカーネルの「修正された」バージョンです。これは、Steam-OSがゲームをプレイするナンバー1であるように、そのような非常に専門的なシステムに当てはまる可能性があります。

3。 1つの共通のカーネルまたはの特定のモジュールに力を集中させるための共同の取り組みはありますか?

no共通のカーネルに力を集中させるための共同の取り組みがあります。これは、主要なライセンス、哲学的またはアプローチの問題があるためです。

OpenZFS のような実際の共通の取り組みが存在する場合、ほとんどの場合、それはお互いから取られた、または着想を得たドライバーとコンセプトに関するものです。

24
Ouki

いくつかのポイントに対処する部分的な回答

多くのオプションは、オープンソースの開発を外から見たときに悪いこととしてしばしば認識されますが、それを自然界のように考えると、ペンギンなど、多くの種類の動物(多くの場合)があります。 17個あります 。それぞれが特定の要件セットに特化しているため、オープンソースプロジェクト(通常)でも同様です。自然淘汰は、時間が経つにつれ適さなくなったオープンソースを取り除くのに役立ちます。

1つの共通のカーネルまたは特定のモジュールに力を集中させるための共同の取り組みはありますか、それともとにかく無意味でしょうか?

意味のないことかもしれませんが、それは時々重複した作業ですが、これらのコンポーネントに取り組む人々も、真空でそれを行っていません。彼らは他の人が何をしているかを見回し、アプローチやアルゴリズムがあれば、それが理にかなっているときにそれを組み込んでいます。

他の弾丸に関する構造の違いについて話すことはできませんが、少なくとも2つは対処したいと思っていました。

5
slm