GNU/Linux >> Znalost Linux >  >> Linux

Proč příkaz free a dmidecode ukazují různé hodnoty pro RAM?

S 32bitovým jádrem máte k dispozici pouze 4 GB adresového prostoru . Část tohoto adresního prostoru musí využívat (virtuální nebo fyzický) hardware v systému, jako jsou grafické karty, síťové karty atd., pro jejich vlastní účely. Toto využití je obvykle mezi 256 MB-1 GB v závislosti na tom, kolik adresního prostoru konkrétní hardware potřebuje.

Protože tento adresní prostor využívá hardware, odpovídající RAM je obecně pro 32bitový systém nedostupná.

Máte několik možností:

  1. Preferovanou možností je provozovat 64bitový operační systém. Tím se dramaticky rozšiřuje adresní prostor, takže je zde dostatek místa pro veškerou paměť RAM a hardware. Také prolomí 2GB/3GB 32bitový limit pro aplikace a zároveň zachová možnost spouštět 32bitové programy. Obecně platí, že každý systém s 2 GB paměti RAM by měl používat 64bitový operační systém, aby se předešlo těmto problémům.
  2. Další možností je spustit 32bitové jádro s povoleným PAE. Tím se zobrazí RAM, ale každý proces bude stále omezen na 2 GB/3 GB adresního prostoru, v závislosti na podrobnostech sestavení jádra. Vzhledem k tomu, že 64bitové operační systémy budou perfektně spouštět 32bitové aplikace, nemá to žádnou výhodu a mnoho nevýhod (jako je absence možnosti upgradu).

Výstup free příkaz nepočítá rezervovanou paměť jádra a několik dalších malých bitů. Tento nesoulad uvidíte i v 64bitovém jádře a dokonce i s <2GB RAM.


Kritická čára z vaší fyzické mapy RAM je tato:

 BIOS-e820: 0000000100000000 - 0000000140000000 (usable)

Tento řádek ukazuje, že 1 GB (0x40000000 bajtů, hexadecimálně) fyzické paměti RAM vašeho systému je mapován systémem BIOS nad limit 4 GB, takže je pro 32bitový systém bez PAE nedostupný.


Linux
  1. Šest nejlepších bezplatných, open source a podnikových e-mailových klientů pro Linux

  2. Proč je znak divoké karty * tak odlišný mezi příkazy Zip a Rm?

  3. Need For The `builtin` Builtin?

  1. Proč Ls -l neukazuje čas a rok pro každý soubor?

  2. Jak funguje Tee Command?

  3. Kód pro malloc a zdarma

  1. Lomítka a příkaz rsync

  2. Proč můj systém ukazuje jen 3,2 GiB RAM, když mám určitě 4,0 GiB

  3. Jak funguje příkaz ps?