DLL hell

DLL hell (буквально: «пекло динамічних бібліотек») — конфліктна ситуація, що виникає з динамічними бібліотеками DLL в операційній системі Microsoft Windows які спільно можуть використовуватись різними програмами, але після оновлення спільної бібліотеки однією з програм, працюють непередбачувано з рештою програм. Тобто, сутність проблеми полягає в конфлікті версій DLL, покликаних підтримувати певні функції. DLL hell — приклад поганої концепції програмування, яка, подібно до прихованої міни, призводить до різкого зростання труднощів при ускладненні та вдосконаленні системи. Аналогічна проблема в інших ОС може називатися «пекло залежностей».[1]

Опис проблеми

За початковим задумом, DLL повинні бути сумісними від версії до версії і взаємозамінними в обидві сторони.

Реалізація механізму DLL така, що несумісність і невзаємозамінність стає скоріше правилом, ніж винятком, що призводить до великої кількості проблем.

  • Відсутність стандартів на імена, версії і положення DLL в файловій структурі призводить до того, що несумісні DLL легко заміщають або відключають один одного.
  • Відсутність стандарту на процедуру встановлення призводить до того, що встановлення нових програм призводить до заміщення робочих DLL на несумісні версії.
  • Відсутність підтримки DLL з боку компонувальників і механізмів захисту призводить до того, що несумісні DLL можуть мати однакові ім'я та версію.
  • Відсутні стандартні інструменти ідентифікації та керування системою DLL користувачами і адміністраторами.
  • Використання окремих DLL для забезпечення зв'язку між завданнями призводить до нестабільності складних застосунків.

Для уникнення конфліктів зазвичай використовують безліч надлишкових копій DLL для кожної програми, що зводить нанівець початкову ідею отримання переваги від DLL як стандартних модулів, що зберігаються один раз в пам'яті і поділюваних багатьма завданнями. Крім того, при такому досвіді після виправлення помилок в DLL або відновлення системи з архіву кількість різних DLL, що носять одне і те ж ім'я і виконують ті ж функції, зростає, а самочинне оновлення версії або виправлення помилок стає неможливим.

Див. також

Примітки

  1. What does DLL Hell mean?. techopedia.com.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.