О, лор!
В линухе всю подсистему разделяемых библиотек давно пора менять.
Одних напрягает то, что программа собранная статически держит свою копию кода в памяти. Других напрягают глюки, которые неизбежны при отличии версии библиотеки на 0.001 от версии, применяемой раработчиком. Это две крайности. А в линухе считается православным вариант с глюками.
При этом никто не думает о том, что возможен более другой вариант.
Например, каждая функция в памяти имеет:
- имя библиотеки, в состав которой она входит,
- версию билиотеки, в состав которой она входит,
- длина кода,
- и хеш кода
Запускаемая программа должна содержать все библиотеки, которые ей нужны. Однако, при загрузке программы грузится в память не весь код, а только реализации функций, которых нет в памяти. Быстро сориентироваться загрузчик может по информации об имени, версии, длине, и хешу. Может быть, даже одного хеша будет достаточно. При совпадении хешей можно вразнорядку проверять каждый 2/4/8/16/32... чтобы снизить вероятность коллизий до 0.000000000001%. А можно и все байты проверять - загрузить код и выкинуть, если каждый байт совпадает.
Таким образом, в память будет грузится только то, чего в памяти нет. 90% кода в разных подверсиях библиотек обычно остается неизменным. Значит, подгружаться будет, к примеру, 10% от размера статического бинарника. При этом дается гарантия, что код программы байт в байт соответсвует тому, который был у разработчика. Ну разве это не прекрасно?
В линухе почему-то до этого до сих пор не додумались, а продвигают самый ублюдочный способ построения подсистемы разделяемых библиотек, завязанный на не менее порочную идею репозитариев и учета зависимостей.
Вопрос: есть ли какая-то принципиальная ошибка в описанной системе? Я пока не вижу.
←
1
2
3
4
5
6
→
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от pevzi
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от thesis
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от pevzi
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от thesis
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от FiXer
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от svu
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от proud_anon
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от proud_anon
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от www_linux_org_ru
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от www_linux_org_ru
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от www_linux_org_ru
Ответ на:
комментарий
от andreyu
Ответ на:
комментарий
от andreyu
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от ptah_alexs
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от andreyu
Ответ на:
комментарий
от andreyu
Ответ на:
комментарий
от quasimoto
Ответ на:
комментарий
от simple_best_world_web_master
Ответ на:
комментарий
от xintrea
Ответ на:
комментарий
от quasimoto
Ответ на:
комментарий
от quasimoto
Ответ на:
комментарий
от annulen
Ответ на:
комментарий
от annulen
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Разделяемая библиотека? (2002)
- Форум OpenCV разделяемые библиотеки (2014)
- Форум Профилирование разделяемых библиотек (2009)
- Форум Отладка разделяемых библиотек (2004)
- Форум разделяемые библиотеки (.so) (2006)
- Новости Как писать разделяемые библиотеки (2013)
- Форум Разделяемые библиотеки и анаконда (2017)
- Форум Template в разделяемой библиотеке (2022)
- Форум Информация о разделяемой библиотеке (2010)
- Форум gdb и разделяемые библиотеки (2003)