В соседнем разделе бурно идет обсуждение, как выразился Evgueni, стюардессы, которую опять откопали: в Убунте придумывают очередной способ создания пакетов без внешних зависимостей.
И вот, уже пошли мнения о том, что «проще все линковать статически» и «может, вообще тогда отказаться от .so»?
Что это, очередные закидоны ЛОРовцев или реальная идея? За советами мы решили обратиться к самым старперным специалистам в глобальной компьютерной сети «Интернет». Вот что они пишут (выдержки/сокращения):
Rob Pike (один из разработчиков Unix, Plan 9, нескольких языков программирования и не только), 2008
В первом докладе Sun Microsystems о том, как они реализовали в своей ОС динамические библиотеки, сообщалось, что система получилась больше и медленее. Места на диске экономилось совсем мало. Тесты проводились на Xlib, и заключение было таково: преимуществ нет, одни недостатки.
Да, все современные ОС их поддерживают, но это не значит, что это хорошая мысль. В Plan 9 мы пытались избавиться хотя бы от некоторых необоснованных вещей, которые «все делают».
Geoff Collyer, 2002
Нет, у нас [в Plan 9] не вся библиотека C в каждой программе. В каждой программе содержится только копия каждой вызываемой (прямо или косвенно) функции.
Разделение (sharing) кода производится на уровне секций кода (text segments), как в Unix V6 или V7. При форке процесса потомок будет пользоваться тем же кодом, что и родитель, за счет соответствующего маппинга страниц памяти. Если несколько раз запустить одну и ту же программу с помощью exec, все эти процессы разделят код.
С учетом такого разделения и низких цен на RAM (...) я не вижу нужды в разделяемых библиотеках. Вспомним, что в Unix их реализовали, в первую очередь, из-за громоздких и страшных библиотек X11, а большинству наших пользователей сего дара Божьего удалось избежать.
Отметим, что безо всяких разделяемых библиотек утилиты в Plan 9 при аналогичных возможностях обычно меньше по размеру, чем программы из FreeBSD.
Не пойми кто
<btdn> Я никак, ну вот хоть убей, никак не могу понять, зачем люди используют динамическое связывание.
<aiju> btdn: Потому же, почему верят в Бога.
Roman Shaposhnikov, 2007
Что общего между разделяемыми библиотеками и коммунизмом? Очень просто: и то, и другое в теории выглядит прекрасно, а в реальности провалилось с треском. (...) Поищите файлы .so в любом коммерческом или бесплатном, но большом пакете. Не удивляйтесь, если там даже специальные версии glibc попадутся.
Ссылочки (источники и не только):
http://harmful.cat-v.org/software/dynamic-linking/
http://harmful.cat-v.org/software/dynamic-linking/versioned-symbols
https://blogs.oracle.com/rvs/entry/what_does_dynamic_linking_and
http://port70.net/~nsz/32_dynlink.html