BSDの日記: NetBSD: mmap(2) システムコールの改良
日記 by
BSD
BSD による Tuesday September 16, @04:17AM の投稿,
そっくりさんを目指して 部門より.
そっくりさんを目指して 部門より.
我曰く、" Pedro F. Giffuniが 関係者にあてたメールによると、 Todd Vierling によってNetBSD に対する mmap(2) の改良パッチが作成されたとのことだ。 mmap(2) はその第1パラメータにメモリアドレスを指定して固定的なアドレス割付を 要求することができる。この時、第3パラメータには MAP_FIXED を指定する。 しかし要求されたアドレスを割り付けることができない場合、システムはエラーを返す。 しかし、Windows のシミュレーションにおいて、PE(Portable Executable) を取り扱う場合などに 不都合が発生するため、Linux では単純にエラーを返さずに、MAP_FIXED が指定して なかったかのように利用可能な別アドレスを割り付けて返すような仕様になっている。 NetBSD においてもこれを実現することが必須である。その実現方法として、 第3パラメータに MAP_TRYFIXED を指定した場合に同様な処理をするように mmap(2) を変更するパッチを作成したのである。 このパッチにより、vfork(2) を実行し mincore(2) によってその割付状況を 確認するというような無駄な処理を削減し、非常に速く PE ファイルの割付を することができるようになったのである。 Windows ユーザが BSD や Linux に移行する際にはこのような環境の必要性が まだまだ大きいと思う。この方面にも力を入れて欲しいと思う。"
NetBSD: mmap(2)システムコールの改良 More ログイン