Расположение пространства пользователя в адресном пространстве процесса хорошо известно, они принимают 1G ~ 4G виртуальной памяти (32 бит) и состоят из данных (bss), стека, области кучи. Но я не могу найти макет пространства ядра.Что такое расположение адресного пространства ядра в ядре linux?
Интересно, как тезисы:
когда VFS (виртуальная файловая система) код получить памяти через kmalloc, где же память проживает в? где-то в пространстве ядра (~ 1G)? и как найти их позже?
благодаря
Я думаю, вы могли бы просто спросить об этом из любой поисковой системы и получить множество достаточно надежных ответов, таких как [this] (http://duartes.org/gustavo/blog/post/how-the-kernel-manages-your- Память/). –
Linux отображает макет памяти во время загрузки. Попробуйте 'dmesg'. Он может варьироваться от версии к версии. Существуют также файлы proc, такие как */proc/vmalloc * и т. Д., Которые сообщают вам, что были некоторые записи. Как есть, вы сомневаетесь слишком широко или неправильно понимаете. 'kmalloc()' для VFS поступит за тот же пул, что и почти любой 'kmalloc()'. * .config *, версия ядра и т. д. изменят ответ. –