Интернет магазин китайских планшетных компьютеров



Компьютеры - DLL hell

04 мая 2011


Оглавление:
1. DLL hell
2. История проблемы
3. DLL hell как мотивация проекта .NET



DLL hell — тупиковая ситуация, связанная с управлением динамическими библиотеками DLL в операционной системе Microsoft Windows.

Аналогичная проблема в других ОС носит название Dependency hell.

Сущность проблемы заключается в конфликте версий DLL, призванных поддерживать определённые функции. пример плохой концепции программирования, которая, подобно скрытой мине, приводит к резкому возрастанию трудностей при усложнении и совершенствовании системы.

Описание проблемы

По исходному замыслу, DLL должны быть совместимыми от версии к версии и взаимозаменяемыми в обе стороны..

Реализация механизма DLL, такова, что несовместимость и невзаимозаменяемость становится скорее правилом, чем исключением, что приводит к большому количеству проблем.

  • Отсутствие стандартов на имена, версии и положение DLL в файловой структуре приводит к тому, что несовместимые DLL легко замещают друг друга или отключают друг друга
  • Отсутствие стандарта на процедуру установки приводит к тому, что установка новых программ приводит к замещению работающих DLL на несовместимые версии
  • Отсутствие поддержки DLL со стороны линкеров и механизмов защиты приводит к тому, что несовместимые DLL могут иметь одно и то же имя и одну и ту же версию
  • Отсутствуют стандартные инструменты идентификации и управления системой DLL пользователями и администраторами
  • Использование отдельных DLL для обеспечения связи между задачами приводит к нестабильности сложных приложений

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



Просмотров: 2500


<<< Упреждающее чтение
DPC >>>