Linux

Linuxのメモリを扱う際に必要な事項を書いています。

メモリを示すデバイスファイルについてです。

/dev/memファイルは物理メモリを示すキャラクタデバイスファイルです。各バイトのアドレスが物理アドレスとして解釈されます。存在しない場所へのアクセスはエラーが返ります。

/dev/kmemファイルはカーネルの仮想メモリを示すキャラクタデバイスファイルです。

物理メモリの保全は、一般的にddで/dev/memを利用して保全します。しかし、最近のディストリビューションではアクセスができないようにカーネルがビルドされていて、何らかの解決策が必要になります。

また、例えばDebian Etchでは/dev/memを利用してddでイメージングすることが可能です(ただし、最後にエラーが発生します)。/dev/kmemを指定するとすぐにエラーが発生して1ページ分しか取得できません。