The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Прогресс в разработке компилятора для языка Rust на базе GCC"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Прогресс в разработке компилятора для языка Rust на базе GCC" +/
Сообщение от Аноним (-), 01-Июл-22, 21:56 
> Современный 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
// я другой анон если что

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Прогресс в разработке компилятора для языка Rust на базе GCC, opennews, 30-Июн-22, 09:04  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру