Операционная система UNIX. Руководство программиста



Экран под проектор на http://www.s-install.ru. |

Как ОС UNIX работает с разделяемыми библиотеками? - часть 3


Для предотвращения подобных эффектов ОС UNIX, работая с разделяемой библиотекой, использует таблицу переходов. Имена связываются с абсолютными адресами входов в этой таблице. Эти адреса остаются неизменными при модификации содержимого библиотеки. Каждый элемент таблицы переходов содержит команду безусловного перехода по адресу, соответствущему имени. Таким образом, ссылки на имена из библиотеки разрешаются с помощью элементов таблицы переходов, а не с помощью собственно содержимого библиотеки.

На следующем рисунке показано, как два выполняемых файла обращаются к printf(3S). Процесс слева был создан с архивной библиотекой, поэтому в него включена копия функции printf(3S). Процесс справа создавался с разделяемой библиотекой. Этот файл ссылается на абсолютный адрес (10) в таблице переходов разделяемой библиотеки выполнения. По этому адресу находится команда безусловного перехода на нужный адрес в библиотеке.




Содержание  Назад  Вперед