DLL (англ. Dynamic-link library — динамічно приєднувана бібліотека) — реалізовані компанією Microsoft загальні бібліотеки в ОС Windows та (OS/2). Як правило, бібліотеки мають розширення файлу *.dll, *.ocx (для бібліотек, що містять елементи керування ActiveX) або *.drv (драйвери старих версій ОС). Структура DLL така сама, як і в PE-файлів ([en]) для 32-, 64-розрядних Windows, та [en] (NE) для 16-бітових Windows. DLL може містити код, дані та ресурси в будь-якій комбінації.
Популярний вступ
Різні програми багатовіконного середовища часто виконують однакові дії, наприклад, хрестик в правому верхньому куті вікна, який закриває його, малюється більшістю програм однаково. Марнотратно було б, щоб кожна із цих програм мала відповідну функцію — це роздувало б їхні розміри. Тому, розумно, щоб такі функції поступали в спільне користування. Для цього служать бібліотеки з динамічним зв'язуванням. Відповідні функції завантажуються в пам'ять комп'ютера не з файлу програми, а зі спеціального файлу, вже при виконанні. Насправді, операційна система не завантажує їх повторно. Якщо програма при запуску вимагає завантаження динамічної бібліотеки, то операційна система перевіряє, чи така бібліотека вже є в оперативній пам'яті. Якщо вона є, то операційна система збільшує лічильник клієнтів для динамічної бібліотеки на одиницю. При завершенні роботи, програма повідомляє операційну систему про необхідність вивантажити динамічну бібліотеку. При цьому операційна система зменшує лічильник клієнтів на одиницю. Якщо після такого зменшення кількість клієнтів стає рівною нулю, то тоді динамічна бібліотека справді вивантажується із оперативної пам'яті комп'ютера.
Під Windows динамічні бібліотеки зберігаються в файлах із розширенням *.dll. Крім підпрограм там можуть також зберігатися інші ресурси, наприклад, іконки чи бітмапи. В коді програми, що використовує функції з динамічної бібліотеки, завантаження та вивантаження бібліотеки повинні бути прописані безпосередньо. Компілятору не потрібен код функцій, що містяться в динамічних бібліотеках. При запуску програми, вона, однак, шукатиме відповідну dll. Якщо така dll не знайдена на комп'ютері, то програма здебільшого виконуватися не буде, а видасть повідомлення про відсутність динамічної бібліотеки.
Джерела
- dllexport, dllimport[недоступне посилання з лютого 2019] on MSDN
- Dynamic-Link Libraries [ 9 січня 2017 у Wayback Machine.] on MSDN
- Dynamic-Link Library Security [ 28 травня 2017 у Wayback Machine.] on MSDN
- Dynamic-Link Library Search Order [ 27 серпня 2016 у Wayback Machine.] on MSDN
- Microsoft Security Advisory: Insecure library loading could allow remote code execution [ 15 жовтня 2016 у Wayback Machine.]
- What is a DLL? [ 23 серпня 2016 у Wayback Machine.] on Microsoft support site
- Dynamic-Link Library Functions [ 4 березня 2016 у Wayback Machine.] on MSDN
- Microsoft Portable Executable and Common Object File Format Specification [ 8 грудня 2008 у Wayback Machine.]
- Carpet Bombing and Directory Poisoning [ 26 серпня 2016 у Wayback Machine.]
- MS09-014: Addressing the Safari Carpet Bomb vulnerability [ 5 січня 2016 у Wayback Machine.]
- More information about the DLL Preloading remote attack vector [ 1 січня 2016 у Wayback Machine.]
- An update on the DLL-preloading remote attack vector [ 5 січня 2016 у Wayback Machine.]
- Load Library Safely [ 5 січня 2016 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
DLL angl Dynamic link library dinamichno priyednuvana biblioteka realizovani kompaniyeyu Microsoft zagalni biblioteki v OS Windows ta OS 2 Yak pravilo biblioteki mayut rozshirennya fajlu dll ocx dlya bibliotek sho mistyat elementi keruvannya ActiveX abo drv drajveri starih versij OS Struktura DLL taka sama yak i v PE fajliv en dlya 32 64 rozryadnih Windows ta en NE dlya 16 bitovih Windows DLL mozhe mistiti kod dani ta resursi v bud yakij kombinaciyi Ikonka fajlu dll u WindowsPopulyarnij vstupRizni programi bagatovikonnogo seredovisha chasto vikonuyut odnakovi diyi napriklad hrestik v pravomu verhnomu kuti vikna yakij zakrivaye jogo malyuyetsya bilshistyu program odnakovo Marnotratno bulo b shob kozhna iz cih program mala vidpovidnu funkciyu ce rozduvalo b yihni rozmiri Tomu rozumno shob taki funkciyi postupali v spilne koristuvannya Dlya cogo sluzhat biblioteki z dinamichnim zv yazuvannyam Vidpovidni funkciyi zavantazhuyutsya v pam yat komp yutera ne z fajlu programi a zi specialnogo fajlu vzhe pri vikonanni Naspravdi operacijna sistema ne zavantazhuye yih povtorno Yaksho programa pri zapusku vimagaye zavantazhennya dinamichnoyi biblioteki to operacijna sistema pereviryaye chi taka biblioteka vzhe ye v operativnij pam yati Yaksho vona ye to operacijna sistema zbilshuye lichilnik kliyentiv dlya dinamichnoyi biblioteki na odinicyu Pri zavershenni roboti programa povidomlyaye operacijnu sistemu pro neobhidnist vivantazhiti dinamichnu biblioteku Pri comu operacijna sistema zmenshuye lichilnik kliyentiv na odinicyu Yaksho pislya takogo zmenshennya kilkist kliyentiv staye rivnoyu nulyu to todi dinamichna biblioteka spravdi vivantazhuyetsya iz operativnoyi pam yati komp yutera Pid Windows dinamichni biblioteki zberigayutsya v fajlah iz rozshirennyam dll Krim pidprogram tam mozhut takozh zberigatisya inshi resursi napriklad ikonki chi bitmapi V kodi programi sho vikoristovuye funkciyi z dinamichnoyi biblioteki zavantazhennya ta vivantazhennya biblioteki povinni buti propisani bezposeredno Kompilyatoru ne potriben kod funkcij sho mistyatsya v dinamichnih bibliotekah Pri zapusku programi vona odnak shukatime vidpovidnu dll Yaksho taka dll ne znajdena na komp yuteri to programa zdebilshogo vikonuvatisya ne bude a vidast povidomlennya pro vidsutnist dinamichnoyi biblioteki Dzhereladllexport dllimport nedostupne posilannya z lyutogo 2019 on MSDN Dynamic Link Libraries 9 sichnya 2017 u Wayback Machine on MSDN Dynamic Link Library Security 28 travnya 2017 u Wayback Machine on MSDN Dynamic Link Library Search Order 27 serpnya 2016 u Wayback Machine on MSDN Microsoft Security Advisory Insecure library loading could allow remote code execution 15 zhovtnya 2016 u Wayback Machine What is a DLL 23 serpnya 2016 u Wayback Machine on Microsoft support site Dynamic Link Library Functions 4 bereznya 2016 u Wayback Machine on MSDN Microsoft Portable Executable and Common Object File Format Specification 8 grudnya 2008 u Wayback Machine Carpet Bombing and Directory Poisoning 26 serpnya 2016 u Wayback Machine MS09 014 Addressing the Safari Carpet Bomb vulnerability 5 sichnya 2016 u Wayback Machine More information about the DLL Preloading remote attack vector 1 sichnya 2016 u Wayback Machine An update on the DLL preloading remote attack vector 5 sichnya 2016 u Wayback Machine Load Library Safely 5 sichnya 2016 u Wayback Machine