2009年9月23日水曜日

Linux 32ビット版と64ビット版の違い -- アドレス空間

というわけで今やメイン環境はDebian GNU/Linux x86_64(64ビット版)になった。

そもそも何故64ビット版に移行したのかというと、このノートもメモリが4GBだが、もっと多くのメモリを搭載したデスクトップマシンを使えるようになったが、その時にアドレス空間が32ビットという足枷を外したかったからだ。
Core2Duo(Pentium4位から?)には実は拡張が施されていて、32ビットモードでもアドレス空間だけは36ビットでアドレッシングできるらしい。
4GBというと丁度32ビットアドレッシングの限界なわけで、それ以上のメモリを積んでも扱えなくなってしまうわけだが、36ビットになって4ビット増えた事でその16倍、つまり64GBまでは扱えるようになっていたらしい。今度手に入れたデスクトップもさすがにそこまでのメモリは積んでいないので、32ビット版のLinuxでも良いのかも知れない。

が、実は32ビット版には、1プロセスでは2GBまでしか利用できないという限界もあるのだそうだ。さらに、実際のカーネルによるメモリ配置と利用法により、実際には2GBすら使えないらしい。
これまで使っていたマシンで最大のものでも2GBメモリだったので、そこまでを現実問題として考える事はなかった。しかしもはやノートでも4GB、そしてそれ以上のメモリが利用できるようになった。

そして64ビット版では、アドレス空間は64ビットに綺麗に広がり、1プロセスでの上限の壁も消えているらしい。
という事で、64ビット版に移行した第一の目的は、大規模メモリを無駄なく利用できるようにするためだ。

0 件のコメント: