LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Зачем это нужно? Нам известен путь к ELF + флаги секций. Можно при загрузке ELF, который уже запущен, просто не грузить R/O секции, а смаппить их на те же физические адреса, что и у первого файла. Освобождать память с помощью подсчёта ссылок (чтобы данные выгрузились только после завершения последнего экземпляра приложения). По идее алгоритм очень простой к реализации, оверхед (при запуске приложения столько всего происходит, пробежаться по списку уже загруженных файлов ничего не стоит, один счётчик для подсчёта ссылок тоже ничего не стоит) микроскопический.

Исходная версия KivApple, :

Зачем это нужно? Нам известен путь к ELF + флаги секций. Можно при загрузке ELF, который уже запущен, просто не грузить R/O секции, а смаппить их на те же физические адреса, что и у первого файла. Освобождать память с помощью подсчёта ссылок (чтобы данные выгрузились только после завершения последнего экземпляра приложения).