DLL (Dynamic Link Library)
DLL — формат разделяемых библиотек Windows, содержащих код и данные, используемые несколькими программами одновременно. DLL обеспечивают модульный дизайн ПО, снижают потребление памяти за счёт совместного использования кода и являются основой операционной системы и экосистемы приложений Windows.
MIME-тип
application/vnd.microsoft.portable-executable
Тип
Бинарный
Сжатие
Без потерь
Преимущества
- + Code sharing — multiple programs use the same DLL in memory
- + Modular updates — patch a DLL without recompiling applications
- + Reduced disk and memory usage through shared libraries
Недостатки
- − DLL Hell — version conflicts between applications
- − Security risk — malicious DLL injection and sideloading attacks
- − Windows-only — Linux uses .so, macOS uses .dylib
Когда использовать .DLL
DLL используются приложениями Windows; разработчики создают их для разделяемых библиотек. Конечным пользователям не следует изменять или удалять системные DLL.
Технические детали
Файлы DLL используют формат PE (Portable Executable) — ту же структуру, что и файлы .exe, но с флагом, указывающим, что это библиотека. Они экспортируют функции и данные через таблицу экспорта и загружаются загрузчиком Windows во время выполнения.
История
Microsoft представила DLL вместе с Windows 1.0 в 1985 году для совместного использования кода между приложениями в условиях ограниченной памяти. Формат эволюционировал вместе с Windows в формат PE (Portable Executable), используемый сегодня.