gdb
и devmem
рассматривают две разные вещи. gdb
рассматривает местоположение 0x20000000
как сопоставленное с вашим адресным пространством процесса , которое отличается от процесса к процессу (, иначе оно должно быть заменено файлами и таблицы страниц были бы по существу бесполезны.)devmem
просматривает файл /dev/mem
, который просматривает непосредственно физическую память.
Почему адресное пространство процесса не предоставляет процессу доступ ко всем физическим адресам? Основная причина в том, что это было бы огромным нарушением безопасности :вы не хотите, чтобы случайный процесс мог читать и записывать данные из памяти, которой они не владеют (, иначе они могли бы тривиально обойти систему безопасности. )Кроме того, как на странице devmem
говорится , «Некоторые физические адреса являются аппаратными регистрами; запись или даже чтение их может привести к сбою, расплавлению или взрыву вашего компьютера/устройства. предупреждены!"
Я всегда думаю о nohup как о своего рода демоне бедняков.
Как и эти люди :https://stackoverflow.com/questions/958249/whats-the-difference-between-nohup-and-a-daemon
Он используется как способ кодирования демона оболочки.