Что такое отображение ядра в Linux? - PullRequest
0 голосов
/ 14 ноября 2018

что такое отображение ядра?Что такое постоянное отображение и временное отображение.Что такое окно в этом контексте?Я прошел код и объяснение этого, но не мог понять это

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Я предполагаю, что вы говорите об отображении памяти в ядре Linux.

Отображение памяти - это процесс сопоставления адресного пространства ядра непосредственно с адресным пространством пользовательского процесса.

Типы адресов: enter image description here

  • Виртуальный адрес пользователя: Это обычные видимые адресапо программам пользовательского пространства

  • Физические адреса: Адреса, используемые между процессором и системной памятью.

  • Адреса шин: Адреса, используемые между периферийными шинами и памятью.Часто они совпадают с физическими адресами, используемыми процессором, но это не всегда так.
  • Логические адреса ядра: Они составляют нормальное адресное пространство ядра.
  • Виртуальные адреса ядра: Виртуальные адреса ядра аналогичны логическим адресам в том смысле, что они представляют собой адрес из пространства ядра в физический адрес.

Высокая и низкая память:

  • Низкая память: Память, для которой существуют логические адреса в пространстве ядра.Почти на каждой системе, с которой вы, вероятно, столкнетесь, вся память имеет мало памяти.
  • Большой объем памяти: Память, для которой логические адреса не существуют, поскольку она выходит за пределы диапазона адресов, установленного для виртуальных адресов ядра. Это означает, что ядру необходимо начать использовать временные отображениячасти физической памяти, к которым он хочет получить доступ.

Ядро разделяет виртуальный адрес на две части: пользователь адресное пространство и ядро ​​ адресное пространство.Код ядра и структуры данных должны вписываться в это пространство, но самый большой потребитель адресного пространства ядра - это виртуальные отображения для физической памяти.Таким образом, ядру нужен собственный виртуальный адрес для любой памяти, к которой он должен непосредственно прикасаться.Таким образом, максимальный объем физической памяти, который мог обрабатывать ядро, был объемом, который мог быть отображен в часть ядра виртуального адресного пространства, минус пространство, используемое кодом ядра.

enter image description here

Временное отображение: Когда необходимо создать отображение, но текущий контекст не может спать, ядро ​​предоставляет временные отображения (также называемые атомарными отображениями).Ядро может атомарно отобразить страницу с большим объемом памяти в одно из зарезервированных отображений (которое может содержать временные отображения).Следовательно, временное сопоставление может использоваться в местах, которые не могут находиться в спящем режиме, например в обработчиках прерываний, поскольку получение сопоставления никогда не блокируется.

Ref:

0 голосов
/ 14 ноября 2018

Полный ответ будет очень длинным, подробности относятся (например) к Адресация ядра Linux или Понимание ядра Linux (страницы 306-).Эти понятия связаны с тем, как адресные пространства организованы в Linux.Во-первых, как пространство ядра отображается в пространстве пользователя (ядро отображается в пространстве пользователя упрощает переключение между режимами пользователя и ядра), а во-вторых, как физическая память отображается в пространстве ядра (потому что ядро ​​должно управлять физической памятью).

Помните, что это не имеет значения в современных 64-битных архитектурах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...