Linux 2.6 を 4MB RAMで 19
ストーリー by Oliver
ぎゅぎゅっと 部門より
ぎゅぎゅっと 部門より
yosshy 曰く、 "Linux Kernel ML にて、Linux 2.6.0 を組み込み機器や古いマシンなどの小メモリシステムで動かすためのパッチがアナウンスされている。アナウンス文中の /proc/meminfo の表示を見ると、カーネルが 4MB のメインメモリ上で本当に動いているのが分かる。また、ネットワークコンソール出力(netconsole)、カーネルデバッガ(kgdb)対応等の機能も盛り込まれており、組み込み向けには美味しいパッチになっている。"
4MBだと、 (スコア:1)
他に有用そうなのはPalmTopPC110とかの古いノートPCかな。。そのへんにフォーカスして日本語が通るディストリビューションってないのかしら。
組み込みという辺りを考えると色々有りそうですね。ルータとか8MBくらいメモリ積んでるのも有りますし。
Re:4MBだと、 (スコア:1, 参考になる)
MC-MK12からメモリ4Mですよ。
Re:4MBだと、 (スコア:1)
Windows95がぎりぎり動作する環境ですから。
# そういえば昔i386にRAM4MBを乗せてWindows95を動作させていた人がいたような
Re:4MBだと、 (スコア:1)
試してみたかったけど英語版持ってなかったから憧れるだけで終わってしまいましたが
Re:4MBだと、 (スコア:1)
俺も憧れ(笑)のWinは載せられなかったけど、その羨ましさは、
もっと憧れのBSDを載せれたので、綺麗に解消したのでした。
#RubyMGL以下略なのでG7
Re:4MBだと、 (スコア:0)
押し入れに転がってるグリーンPCもそうなんだけど。
ディスクイメージが欲しいや。
しかし4MBでは動かなくなってたということに逆にビックリだな。
とりあえず普通のディストリビューションだとインストール時にRAMディスク確保失敗とかでどうにもなんないけど、
母艦なりなんなりで入れてしまえば今
Armadillo-J (スコア:1)
Re:Armadillo-J (スコア:1)
開発中らしいので、いずれは動くようになると思いますが。
Re: Linux 2.6 を 4MB RAMで (スコア:0)
とりあえずコンパイルしてみよっかな・・・
と思ったのだけど、帰省中でLinux環境が無い。
従兄弟の部屋を回ってPCを1台でっちあげるかな。
#自宅にsshログインできるようにしておいたのに、
#なぜかpingも通らないんだよなぁ。
#自宅往復の方が、PC組み立てるより早いか?。
#とりあえず、今晩はpatchをながめてみよう。
Re: Linux 2.6 を 4MB RAMで (スコア:0, オフトピック)
> #なぜかpingも通らないんだよなぁ。
外から自宅に ssh login するのが初めてだったため、設定したつもりが、
実は外からのコネクションを全部叩き落しているのを忘れていたに
108 除夜の鐘。
うをーーーー! (スコア:0)
それにしても (スコア:0)
最初に入れたときは6MB程度だったような気がするんだけど。
いまや200MB以上?展開するのも億劫です。
#ちなみに2.6まだ動いてません。uncompressing...
#のあとに再起動かかる、、、
Re: それにしても (スコア:3, 参考になる)
デバイスドライバ
拡張機能
(複数のファイルシステム等々)
が、コード量増大の原因です。
kernel本体(kernelディレクトリ以下)自体は、爆発的に増えてるわけじゃないです。
Re: それにしても (スコア:2, 参考になる)
kernel本体には
mm/ディレクトリ以下も含まれます。
#ただしこちらは環境によっては使われない部分もあります
こちらもコードをバリバリ追加するというよりは
書き換えが基本です。
Re: それにしても (スコア:2, 興味深い)
使わないモードのファイルやフォントまでチェックしないと
compileが通らないのは、何とかならないかな。
そうすればかなり小さくなるのにと思う今日この頃。
Re: それにしても (スコア:1, 参考になる)
モード?
ファイル?
フォント?
えーとモードは機能のこと?
ファイルはソースファイル?
フォントはframebuffer用のやつ?
最近気付いたのが、mouse-base関連のコードで
synapticsのドライバ選択してないのに一部依存してて
リンクの段階で使わないのにリンクされちゃう。
それは簡単に解決したんだけど、他にも似たような部分があるという事かな。
#そのコード自体はドライバがマウスを自動判別するために必要だったので無意味な物じゃなかった
#そこで意味のある変更を加える場合kernel configでsynapticsの選択肢をなくして強制的に有効にさせれば
#自動判別は完璧になる
#それはもう2.6.1-rc1で取り込まれてるが
#うちでは依存コードをifdefでくくって
#configで有効になってないとリンクしないように書換えてある
#一般的じゃない(not synaptics)なタッチパッドが上手く動かんかったので
ちなみに使ってない物に関してはファイル単位というよりもソース単位になってて
configでdefineされてる物だけがバイナリに取り込まれるようになってるから
あきらかに使ってない機能を持ってそうなファイル名とかディレクトリ名以下のソースをコンパイルしてても
必ずしもそのファイルの中のコードがバイナリに含まれているかは別の話。
#ifdefで判別して関数を何もしないマクロに置き換えたり
#コードを無きものにしたりということ
つまりバイナリサイズにはそれほど影響してないということです。
コンパイル時間が長くなるので、そこらへんも直ったらいいとは思うけどね。
#別ファイルにすると多少(ほんの少し)時間かかる
#ifdefの条件判断やマクロで置き換えをやるとプリプロセスの作業工数が増えるので、これも多少時間がかかることになる
4M (スコア:0)
Re:4M (スコア:0)
Re:4M (スコア:0)