При загрузке системы первой задачей, которую должно выполнить ядро, является установка структур данных для описания и управления его адресным пространством. Подобно любому процессу, у ядра есть vmjnap с соответствующим набором структур vmjnapjentry, описывающих использование диапазона адресов. Подотображения (submaps) являются особыми конструкциями, которые используются только ядром для изоляции и ограничения выделения адресного пространства для подсистем ядра. Одним из применений являются подотображения, которым требуются смежные участки адресного пространства ядра. Чтобы избежать перемешивания в диапазоне адресов не связанных друг с другом выделений, этот диапазон охватывается подотображением, и выделять из этого отображения может лишь соответствующая подсистема. Например, несколько макросов манипулирования сетевым буфером (mbuf) используют для генерирования уникальных индексов арифметику адресов, требуя тем самым смежности областей буфера. Частям ядра могут также требоваться адреса с определенным выравниванием или даже с особыми адресами. Обе эти задачи можно выполнить с использованием под отображений. Наконец, подотображения можно использовать для статического ограничения размера адресного пространства и тем самым физической памяти, потребляемой подсистемой.
Адресное пространство ядра описывается структурой vmjnap, показанной в верхнем левом углу рисунка. Части адресного пространства описываются структурами vmmapentry, которые связаны в восходящем порядке адресов от К0 до К8 в структуре vmjnap. Здесь в диапазоне от К0 до К1 находятся код ядра, инициализированные данные, неинициализированные данные и первоначально выделенные структуры данных; они представлены первой vmjnap entry. Следующая vmmapentry связана с диапазоном адресов от К2 до К6. Эта часть адресного пространства ядра управляется посредством подотображения, имеющего в качестве заголовка указанную структуру vmjnap. В настоящее время у этого подотображения используются две части его адресного пространства: диапазон адресов от К2 до К3 и диапазон адресов от К4 до К5. Эти два подотображения представляют арену malloc и арену сетевого буфера соответственно. Заключительная часть адресного пространства ядра управляется в главном отображении ядра, диапазоне адресов от К7 до К8, представляющем область подготовки ввода/вывода ядра.
- 22/10/2010 23:00 - Пейджер подкачки
- 22/10/2010 12:25 - Сворачивание теневых цепочек
- 22/10/2010 00:36 - Выделение адресного пространства ядра
- 21/10/2010 20:16 - Индивидуальное отображение
- 20/10/2010 14:11 - Пейджер физической памяти
- 19/10/2010 09:38 - Пейджер устройств
- 18/10/2010 22:14 - Управление памятью ядра
- 18/10/2010 09:01 - Обзор системы виртуальной памяти FreeBSD
- 18/10/2010 03:16 - Пейджер vnode
- 17/10/2010 03:20 - Интерфейс пейджера