Назначение наборов значений из каждой строки таблицы отдельно команде в bash

х86

64 -битная карта виртуальной памяти x86 разделяет адресное пространство на две части :нижняя секция (с верхним битом, установленным на 0 )является пользовательским -пространством, верхняя секция (со значением верхнего бита 1 )— это пространство ядра -. (Обратите внимание, что x86 -64 определяет «канонические» адреса «младшей половины» и «старшей половины» с числом битов, фактически ограниченным 48 или 57; подробности см. в Википедии .)

Полная карта подробно документирована в ядре ; в настоящее время это выглядит как

Начальный адрес Смещение Конечный адрес Размер Описание области ВМ
0000_0000_0000_00000 0000_7fff_ffff_ffff 128 ТиБ пользователь -пространство виртуальная память
0000_8000_0000_0000+128 ТиБ ffff_7fff_ffff_ffff~16 М ТиБ не -канонический
ffff_8000_0000_0000-128 ТиБ ffff_ffff_ffff_ffff 128 ТиБ ядро ​​-виртуальная память пространства

с 48 -битными виртуальными адресами. 57-битный вариант -имеет ту же структуру.с 64 ПиБ доступного адресного пространства по обе стороны от отверстия 16 КБ:

не -
Начальный адрес Смещение Конечный адрес Размер Описание области виртуальной машины
0000_0000_0000_00000 00ff_ffff_ffff_ffff 64 ПиБ пользователь -пространство виртуальная память
0100_0000_0000_0000+64 ПиБ feff_ffff_ffff_ffff~64K ПиБ неканонический
ff00_0000_0000_0000-64 ПиБ ffff_ffff_ffff_ffff 64 ПиБ ядро ​​-виртуальная память пространства

(Обратите внимание, что 16KPiB = 16MTiB = 2 64 байт. Подавляющее большинство доступного адресного пространства не является -каноническим.)

Обе эти схемы обеспечивают доступ к одному и тому же физическому адресному пространству, используя 52 адресных строки (4 ПиБ ). Пейджинг уровня 4 -обеспечивает доступ только к подмножеству 256 ТиБ в любой момент времени; Пейджинг уровня 5 -обеспечивает доступ ко всему физическому адресному пространству. Текущие процессоры x86 могут обрабатывать гораздо меньше; насколько мне известно, максимальный размер процессора с одним сокетом составляет 6 ТБ.

В отличие от случая с 32 -битами, карта памяти «64 -бит» является прямым отражением аппаратных ограничений.

РУКА

64 -бит ARM имеет аналогичное различие адресов в аппаратном обеспечении :верхние двенадцать или шестнадцать битов равны 0 для пространства пользователя -, 1 для пространства ядра -. Linux использует 39, 42 или 48 бит для виртуальных адресов, в зависимости от количества уровней таблицы страниц и размера страницы. В ARMv8.2 -LVA добавляются еще четыре бита, что приводит к 52 -битным виртуальным адресам.

Это также подробно описано в ядре .

1
01.06.2020, 05:51
0 ответов

Теги

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