|
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
|
|
Карта памяти процесса19.02.2017, 21:25. Показов 2845. Ответов 7
Метки нет (Все метки)
полдня копал инет на эту тему. нашел кучу интересных статей, например, https://habrahabr.ru/post/265509/. но везде примерно одно и то же. можно подытожить примерно так:
программа загружается с какого-то адреса (сегменты кода и данных). причем этот адрес обычно не нулевой. выше находятся области кучи, разделяемых библиотек, стека и место под маппирование. последний гигабайт - ядро, к которому у процесса напрямую доступа нет. собственно, сам вопрос: что находится ниже сегмента кода (ведь он загружается не с 0 адреса) и какой доступ со стороны исполняемого процесса к этой области? т.е. это свободная для пользования область (например, для того же mmap) или же это какая-то системная область? и какая? интересует именно виртуальное адресное пространство. если можно, нужен более-менее развернутый ответ и при возможности - пару ссылочек на освоение. заранее премного благодарен.
0
|
|
| 19.02.2017, 21:25 | |
|
Ответы с готовыми решениями:
7
у меня nokia 6555.захожу в галерею и нажимаю карта памяти когда её нету и пишет карта память неотформотиравана Чтение памяти другого процесса по таймеру: нужно ли закрывать хэндл процесса? |
|
76 / 76 / 30
Регистрация: 12.02.2016
Сообщений: 199
|
||||
| 19.02.2017, 22:19 | ||||
|
Ниже сегмента кода может находится все что угодно, как свободная память так и занятая каким-то приложением. Вопросы распределения свободного пространства - юрисдикция менеджера памяти. То есть вопрос скорее к архитектуре операционных систем, нежели к прикладному программированию.
Сегментация приложения на си P.S. Вопрос конечно странный, ну да с кем не бывает Если это так критично знать, читайте код ядра Linux/BSD, либо задайте вопрос на соответствующих форумах или мейнтейнерам ядра.
1
|
||||
|
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
|
|
| 20.02.2017, 07:34 [ТС] | |
|
Меня опять не поняли..
Цитата: "Никакой, SEGFAULT" А если через mmap? Цитата:"А какая разница? Программе это фиолетово" Разница большая. Программа работает в виртуальном адресном пространстве. И именно оно меня и интересует. За первую ссылочку спасибо, было интересно, но по моему вопросу ни слова. Вторая ссылка для меня вообще не имела смысловой нагрузки. Читать исходники конечно можно и нужно, но это займет немало времени и это необходимо будет скорее при желании использовать эти знания, нежели при удовлетворении обычного любопытства. Поэтому надеюсь на быстрый ответ. Добавлено через 2 минуты Еще мой вопрос переформулировать можно так: почему в эльф-формате адреса загрузки секций (имеется в виду для исполняемых файлов, а не для перемещаемых библиотек) начинаются с определенного адреса, а не скажем с нуля?
0
|
|
|
|
|
| 20.02.2017, 11:38 | |
|
В языке Си есть такое понятие как NULL. Т.е. адрес, гарантированно не соответствующий никакому объекту. При обращении по этому адресу удобнее всего ломаться. Поэтому как минимум одна страница виртуальной памяти, содержащая адрес 0, должна быть недоступной, т.к. это самый простой и беззатратный способ обеспечить поломку при обращении по указателю со значением NULL
0
|
|
|
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
|
|
| 20.02.2017, 11:41 [ТС] | |
|
Ну, это понятно. Но даже если исключить этот самый пресловутый 0. И начинать загрузку, например, с адреса 4096 (следующая страница). Но у нас-то все начинается с адресов 0x800000 и тому подобное. А остальное гиде?
0
|
|
|
|
|||
| 20.02.2017, 12:28 | |||
Сообщение было отмечено Pink_Pank как решение
РешениеДобавлено через 7 минут Можно поэкспериментировать, подсунуть линкеру разные карты памяти и посмотреть, что из этого получится Запускаешь Code $ gcc t.c -Wl,--verbose Code $ gcc t.c -Wl,-T,t.lds Добавлено через 46 секунд Добавлено через 1 минуту Описание птичьего языка здесь https://www.opennet.ru/docs/RU... uld-3.html
1
|
|||
|
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
|
|
| 21.02.2017, 10:15 [ТС] | |
|
Проще, наверное, в готовом elf-e адрес загрузки сегмента ручками в hex-редакторе сменить.. ) Ну, или поэкспериментировать с mmap-ом. ) ладно, попробуем поиграть в угадайку.
По поводу совместимости была такая мысля, но я откинул ее из-за больших значений этих самых стартовых адресов. Слишком много для совместимости... Раньше же все в первом мегабайте было.. Ну.. почти все. )) Добавлено через 21 час 34 минуты На Линукксовом форуме дали вот такую ссыль.) Мож кому пригодится
0
|
|
|
|
|
| 21.02.2017, 10:32 | |
|
Грубо говоря, на интеле сделано шиворот-навыворот по отношению к другим. У людей принято динамические библиотеки грузить в старшие адреса, а у интела по каким-то соображениям - в младшие
0
|
|
| 21.02.2017, 10:32 | |
|
Помогаю со студенческими работами здесь
8
Как изменить длину строки в памяти процесса (менять ник прямо в памяти игры) Защита памяти процесса от редакторов памяти Карта памяти глючит. Не читается карта памяти Не читается карта памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|