Денис В.цитирует5 дней назад
Лучшее решение заключается в компиляции совместно используемых библиотек со специальным флажком для компилятора, указывающим этому компилятору не создавать никаких команд, использующих абсолютную адресацию. Вместо этого применяются лишь те команды, которые используют относительную адресацию. Например, почти всегда есть команда, предписывающая переход вперед (или назад) на n байтов (в качестве альтернативы той команде, которая дает для перехода конкретный адрес). Эта команда работает правильно независимо от размещения совместно используемой библиотеки в виртуальном адресном пространстве. Проблема может быть решена за счет исключения абсолютной адресации. Код, использующий только относительные смещения, называется позиционно независимым кодом.
  • Эндрю Таненбаум,Херберт Бос
    Современные Операционные Системы
    • 2.5K
    • 246
    • 13
    • 19
  • Войти или зарегистрироваться, чтобы комментировать