1. Объясните на уровне байтов и указателей про связь приложения с динамически разделяемыми библиотекам: когда эта связь «проложена», она пролегает через посредника - динамического линкера, или в адресное пространство приложения записываются указатели, прямо показывающие на адреса в памяти, куда загружены разделяемые библиотеки?
История про посредника в моей голове выглядит и работает так: в те места в адресном пространстве приложения, откуда это приложение будет брать адреса, чтобы сделать на них вызов, записываются адреса процедур, принадлежащих динамическому линкеру, из которых происходит уже вызов разделяемых библиотек. Это делает возможным в отсутствии свопа, выкинуть разделяемую библиотеку из памяти, а при следующем вызове функции из разделяемой библиотеки, эту библиотеку из каталога /usr/lib/ снова прочесть... Я конечно незнаю, нафига это нужно, это фантазии. Расскажите как есть.