Помогите мне, пожалуйста, найти список функций ядра, связаных с Виртуалльной памятью. Точнее: В менеджере памяти необходимо найти название функции, позволяющей менят ьпараметры страницы.
Есть дока по менеджменту памяти в 2.4, когда-то давно новость о ней проскакивала на LOR. Там идет описание исходного кода этой подсистемы.Дома валяется pdf. Отчень интересная штука, жаль что мне в работе не была нужна :)
Если ты хочешь разобраться с тем, как устроена VM, то тебе нужно читать не книжки, где 10 страниц разжевывается что такое трансляция адресов, а потом на 1-2 страницы упоминается о существовании page cache, shmem и прочего, а смотреть прямо в исходники. Читать книжки для этого - это непроизводственная трата времени, которая еще никому не приносила пользу (ни мне ни кому либо из моих знакомых).
Если тебе интересна в целом архитектура построения VM, то опять же читать нужно не упомянутые выше книжки, а диссертацию Чарльза Кранора "Design and Implementation of UVM" - великолепное произведение, которое хорошо приводит мысли в порядок, хотя и не о Linux (Linux там упоминается, тем не менее, к тому же основы VM и в BSD/Mach и в UVM и в Linux одни и те же).
Если хочешь получить конкретный ответ на вопрос как сделать то-то и то-то, то лучше задай прямой вопрос. :)
Спрятать модуль что-ли нужно? Так это вроде тривиально делаешь в инициализации модуля vmalloc и копируешь туда свой код (он, ессно, должен быть PIC), после чего возвращаешь ошибку.
>Мне в менеджере виртуальной памяти надо найти название функции, позволяющей менять параметры страницы.
А с чего ты решил, что есть какие-то функции, которые меняют параметры?
Есть ряд макросов в include/linux/mm.h, да и те вещи, что меняются не макросами меняются вручную в соответствии с потребностями.
Судя по термину "менеджер памяти" вы хотите найти в Linux обертки для всяких тривиальных операций в виде функций как в винде. Нет их...
2 murr: Да, вы меня правильно поняли, мне надо спрятать модуль, в Винде это называется стелс-драйвер. Честно говоря, я не очень представляю, как это сделать в Линухе, но точно знаю, что можно... Дело в том, что мне надо написать курсовую на эту тему, какие-то наметки уже есть, но затруднений, конечно больше... :) Из Вашего поста я понял, что Вы больше меня представляете как это сделать. Не могли бы Вы рассказать немного поподробнее здесь, или прислать свои мысли мне на мыло Deymos@bk.ru Заранее благодарен, Deymos