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


19

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

概念と構造の違いは何ですか

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

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

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

PS:このコンテキストでは、異なるライセンスタイプまたは配送/梱包/維持のアプローチは重要ではありません。私は、構造、機能/機能レベル、および専門性の違いを理解することに本当に興味があります。


1つの共通のカーネルまたは特定のモジュールに力を集中させるための共同の努力はありますか、それともとにかく意味がありませんか?私が最初に考えたのは、「LinuxとFreeBSDの混在に完全に基づいた」第3のカーネルを作成するために、おそらくどのようなポイントがあるのでしょうか?
goldilocks 14年

いいえ、まったくそうではなく、むしろその逆です-両方で同じ部分の協力を確立します。特定のドライバーについては、私が間違っていなければ、これはすでに当てはまると思います。
値異常14年

1
@binaryanomaly:両側にとって、異なるライセンスが非常に重要です。通路の両側でそれをイデオロギーと呼ぶことさえできます。たとえば、GCCはかつてBSDの問題点でしたが、FreeBSDはまさにこの理由で、ライセンスの問題のためにデフォルトとしてClangに切り替えました。
0xC0000022L

1
@ 0xC0000022L:あなたは確かに正しいです。ライセンスに関する質問は重要ではないとは言いたくありませんでした-この特定の議論の主な焦点にならないようにしたかっただけです。
値異常14年

本当に@goldilocksです。3つ目のことは、あまりにもLinuxyでもBSDishでもないというメリットはありませんが、ちょうどいいですか?
ジョシュランブト

回答:


22

1. Linux-KernelとBSD-kernelの概念的および構造的な違いは何ですか?

アーキテクチャと内部構造に関しては、当然、物事のやり方には違いがあります(つまり、lvmgeom、FreeBSDの初期および複雑なjail機能など)。

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

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

  • BSD-kernelはBSDライセンスを使用しており、Linux-kernelはGPLライセンスを使用してます。
  • BSD-kernel はスタンドアロンのカーネルではありませんが、全体の一部として開発されています。もちろん、これは単なる哲学的な観点であり、技術的な観点ではありませんが、これはシステムの一貫性をもたらします
  • BSDカーネルは、より控えめな視点で開発されており、派手な機能よりも一貫性を保つことに関心があります。
  • Linuxカーネルは、ドライバー、機能、...(より良い)についてです。

大きく別の場所で述べたように

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

2.ある種類のカーネルが他のカーネルよりも有利なシナリオはどれですか?

全体的な構造と概念については、ほぼバニラのLinuxカーネルとFreeBSDカーネルを比較しているが、それらはほぼ同じ一般的な使用レベルです。ゲーム指向、埋め込みではありません...)。

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

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

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

主要なライセンス、哲学、またはアプローチの問題があるため、1つの共通のカーネルに力を集中させる共同の努力はありません

OpenZFSなどの実際の一般的な取り組みが存在する場合、ほとんどの場合、ドライバーやコンセプトが互いに取り入れられたりインスピレーションを受けたりします。


BSDに関するGlibの一般化は通常間違っています。たとえば、ここで注意してください。DragonFlyBSDが存在するの、保守的であることはBSDの世界に適用できる一般化ではないからです。
JdeBP

5

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

多くの選択肢は、オープンソースの開発を検討している外部から見ると、悪いことと見なされることがよくありますが、自然界では、多くの種の動物(多くの場合)がペンギンと言っています。17あります。それぞれが特定の要件セットに特化されているため、オープンソースプロジェクトでも同様です(通常)。自然選択は、時間の経過とともにあまり適切ではないオープンソースを取り除くのに役立ちます。

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

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

他の箇条書きに関する構造の違いについて話すことはできませんが、少なくともそのうちの2つに対処すると思いました。


そこには確かに専門性があります。一方、ペンギンのDNAは非常に高い割合で(猿と人間の場合と)まったく同じであり、小さな領域でのみ異なると確信しています。自然は冗長な努力を避けるのに非常に優れていますが、必要な時と場所だけを区別します。数十億回の自然な反復(複製)が、与えられた環境条件に最適なパターンを決定(選択)します。(哲学的になりつつあります;)
二値異常

@binaryanomaly-それは類推の問題です8)。プログラミング言語/コードの相関関係はDNAと相関させるのが難しいため、おそらく私はそのレベルに到達しないでしょう。
slm

良い答えとペンギンを使った良い比較。努力の重複が必ずしも悪いわけではなく、プロジェクトの分岐が必ずしも終わりではないことをしばしば忘れます。それは本当に進化的なプロセスであり、発生する必要があり、新しいアイデアを生み出したり、惨めに失敗したりする可能性があります。
ラファエルアーレンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.