Linuxがデスクトップ、ラップトップ、サーバー、組み込みデバイス、携帯電話など、さまざまな種類のマシンでうまく動作するのはなぜですか?これは主にシステムが開いているためか、システムの一部を変更して異なる環境で動作するようにできますか?または、このOSがこのような幅広いプラットフォームで動作しやすくするLinuxカーネルやシステムの他のプロパティがありますか?
Linuxがデスクトップ、ラップトップ、サーバー、組み込みデバイス、携帯電話など、さまざまな種類のマシンでうまく動作するのはなぜですか?これは主にシステムが開いているためか、システムの一部を変更して異なる環境で動作するようにできますか?または、このOSがこのような幅広いプラットフォームで動作しやすくするLinuxカーネルやシステムの他のプロパティがありますか?
回答:
オープン性は確かにその一部ですが、重要な要因は、Linus Torvaldが、大規模から小規模まで、すべての作業がメインラインLinuxカーネル内で適切に行われているという主張を続けていることだと思います。ある時点で彼が線を引いて「大丈夫、その派手なスーパーコンピューターのハードウェアにはフォークが必要だ」と言うことに決めたなら、ハイエンドとスモールシステムを完全に分離したバリアントが開発されたかもしれません。現状では、代わりに人々はそれをすべて一緒に比較的うまくプレイするというより難しい仕事をしました。
そして、物事の一方が他方を損なうことを可能にするクラッジは、一般的に許可されていません-再び、人々をより難しいがより正しい方法で問題を解決することを強制します。クラッジが必要なものがあれば、歴史的な脚注になります。
Q:Linuxは汎用性の高いシステムです。PC、巨大サーバー、モバイル、その他10台程度のデバイスを提供します。あなたの特権的な立場から、Linuxが最高の可能性を発揮するのはどのセクターですか?
A:Linuxの真の力は、まさに1つのニッチではないことだと思います。誰もが一緒に遊ぶことができ、さまざまな人々やさまざまな企業は、彼らにとって何が重要であるかについてまったく異なる動機と信念を持っています。だから私は特定のセクターに興味さえありません。
Linuxは、次の理由により、さまざまな種類のハードウェアに対応します。
fork
が可能であるという仮定がありfork
、非仮想メモリシステムでは合理的に効率的に実行することはできません。指定されたポートはおそらくLinuxカーネルの一部を使用し、一部のLinuxソフトウェアを実行できますが、ほとんどの場合、これらのポートによって公開されるAPIは通常のLinuxカーネルとは異なります。(例:メモリマッピング-これには明らかに仮想メモリが必要です)
Linux Kernelは、それがそうであるため、うまくスケーリングします。コアカーネルは比較的小さく、必要な処理を行います。デバイスドライバーはオプションであり、小規模なシステムではカーネルから除外できます。最小限のカーネル要件を超えて、ほとんどの機能はオプション機能として実装されています。
ほとんどのカーネルの隣にインストールされている設定ファイルを見てください。オンになっているすべての機能と、サポートされているドライバーが一覧表示されます。
ドライバーは、カーネルに組み込まれているか、ロード可能なモジュールとしてサポートされています。これにより、実行中のハードウェアに合わせてカーネルを動的に構成できます。これは、多くのディストリビューションで使用されているアプローチです。
コンパイルツールを使用する以外に、新しいハードウェア用にカーネルを変更するのは比較的簡単です。新しいプロセッサの場合、既存の機能への変更として、関連するコードのみを実装する必要があります。新しいデバイスには、関連するフックを備えた新しいドライバーのみが必要です。同様に、新しいファイルシステムは比較的些細な変更です。
コードベースは、外部フォークなしでこの柔軟性を維持するために適切に維持されています。条件付きコンパイルは、可能な限り最小限に抑えられた非常に柔軟なカーネルを駆動します。
この回答を裏付ける詳細な技術的専門知識はありませんが、私の経験では、Linuxは私が頻繁に使用する他のオペレーティングシステム(主にWindows)と比較して十分に拡張できることが示唆されています。したがって、おそらく疑問は、WindowsがLinuxほどうまく拡張できない理由です。
質問をそのように言い直すことがあなたにとってまだ有用であれば、主にエンドユーザーが新しいシステムを購入するときにオペレーティングシステムのコピーをより多く販売するため、市場の力がマイクロソフトに最新かつ最も能力のあるハードウェアに合わせた機能を追加するよう動機付けることをお勧めします。そのため、どの時点でも、Windowsの最新リリースは、性能の低い古いハードウェアではパフォーマンスが低下することがわかりました。
それがあなたの質問を単純化しすぎているのなら許してください。