> Современный x86 разделяет память на память для команд и данных. С точки
> зрения программиста -- прикладного, системного, ядерного -- разные области памяти нисколько
> не равноценны. ОС тщательно пытается скрыть эти нюансы1) Это не только ОС пытается.
2) Изначально таки равноценны.
3) Кто и какие права в MMU страницам прописывает это вообще к нейман vs гарвард не относится напрямую.
> и пытается создавать для приложения иллюзию фон неймановскости,
Все проще. В современном железе до людей дошло что логически оно должно быть нейманом а физически гарвардом. Т.е. деление на I-bus и D-bus (а также соотв кеши у жирдяев) как бы есть и они как бы параллельно могут ворочаться и так быстрее, но логически при программировании мы это обычно не видим, кроме каких-то сильно специальных случаев.
> фон неймановскость -- самомодифицирующися код,
С этим не было бы никаких проблем - если бы не соображения systems security которые нынче так то диктуют правило W^X из соображений зарубания потуг эксплойтов на корню. Но это чисто конфигурационные вопросы на тему того какие права в MMU страницам прописаны.
> или подгрузить код библиотеки с диска, или даже прокинуть буфер в ядро --
При взаимодействии с ядром надо понимать что адресное пространство процесса и ядра просто разные. Также есть виртуальная память и физическая, и это 2 большие разницы. Но к нейман vs гарвард это не относится. Более того mmap() в лине даже можно конкретный регион физической памяти отмаппить, конечно только от рута, и без lockdown'а, ибо ведет к полному поимению системы.
> в юзерспейсе и буфер в ядре -- это разные области памяти.
А современные шустрые zerocopy интерфейсы и оптимизации про это в курсе? Другое дело что там куча проверок и правами MMU конечно же порубано. Однако, операции, вот, удешевили. Вплоть до zerocopy.
> peшeтo. И если ты хоть раз попробуешь сделать на современном железе
> что-нибудь интересное, ты увидишь это воочию.
Вообще это довольно нормальная абстракция, если не лезть в очень сильные дебри. Обращение к физическому адресу 0x100500 это именно оно, и только так. Какие права там в MMU и не прилетит ли за это в тыкву - вопрос номер два.
> костылей поддерживающих иллюзию фон неймановскости. И эта абстракция не менее leaky
> чем софтварная.
Это попытка и рыбку съесть (не иметь гребли с гарвардом) и косточкой не подавиться (одновременно гонять инструкции и данные для них).
> Да, исправление фон неймановской архитектуры с целью повышения надёжности, багоустойчивости
> системы.
Однако это лишь настройки MMU
// я другой анон если что