guard page? Сейчас у меня выровненная секция забитая нулями валяется в .data, которую хелпер-бинарник вылавливает в ELF и заполняет таблицы с гранулярностью в 4К. Под стеком в .bss есть пустой кусок 4К, который просто захардкожено выставляется как unmapped
ээээ, а как ты потом будешь это разгребать?
Для этого "генератор таблиц" вылавливает символ __bsp_stack_bottom из ELF
в плане того что ты решил прибить то что генериться обычно в рантайм
Запили stack bottom guard page и stack top guard page в эльфе и по ним ставь
Я подумал, что пока не прикручены трюки типа полностью PIE-ядра и ASLR, то такие вещи можно генерировать в компайл-тайме, потому что по сути они статичны
по идее твой elf загрузчик должен сам сотворить тебе таблицы трансляции на основе содержимого elf
У меня только под x86-64 есть загрузчик ELF (потому что бут через UEFI). Для aarch64 там напрямую бинарник ядра грузится
Обсуждают сегодня