32 bit adres alanı, 4 GB adresler için alanınız olduğu anlamına gelir. İdeal olarak çekirdek tüm fiziksel belleği, mevcut görevin tüm belleğini ve kendi belleğini eşleştirmeyi sever. Fiziksel bellek tek başına kullanılabilir 4 GB'nin tamamını kaplıyorsa, bu işe yaramaz. Bu nedenle fiziksel bellek, her zaman eşlenen düşük belleğe ve kullanım sırasında eşlenmesi gereken yüksek belleğe ayrılır. Yamalı bir çekirdek çalıştırmadığınız sürece, ix86 mimarisinde, çekirdek kodu ve veri yapılarına 128MB adres alanı ayrılmıştır ve 896MB fiziksel belleği eşlemeye ayrılmıştır (toplam 1 GB için).
Adres alanınız toplam belleğinizden rahatça büyük olmadığında bellek yönetiminin karmaşıklıkları hakkında arka plan okuma:
Çekirdek günlüklerinizden alıntılar:
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
Burada 887MB düşük belleğiniz var: teorik maksimum 896MB eksi birkaç MB DMA arabelleği (donanım aygıtlarıyla iletişim kurmak için kullanılan bellek bölgeleri).
Fiziksel belleğinizin 3328 MB'ı 4GB'ın altındaki adreslerde eşlenir ve 768MB 4GB'ın üzerindeki adreslerde eşlenir (0x100000000–0x130000000 aralığı). Neden yalnızca 3242MB kullanılabilir olduğunu açıklayan bu 768MB'ye erişemiyorsunuz (4096MB RAM eksi 768MB erişilemez eksi 9MB DMA tamponları eksi 75MB çekirdeğin kod ve veri için kullandığı). BIOS'un neden 4GB işaretinin üzerinde bazı RAM'leri eşlediğini bilmiyorum, ancak veri noktası olarak bunu, 0x100000000–0x130000000'de RAM eşlemesine sahip olan 4GB RAM'li bir bilgisayardan gönderiyorum.
Fiziksel belleği 4 GB'ın üzerinde eşlemek PAE kullanılmasını gerektirir . PAE küçük bir performans yükü oluşturur (özellikle bellek yöneticisinde daha büyük veri yapıları gerektirir), bu nedenle sistematik olarak etkinleştirilmez. Varsayılan Ubuntu çekirdeği PAE desteği olmadan derlenmiştir. 64 GB'a kadar RAM'e erişebilmek için -generic-pae
çekirdeğe sahip olun.
TL, DR: Linux beklendiği gibi çalışıyor. Ürün yazılımı çok yardımcı değil. PAE özellikli bir çekirdek alın.