LINUX.ORG.RU

Одно адресное пространство для двух процессов

 


0

1

Привет. Копаю, копаю в сети, но всё не о том. Можно ли так: есть два процесса А и Б. А ничего не знает об Б. Запускаем А. Далее запускаем Б таким образом, что он делит с А одно и то же адресное пространство (виртуальное и физическое)? Например, А запишет в файл адреса функций, а Б сможет успешно их вызывать (просто пример). Ну работает же как-то отладчик. Куда копать?
Подчёркиваю, нужна не shared memory кака-нибудь, мне нужно из одного процесса дергать внутренности второго, который об этом даже не догадывается.

★★
Ответ на: комментарий от i-rinat

Полезно, спасибо. Но пока ещё не понял, если вообще возможно, как делить один участок ОЗУ без согласия одного из процессов.

pavlick ★★
() автор топика
Последнее исправление: pavlick (всего исправлений: 1)

Запустить оба процесса в dosemu. :) Не, ну серьезно, Unix и задумывался как средство полного разделения между процессами в отличие от большинства ОС на тот момент. Та же IBM-овская майнфреймина вся из себя система виртуальных машин по сути и была как запускалка процессов внутри dosemu, только DOS там был не тот :))

vodz ★★★★★
()
Ответ на: комментарий от pavlick

как делить один участок ОЗУ без согласия одного из процессов.

Попробуй mmap'нуть /proc/$pid/mem. Карта памяти доступна в /proc/$pid/maps.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо, буду пробовать. Сразу результат сказать не могу, пока восполняю пробелы чтением The linux kernel.

pavlick ★★
() автор топика

Ничего себе, просто супер https://github.com/vikasnkumar/hotpatch

Hotpatch is a library that can be used to dynamically load a shared library (.so) file on Linux from one process into another already running process, without affecting the execution of the target process. The API is a C API, but also supported in C++.

pavlick ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.