> Фон Неймановская - совместное хранения команд и данных в единой памятиСовременный x86 разделяет память на память для команд и данных. С точки зрения программиста -- прикладного, системного, ядерного -- разные области памяти нисколько не равноценны. ОС тщательно пытается скрыть эти нюансы и пытается создавать для приложения иллюзию фон неймановскости, но эта иллюзия сохраняется ровно до тех пор, пока ты не попытаешься сделать что-нибудь, для чего требуется фон неймановскость -- самомодифицирующися код, или подгрузить код библиотеки с диска, или даже прокинуть буфер в ядро -- тебе придётся учитывать, что это сильно не бесплатная операция, и в частности потому, что буфер в юзерспейсе и буфер в ядре -- это разные области памяти. Даже если ты создал два маппинга страниц для одного физического блока памяти, то это значит, что переключаясь между ядром и юзерспейсом, процессор будет сбрасывать одни кеши таблиц страниц, и загружать другие, хоть он и работает с одной физической памятью.
Приложено невообразимое количество усилий, чтобы сохранить иллюзию фон неймановскости как своего рода абстракцию, но это leaky абстракция, она течёт как peшeтo. И если ты хоть раз попробуешь сделать на современном железе что-нибудь интересное, ты увидишь это воочию.
Но я бы рекомендовал пойти и получить хорошее образование, потому что твоё явно осталось на уровне 8 класса 80-х годов.
> Да, части процессора используют идеи гарвардской - раздельные кэши, раздельные шины.
Да, и если мы решим что фон неймановскость -- это не о том, как для программиста выглядит, а как оно в железе реализовано, и закопаемся глубже чтобы посмотреть на устройство железа, мы увидим, что типов памяти гораздо больше. Ассоциативная память под кеши, RAM... И гора костылей поддерживающих иллюзию фон неймановскости. И эта абстракция не менее leaky чем софтварная.
> И все эти закидоны с безопасностью, W^X например, или защиты стека от ROP - именно следствие Неймановской.
Да, исправление фон неймановской архитектуры с целью повышения надёжности, багоустойчивости системы.