明らかに4.0GiBがありますが、システムに3.2GiB RAMしか表示されないのはなぜですか?

明らかに4.0GiBがありますが、システムに3.2GiB RAMしか表示されないのはなぜですか?

2x2 GiBメモリースティックを取り付けました。 grubブートメニューから実行すると
これを確認しました。 memtest86ではエラーは報告されていません。memtest86

ただし、実行中のUbuntu 10.04システムで使用可能なメモリをどのように確認しても、約3.2GiBしか報告されません。

  • cat /proc/meminfo== 3320132KB
  • System Monitor== 3.2GiB
  • htop== 3242MB
  • free -m== 3242MB

誰が私を持っていますか?失われたメモリ?

更新:私はただダブル- 同じハードウェアから別のバージョンのUbuntu 10.04で起動しました(緊急事態に備えて数ヶ月前にインストールしたことを忘れました):).... by System Monitor...

/var/log/messagesに最新情報を投稿しました。http://pastebin.ubuntu.com/629246/

ベストアンサー1

32ビットアドレス空間は、4GBのアドレス空間があることを意味します。理想的には、カーネルはすべての物理メモリ、現在のタスクのすべてのメモリ、および独自のメモリの両方をマッピングできるようにしたいです。物理メモリ自体が利用可能な4GBをすべて占有しても機能しません。したがって、物理メモリは下位ビットメモリと上位ビットメモリに分けられ、下位ビットメモリは常にマッピングされ、使用時には上位ビットメモリをマッピングする必要があります。パッチ付きカーネルを実行しない限り、ix86アーキテクチャでは、128MBのアドレス空間はカーネルコードとデータ構造専用で、896MBはマッピングされた物理メモリ(合計1GB)専用です。

アドレス空間が合計メモリよりも大きくない場合のメモリ管理の複雑さの背景知識:

カーネルログの抜粋:

BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cdce0000 (usable)
BIOS-e820: 00000000cdce0000 - 00000000cdce3000 (ACPI NVS)
BIOS-e820: 00000000cdce3000 - 00000000cdcf0000 (ACPI data)
BIOS-e820: 00000000cdcf0000 - 00000000cdd00000 (reserved)
BIOS-e820: 00000000d0000000 - 00000000e0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
2404MB HIGHMEM available.
887MB LOWMEM available.
Zone PFN ranges:
DMA      0x00000000 -> 0x00001000
Normal   0x00001000 -> 0x000377fe
HighMem  0x000377fe -> 0x000cdce0

これには887MBの低メモリがあります。理論上、最大896MBから数MBのDMAバッファ(ハードウェアデバイスとの通信に使用されるメモリ領域)を引いたものです。

物理メモリでは、3328MBは4GB未満のアドレスにマッピングされ、768MBは4GB以上のアドレス(範囲0x100000000〜0x130000000)にマッピングされます。この768MBにはアクセスできません。これは、3242 MB(4096 MB RAM - アクセスできない768 MB - 9 MB DMAバッファ - カーネル自体がコードとデータに使用する75 MB)しか使用できない理由を示しています。 BIOSが一部のRAMを4GB表示以上にマッピングする理由はわかりませんが、データポイントとしてRAMも0x100000000–0x130000000にマッピングする4GB RAMを搭載したPCでこの記事を公開しています。

4GB以上の物理メモリをマッピングするために必要PAE。 PAEはわずかなパフォーマンスオーバーヘッドを引き起こすため(特にメモリマネージャにはより大きなデータ構造が必要です)、システム的にはアクティブではありません。デフォルトのUbuntuカーネルはPAEサポートなしでコンパイルされます。得る-generic-paeコア linux-image-generic-paeのインストール最大64GBのRAMにアクセスできます。

TL、DR:Linuxが期待どおりに動作しています。ファームウェアはあまり役に立ちません。 PAEサポートカーネルを入手してください。

おすすめ記事