Как на самом деле работает виртуальная память
Cave of Programming
0:00 / 0:00
Как на самом деле работает виртуальная память
8 009 просмотров · 1 месяц назад
Cave of Programming
117 тыс. подписчиков
8 009 просмотров · 1 месяц назад
🔥 Изучите C (скидка 10% по коду MEMORY): https://www.caveofprogramming.com/pro...
В 90-х годах можно было записывать данные в память видеокарты с помощью обычного указателя. Можно ли это сделать сейчас, и если нет, то почему?
Я написал небольшую программу на C, которая отображает собственное виртуальное адресное пространство — функции, глобальные переменные, кучу, стек, даже printf — а затем попытался читать и записывать данные в места, куда «не следует». Мои исследования показывают, как на самом деле работает современная виртуальная память:
Почему внизу каждого процесса образуется многогигабайтный зазор
Почему локальные переменные отображаются в памяти «наоборот»
Как ASLR рандомизирует почти всё (кроме разделяемых библиотек)
Почему возникает ошибка шины, а не ошибка сегментации
Защита W^X, механизм копирования при записи в форке, защитные страницы и почему вы всё ещё можете выполнять свеженаписанный код… если вежливо попросите об этом с помощью mmap
Практический обзор невидимых стен, которые обеспечивают надёжную изоляцию каждого процесса (и ядра) от остального.