Что такое dll файл (библиотека)?
- Категория: Что такое?
- – Автор: Игорь (Администратор)
В рамках данного обзора, я расскажу вам что такое dll файл (библиотека), а так же про связанные с этим особенности.
Практически каждый человек сталкивался с такими ошибками, как "операционной системе не удалось обнаружить dll", "версия dll не соответствует" и прочими. Поэтому нет ничего удивительно в том, что пользователям становится интересно, а что, собственно, представляют из себя эти файлы-библиотеки и зачем они нужны.
Об этом и пойдет речь далее.
Примечание: Обзор предназначен для начинающих и обычных пользователей.
DLL файл (DLL библиотека, Dynamic Link Library, Динамически подключаемая библиотека) - это набор кодов и данных, объединенных по смыслу и направленности, которые могут одновременно использоваться несколькими программами. Простыми словами, это как книги или сайты в интернете. Например, список кулинарных рецептов.
Зачем нужны dll библиотеки? Суть в том, что dll файлы позволяют организовать модульный подход к созданию программ. Иными словами, вместо того, чтобы каждый раз для каждой программы создавать одни и те же возможности (например, писать функции сложения, умножения и деления), они упаковываются в dll библиотеки и уже затем программы их используют.
Пример с DirectX. Об этом наборе графических библиотек слышал практически каждый. Суть его в том, что он реализует массу готовых графических примитивов и игрушкам не приходится каждый раз заново их реализовывать. Абстрактный упрощенный пример, игрушка не рисует каждый пиксель самостоятельно, а вызывает определенные функции в DirectX (например, "нарисуй воду и волны").
При этом важно отметить, что если при выходе следующей версии графической библиотеки, качество этой "воды и волны" становится лучше, то это так же может улучшить качество картинки в игрушке. Иными словами, игрушки одни и та же, а качество стало лучше.
Примечание: Кстати, это так же может относится и к ПО для видеокарт или иных графических библиотек. Например, Vulcan.
Преимущества dll? Исходно подход с использованием DLL подразумевает следующие преимущества:
1. Используется меньше ресурсов компьютера. Во-первых, вместо того, чтобы каждая программа копировала один и тот же функционал, используется всего одна библиотека (это позволяет экономить место жесткого диска). Во-вторых, в оперативную память компьютера dll библиотека загружается только один раз и все программы вызывают только ее код (тут, существуют нюанс, о нем чуть позже).
2. Упрощение установки. Представьте, что вам нужно собрать стол. Если вместо частей, вам бы присылали железо, дерево и различные химические вещества (например, лаки), то сбор такого стола был бы весьма тяжелой задачей. Но, если же использовать стандартные винты, ножки, столешницу, то сбор столов становится существенно проще. Кроме того, если вдруг появятся более качественные столешницы, то вам не придется менять всю конструкцию, достаточно будет лишь заменить ее.
3. Модульная архитектура. Модульность подразумевает возможность создания таких программ, расширение функциональности которых происходит не за счет корректировки кода, а за счет подключения дополнительных библиотек. Например, плагины для графических редакторов. Упрощенно, в этом случае не нужно полностью перекомпилировать программу и создавать отдельную версию, достаточно скачать необходимую dll и зарегистрировать ее в графическом редакторе, а он уже сам подключит необходимый плагин и предоставит пользователю дополнительную функциональность. Удаление же происходит в обратном порядке: удаление регистрации плагина из конфигурационных файлов редактора, а затем удаление dll.
4. Простота масштабирования. Представьте, что у вас установлено несколько программ, которые используют некие математических функции из dll. Со временем, выходит следующая версия dll, в которой вычисления выполняются быстрее. Для того, чтобы все программы смогли быстрее выполняться, достаточно заменить лишь одну dll.
Что такое DLL Hell? Теория это всегда теория. В реальности же, периодически возникают ситуации, когда разные программы могут корректно функционировать только с определенными версиями dll. Подобное явление называют DLL Hell (библиотечный ад). Это приводит к тому, что операционной системе необходимо загружать не одну dll, а несколько ее разных версий, что идет вразрез с принципом модульности. Но, как говорится, что поделать.
Тем не менее, даже с учетом этого нюанса, dll библиотеки успешно применяются в Windows до сих пор.
Знаете полезную информацию? Смело делитесь ей в комментариях!
☕ Понравился обзор? Поделитесь с друзьями!