2013-03-29 4 views
0

AFAIK есть раздел памяти процесса, в котором хранятся данные, связанные с ядром, и помечены как доступные только для чтения.Схема памяти процесса Linux

Я не могу найти фактическое объяснение того, почему это происходит, какова цель этой области и почему вы должны включать ее в каждое пространство памяти процесса?

enter image description here

+0

Сделайте 'cat/proc/self/maps' и узнайте больше о его выходе. –

ответ

2

Так же, как область памяти пользовательского режима, ядро ​​нужен свой раздел кода (RX), раздел данных (R/RW), и стек кадров для потоков (RW).

Я бы не сказал, что он должен быть включен в пространство памяти процесса, а скорее сказать, что он всегда находится в ядре. В отличие от пространства памяти процесса, которое заменяется всякий раз, когда происходит переключение контекста между процессами, пространство ядра (> = 0xC0000000 в 32 бит и> = 0xFFFFFF80000000 в 64 бит) полностью не заменяется.

Это необходимое требование, поскольку в системе есть только одно ядро, и оно должно оставаться в одном месте в памяти (виртуальной) в любое время для обработки системных вызовов, прерываний и выполнения различных задач ядра.

Смежные вопросы