|
47 / 31 / 21
Регистрация: 04.04.2016
Сообщений: 209
|
|
Карта памяти процесса19.02.2017, 21:25. Показов 2884. Ответов 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
Как изменить длину строки в памяти процесса (менять ник прямо в памяти игры) Защита памяти процесса от редакторов памяти Карта памяти глючит. Не читается карта памяти Не читается карта памяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|