Установите загрузчик UEFI для второго Linux на существующий диск

Ну, теперь я думаю, что могу дать себе ответ:)

Одним словом, в 32-битном linux некоторые области ядра сталкиваются, чтобы предотвратить трату ограниченного виртуального адресного пространства ядра (например, модули и vmalloc arena, образ ядра и physmap), поэтому расположение пространства ядра может быть не таким четким, как в 64-битном.

Расположение пространства ядра в 32-битном linux на x86 должно быть таким (некоторые отличия от AArch32: http://www.arm.linux.org.uk/developer/memory. txt):

fixmap  : 0xffc57000 - 0xfffff000   (3744 kB)
pkmap   : 0xff800000 - 0xffa00000   (2048 kB)
vmalloc : 0xf7ffe000 - 0xff7fe000   ( 120 MB)
lowmem  : 0xc0000000 - 0xf77fe000   ( 887 MB)
  .init : 0xc0906000 - 0xc0973000   ( 436 kB)
  .data : 0xc071ae6a - 0xc08feb78   (1935 kB) 
  .text : 0xc0400000 - 0xc071ae6a   (3179 kB)

Согласно определению ZONE в 32-битном linux, ZONE_HIGHMEM включает область fixmappkmap, vmalloc (модули ядра будут использовать область vmalloc). Область lowmem состоит из ZONE_DMA и ZONE_NORMAL. Она отображается линейно из физической памяти, и так называемая physmap ссылается именно на эту область. .init, .data, .text внутри lowmem принадлежат образу ядра, который в 64-битном linux является отдельной областью.

2
23.08.2016, 20:01
0 ответов

Теги

Похожие вопросы