GNU/Linux >> Znalost Linux >  >> Linux

Linux – Co je velká a nízká paměť v Linuxu?

Zajímá mě rozdíl mezi Highmem a Lowmem:

  1. Proč existuje taková diferenciace?
  2. Co tím získáme?
  3. Jaké funkce každý z nich má?

Přijatá odpověď:

Na 32bitové architektuře je rozsah adresního prostoru pro adresování RAM:

0x00000000 - 0xffffffff

nebo 4'294'967'295 (4 GB).

Linuxové jádro to rozděluje 3/1 (může být také 2/2 nebo 1/3) na uživatelský prostor (vysoká paměť) a prostor jádra (nízká paměť).

Rozsah uživatelského prostoru:

0x00000000 - 0xbfffffff

Každý nově vytvořený uživatelský proces dostane v této oblasti adresu (rozsah). Uživatelské procesy jsou obecně nedůvěryhodné, a proto je jim zakázán přístup do prostoru jádra. Dále jsou považovány za neurgentní, jako obecné pravidlo se jádro snaží odložit přidělení paměti těmto procesům.

Rozsah prostoru jádra:

0xc0000000 - 0xffffffff

Proces jádra získá svou adresu (rozsah) zde. Jádro může k těmto 1 GB adres přímo přistupovat (no, ne celý 1 GB, je zde 128 MB vyhrazených pro přístup k velké paměti).

Procesy vytvořené v prostoru jádra jsou důvěryhodné, naléhavé a předpokládá se, že jsou bezchybné, požadavek na paměť je zpracován okamžitě.

Každý proces jádra může také přistupovat k rozsahu uživatelského prostoru, pokud si to přeje. A aby toho bylo dosaženo, jádro mapuje adresu z uživatelského prostoru (vysoká paměť) do svého jaderného prostoru (nízká paměť), pro to je speciálně vyhrazeno výše zmíněných 128 MB.

Zda je rozdělení 3/1, 2/2 nebo 1/3 se řídí pomocí CONFIG_VMSPLIT_... volba; můžete pravděpodobně zkontrolovat v /boot/config* abyste viděli, která možnost byla vybrána pro vaše jádro.


Linux
  1. Linux – Jsou různá jádra Linux/unix zaměnitelná?

  2. V jakých jazycích jsou napsány Windows, Mac OS X a Linux?

  3. Jaké znaky jsou v názvech adresářů Windows a Linux zakázány?

  1. Živé ladění linuxového jádra, jak se to dělá a jaké nástroje se používají?

  2. zásobník jádra a zásobník uživatelského prostoru

  3. Co je velká a nízká paměť v Linuxu?

  1. Co je to jádro Linuxu a měli byste upgradovat na nejnovější jádro?

  2. Linux – rozdíl mezi uživatelským prostorem a prostorem jádra?

  3. Co dělají parametry jádra acpi_osi=linux a acpi_backlight=vendor?