>> Так вот, сам по себе ASLR это такой необходимый костыль из-за использования
>> flat memory model.
> У этой самой flat memory model при наличии MMU как бы есть
> страницы и есть разные права на оные, из которых делается все
> что угодно.Фигня в том что страничная адресация это совершенно другой уровень управления памятью. О то что есть какие-то страницы приложения знать не обязательно. А сегментное разделение это логическая структура приложения.
> Из страниц и их атрибутов можно сэмулировать сегменты. Из
> сегментов страничная память не эмулируется.
Ещё раз, сегменты и страницы это совершенно различные уровни абстракций.
> Вывод: MMU с страничной адресацией -
> это суперсет, а не subset технологий. Это шаг вперед. И линейная
> адресация, и возможность защиты памяти программ друг от друга и ОС
> от программ, и виртуальная память. Все и сразу.
Защита через сегменты появилась в 82-м году, работает и не пробивается. NX bit - четверь века спустя и, по сути, не является гарантированым решением проблемы. Такой прямо мегаскачок :)
>> Та security model которую проектировали для PM
>> в 286+ делала использования ASLR банально не нужным
> ASLR не замена NX бита. А дополнение к оному. И да, я
> не вижу чем защита памяти через сегменты лучше защиты памяти через
> MMU и атрибуты страниц.
Ну что я могу сказать. Лучше тем что она работала ещё когда вас в проекте не было, в отличии от.
> Своп кстати
> является "штатным" исключением - если нужной страницы нет, случается эксепшн и
> его обработчик должен обеспечить догрузку с диска нужной страницы до возобновления
> работы задачи. А потом обработчик вернет состояние проца в вид "как
> было" и задача не узнает что оказывается был какой-то там page
> fault вообще :)))
Это к чему? Решили блеснуть знаниями? Какие ещё исключения знаете? :)
> Внезапно, деление на кернел и юзер ничего такого не запрещает.
Ужас. Показываю на пальцах. Пробили вы драйвер сетевухи. В совеременных осях вы сразу оказываетесь в ring0 и можете делать что угодно, а при нормальной реализации защиты вы будете сидеть в ring1/2 и нихрена делать не можете.