DLL hell (буквально: «пекло динамічних бібліотек») — конфліктна ситуація, що виникає з динамічними бібліотеками DLL в операційній системі Microsoft Windows які спільно можуть використовуватись різними програмами, але після оновлення спільної бібліотеки однією з програм, працюють непередбачувано з рештою програм. Тобто, сутність проблеми полягає в конфлікті версій DLL, покликаних підтримувати певні функції. DLL hell — приклад поганої концепції програмування, яка, подібно до прихованої міни, призводить до різкого зростання труднощів при ускладненні та вдосконаленні системи. Аналогічна проблема в інших ОС може називатися «пекло залежностей».
Опис проблеми
За початковим задумом, DLL повинні бути сумісними від версії до версії і взаємозамінними в обидві сторони.
Реалізація механізму DLL така, що несумісність і невзаємозамінність стає скоріше правилом, ніж винятком, що призводить до великої кількості проблем.
- Відсутність стандартів на імена, версії і положення DLL в файловій структурі призводить до того, що несумісні DLL легко заміщають або відключають один одного.
- Відсутність стандарту на процедуру встановлення призводить до того, що встановлення нових програм призводить до заміщення робочих DLL на несумісні версії.
- Відсутність підтримки DLL з боку компонувальників і механізмів захисту призводить до того, що несумісні DLL можуть мати однакові ім'я та версію.
- Відсутні стандартні інструменти ідентифікації та керування системою DLL користувачами і адміністраторами.
- Використання окремих DLL для забезпечення зв'язку між завданнями призводить до нестабільності складних застосунків.
Для уникнення конфліктів зазвичай використовують безліч надлишкових копій DLL для кожної програми, що зводить нанівець початкову ідею отримання переваги від DLL як стандартних модулів, що зберігаються один раз в пам'яті і поділюваних багатьма завданнями. Крім того, при такому досвіді після виправлення помилок в DLL або відновлення системи з архіву кількість різних DLL, що носять одне і те ж ім'я і виконують ті ж функції, зростає, а самочинне оновлення версії або виправлення помилок стає неможливим.
Див. також
Примітки
- . techopedia.com. Архів оригіналу за 23 березня 2019. Процитовано 23 березня 2019.
Посилання
- DLL Hell, the Inside Story [ 18 серпня 2019 у Wayback Machine.]
- Как избежать кошмара библиотек DLL [ 4 березня 2016 у Wayback Machine.]
- Simplifying Deployment and Solving DLL Hell with the .NET Framework [ 31 жовтня 2018 у Wayback Machine.]
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
DLL hell bukvalno peklo dinamichnih bibliotek konfliktna situaciya sho vinikaye z dinamichnimi bibliotekami DLL v operacijnij sistemi Microsoft Windows yaki spilno mozhut vikoristovuvatis riznimi programami ale pislya onovlennya spilnoyi biblioteki odniyeyu z program pracyuyut neperedbachuvano z reshtoyu program Tobto sutnist problemi polyagaye v konflikti versij DLL poklikanih pidtrimuvati pevni funkciyi DLL hell priklad poganoyi koncepciyi programuvannya yaka podibno do prihovanoyi mini prizvodit do rizkogo zrostannya trudnoshiv pri uskladnenni ta vdoskonalenni sistemi Analogichna problema v inshih OS mozhe nazivatisya peklo zalezhnostej Opis problemiZa pochatkovim zadumom DLL povinni buti sumisnimi vid versiyi do versiyi i vzayemozaminnimi v obidvi storoni Realizaciya mehanizmu DLL taka sho nesumisnist i nevzayemozaminnist staye skorishe pravilom nizh vinyatkom sho prizvodit do velikoyi kilkosti problem Vidsutnist standartiv na imena versiyi i polozhennya DLL v fajlovij strukturi prizvodit do togo sho nesumisni DLL legko zamishayut abo vidklyuchayut odin odnogo Vidsutnist standartu na proceduru vstanovlennya prizvodit do togo sho vstanovlennya novih program prizvodit do zamishennya robochih DLL na nesumisni versiyi Vidsutnist pidtrimki DLL z boku komponuvalnikiv i mehanizmiv zahistu prizvodit do togo sho nesumisni DLL mozhut mati odnakovi im ya ta versiyu Vidsutni standartni instrumenti identifikaciyi ta keruvannya sistemoyu DLL koristuvachami i administratorami Vikoristannya okremih DLL dlya zabezpechennya zv yazku mizh zavdannyami prizvodit do nestabilnosti skladnih zastosunkiv Dlya uniknennya konfliktiv zazvichaj vikoristovuyut bezlich nadlishkovih kopij DLL dlya kozhnoyi programi sho zvodit nanivec pochatkovu ideyu otrimannya perevagi vid DLL yak standartnih moduliv sho zberigayutsya odin raz v pam yati i podilyuvanih bagatma zavdannyami Krim togo pri takomu dosvidi pislya vipravlennya pomilok v DLL abo vidnovlennya sistemi z arhivu kilkist riznih DLL sho nosyat odne i te zh im ya i vikonuyut ti zh funkciyi zrostaye a samochinne onovlennya versiyi abo vipravlennya pomilok staye nemozhlivim Div takozh en Global Assembly CachePrimitki techopedia com Arhiv originalu za 23 bereznya 2019 Procitovano 23 bereznya 2019 PosilannyaDLL Hell the Inside Story 18 serpnya 2019 u Wayback Machine Kak izbezhat koshmara bibliotek DLL 4 bereznya 2016 u Wayback Machine Simplifying Deployment and Solving DLL Hell with the NET Framework 31 zhovtnya 2018 u Wayback Machine Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi