NetBSD-CURRENTでトップダウンvmが利用可能に 3
ストーリー by yoosee
NetBSDの歩み 部門より
NetBSDの歩み 部門より
BSD 曰く、 "
Andrew Brownが
関係者にあてたメール
によると、NetBSD/i386 プラットフォームでトップダウンvmが利用可能になったとのことだ。
メールによる実例を見て貰えば一目瞭然だが、従来
0x0800000番地から老番地方向へプログラムが置かれ、ヒープ領域が取られていた。
ダイナミックリンクライブラリは0x48000000番地から老番地方向へ伸びていた。
そしてスタック領域が0xc0000000番地から若番地方向へ伸びていたわけである。
ヒープ拡張用領域とmmap割当用領域が別々に存在していたわけである。
これを変更し、mmapをスタック領域から若番地方向へ伸ばすように変更し、
空き領域の管理を1つに統一したわけである。
利点として、より大きいヒープ領域やmmap領域が確保できるようになったのである。
現在、この変更はi386プラットホームでのみ提供されているが、今後他へも
提供される予定である。
現在は、USE_TOPDOWN_VMのオプションを指定してカーネルを再作成し、リブートしなければ
この機能は使えない。将来は、このオプションは廃止し、自動的にトップダウン
vmとなる予定である。
なお、これについての補足情報が
kotori氏の日記にある。参考にさせてもらった。また、NetBSDのUVMについては
BSD magazine 13号に詳しく解説されている。"
老番地 (スコア:1)
(*) って、バカなだけだろう、という気がするので ID X-)
Re:老番地 (スコア:1)
僕は普通は上から0番地にしたいほうです。スタックが
上へ伸びると言われると、よく分からない時があります。
スタックは上へ積むものなんでしょうけどね。
ポップアップ、プッシュダウンというのもありますよね。
どっちかに統一できるものなのでしょうか?
Re:老番地 (スコア:0)
big endian のアーキテクチャでは、0番地が上、
とするのが古来から伝わる慣例だと思います。
もっとも最近は忘れ去られかけているかもしれませんが。