Что такое «адресное пространство ядра»? - PullRequest
0 голосов
/ 15 сентября 2018

Из понимания ядра Linux, здесь немного обсуждается поток ядра против пользовательского процесса, то есть обычный процесс:

Помимо пользовательских процессов, системы Unix включают несколько привилегированных процессы называются потоками ядра со следующими характеристиками:

• Они работают в режиме ядра в адресном пространстве ядра .

• Они не взаимодействуют с пользователями и, следовательно, не требуют терминала устройства.

• Они обычно создаются при запуске системы и остаются живыми пока система не выключится.

...

В Linux потоки ядра отличаются от обычных процессов в следующие пути:

• Потоки ядра работают только в режиме ядра, тогда как обычные процессы работают альтернативно в режиме ядра и в режиме пользователя.

• Поскольку потоки ядра работают только в режиме ядра, они используют только линейные адреса больше, чем PAGE_OFFSET. Регулярные процессы, с другой вручную, используйте все четыре гигабайта линейных адресов в любом режиме пользователя или режим ядра.

Я слышал о виртуальном адресном пространстве пользовательского процесса, то есть обычного процесса, и часть адресного пространства отображается в коде ядра и данных .

Мне было интересно, что означает "адресное пространство ядра" в приведенной выше цитате?

Разве это не часть виртуального адресного пространства пользовательского процесса?

Означает ли это, что ядро ​​имеет свое собственное виртуальное адресное пространство, точно так же, как пользовательский процесс имеет свое собственное виртуальное адресное пространство?

Спасибо.

1 Ответ

0 голосов
/ 18 сентября 2018

В книге термин «адресное пространство ядра» используется для обозначения раздела виртуального адресного пространства, выделенного для ядра. Недавно в Linux и других ОС была реализована изоляция таблицы страниц (PTI), чтобы уменьшить уязвимость безопасности Meltdown. С PTI ядро ​​имеет свое собственное адресное пространство (как показывает изображение из Википедии). Но поскольку книга старая, она написана в то время, когда PTI еще даже не изобрели. Так что это определенно относится к разделу ядра виртуального адресного пространства, который также содержит раздел пользователя.

...