回答受付が終了しました

Linuxはモノリシックカーネルと言われているのに、なんで、窓のOSよりメモリを喰わないディストリビューションが可能なんですか?

Linux系 | プログラミング20閲覧xmlns="http://www.w3.org/2000/svg">100

回答(2件)

1

いろんな要因があってのことですし OSの仕組みと機能の違いも甚だしいので なにか、この一つが決め手となるものは、たぶんありません。 たとえば、一つの要素は、Linux系OSでは良くも悪くも 開発リソースが限られていますから、最大限可能なものは共用します。 同じことのために、二つのコードが入っているということは そうそう無いはずです。 Windowsにはそれがあるかどうかは知りませんが OSの管理の概念が違うので、そういうことはあるかもしれません。 また、Linux系OSで軽量OSを作ろうとした場合 そもそも、カーネルバイナリーを小さく作ることができます。 Windowsユーザーは、どこをどうやっても NTカーネル自体を改変する手段がありません。 エンドユーザーにとって、Windowsの軽量化において 不可侵の部分があります。 それが、たとえば「XPが無理だからWindows 98SEで頑張る」 みたいな考え方をせざるを得ない状況もありました。 しかし、Linuxカーネルは、もし1998年水準の機能のカーネルでいいなら 現行のカーネルのソースコードに大きく手を入れて 新しい機能を全部消して、小さなカーネルを作ることができます。 モノリシックカーネルとは言え、割って削って 小さな石にすればいいという考え方が、OSSなら成り立ちます。 軽量化と高機能を、秤にかけて選ぶ そうすることによって、特別に軽量なLinux系OSができます。 実際に、個々のディストリビューションがどうしているかは 細かい資料が日本語で見つかるとは思いませんし GPLに基づいて、それぞれのディストリビューションから 取り寄せられるソースコードを集め、diffなどで比較しても それを短時間で理解できる人はいないと思います。 また、カーネルだけ軽量化したとしても すべてのアプリケーションを当時の水準にしなければ そこまで軽くはならないでしょうし その上で、セキュリティの問題も解消していくことは 実質的に不可能でしょうから、問題はそこにもあると思います。 極めつけに、コンテンツやアプリケーションの肥大化は カーネルだけ、どれだけ小さくしても抗いようがありません。 実際Tiny Core Linuxなどは現行OSながら Pentium IIどころかi486でも動くようですが それで得られる実用性は、必然的に限られるはずです。 SSE2が無くても動くように作られた FirefoxやChromiumのforkがあったとしても それでYouTubeがi486で見られるというわけにもいかないはずです。

1人がナイス!しています

0

大型トラック1台と、 頭は小さい3連結トレーラーは、どっちが重い?的な たとえカーネルだけ小さくともOSとして、機能するまでに大量のパーツを組み込んでいけば重くもなります。 しかも、その組み込みが自動で強制であればなおさら。 >起動時には、500MBを切るんですが、OSってそんなものですか? ほんの30年前のLinuxは、4MBのメインメモリのマシンで動いてた記憶が。