В связи с возникшей в последнее время шумихой по поводу нового старфорса 5.0.8.2 и многочисленных
жалоб пользователей о синих экранах, возникающих при проверке диска в присутствии эмулятора
DAEMON Tools мы вынуждены были детально разобраться в происходящем и хочется сказать следующее.
В результате многочисленных тестов на разных конфигурациях удалось выяснить, что причиной синих
экранов является грубейшее нарушение старфорсом синхронизации внутри драйвера SPTD, используемого
DAEMON Tools для доступа к накопительным устройствам.
Наши эксперты детально исследовали ситуацию и сообщили буквально следующее:
при проверке диска Старфорсом на определенном этапе блокируется практически вся операционная система на время до 3 секунд, при этом ничто не живет кроме кода старфорса и какой-то части системы, нужной старфорсу.
Иными словами Windows буквально превращается в однозадачную операционную систему типа MSDOS и ни о какой многозадачности не может идти речи (особенно это видно по тому как замирает мышь) ...
Это можно было бы квалифицировать как полный останов системы под отладчиком, однако на самом деле это не так - часть компонентов системы продолжает работать и общаться с устройствами, другая же часть - искуссвенно вешается намертво. В эту "дохлую" часть системы попадают даже самые критические процессы ядра и важные процедуры (Deferred Procedure Calls, то есть DPC). Разумеется там же по замыслу разработчиков старфорса должен оказаться демон тулз и все другие "нехорошие" программы, мешающие защите.
Однако полностью заблокировать наши драйверы старфорсу затруднительно - DAEMON Tools это
тоже довольно сложная система. И при этом возникает картина которую можно описать в двух словах так:
у здорового организма останавливают все внутренние органы - сердце, легкие и пр, и оставляют скажем только почки и желудок.
После этого начинают этот организм "насиловать" и хотят что-то от него получить. При этом сильно удивляются почему он начинает отказывать (читай: выпадать в синий экран). Это именно то что делает старфорс.
Попросту говоря - DAEMON Tools не в состоянии функционировать в такой "среде" и "умирает": происходит разрушение внутренних структур в памяти и как следствие "синий экран". А проще говоря - нас просто "валят".
Так что это не наш баг, а закономерный результат "стратегии" старфорса. Мы разрабатывали нашу программу для вполне адекватной и предсказуемой МНОГОЗАДАЧНОЙ операционной системы, именуемой Windows, в который все придерживается спецификаций Microsoft, а не Старфорс.
Ядро Windows (да и вообще любой операционной системы) это достаточно сложный механизм в котором все компоненты должны работать слаженно и кооперативно. Многие подтвердят что один даже самый маленький глюкавый драйвер может загнать в даун здоровую систему, неважно при этом насколько качественны остальные ее компоненты.
Достаточно кому-то нарушить эту неустойчивую экосистему и беды не миновать. Именно поэтому к разработке драйверов всегда предъявляются повышенные требования а сами разработчики несут на себе бремя чрезвычайной отвественности - малейшая ошибка грозит крахом всей системы.
Ошибки конечно бывают у всех и проблемы конфликтов между драйверми сторонних производителей встречаются нередко - но как правило разработчики драйверов стараются их устранять, идя на компромиссы в дизайне, чтобы не влиять на чужой драйвер и не мешать ему работать. К примеру в прошлом и у нас были проблемы взаимодейсвия с McAfee, Novell, драйверами TAGES и пр.
Но все эти проблемы цивилизованно решались в рабочем порядке (причем обоюдосторонне) таким образом, чтобы не ущемлять друг друга и ДАТЬ ВОЗМОЖНОСТЬ работать другому драйверу так, как это планировал его производитель. И это понятно любому цивилизованному
разработчику - ядро Windows это наш общий дом: если каждый драйверо-писатель начнет в нем беспредельничать и растопыривать пальцы, то оно быстро превратится в помойку и кошмар для пользователя. Однако это в цивилизованном мире ...
Разработчики же защиты Старфорс пошли иным путем и выбрали иную стратегию. Она называется "убей все в системе кроме себя". Вот как раз "ДАТЬ ВОЗМОЖНОСТЬ" работать другому драйверу в их планы видимо не входит.
В общем на данный момент пока не ясно, в чем может заключаться наш "фикс" данной проблемы (BSOD).
жалоб пользователей о синих экранах, возникающих при проверке диска в присутствии эмулятора
DAEMON Tools мы вынуждены были детально разобраться в происходящем и хочется сказать следующее.
В результате многочисленных тестов на разных конфигурациях удалось выяснить, что причиной синих
экранов является грубейшее нарушение старфорсом синхронизации внутри драйвера SPTD, используемого
DAEMON Tools для доступа к накопительным устройствам.
Наши эксперты детально исследовали ситуацию и сообщили буквально следующее:
при проверке диска Старфорсом на определенном этапе блокируется практически вся операционная система на время до 3 секунд, при этом ничто не живет кроме кода старфорса и какой-то части системы, нужной старфорсу.
Иными словами Windows буквально превращается в однозадачную операционную систему типа MSDOS и ни о какой многозадачности не может идти речи (особенно это видно по тому как замирает мышь) ...
Это можно было бы квалифицировать как полный останов системы под отладчиком, однако на самом деле это не так - часть компонентов системы продолжает работать и общаться с устройствами, другая же часть - искуссвенно вешается намертво. В эту "дохлую" часть системы попадают даже самые критические процессы ядра и важные процедуры (Deferred Procedure Calls, то есть DPC). Разумеется там же по замыслу разработчиков старфорса должен оказаться демон тулз и все другие "нехорошие" программы, мешающие защите.
Однако полностью заблокировать наши драйверы старфорсу затруднительно - DAEMON Tools это
тоже довольно сложная система. И при этом возникает картина которую можно описать в двух словах так:
у здорового организма останавливают все внутренние органы - сердце, легкие и пр, и оставляют скажем только почки и желудок.
После этого начинают этот организм "насиловать" и хотят что-то от него получить. При этом сильно удивляются почему он начинает отказывать (читай: выпадать в синий экран). Это именно то что делает старфорс.
Попросту говоря - DAEMON Tools не в состоянии функционировать в такой "среде" и "умирает": происходит разрушение внутренних структур в памяти и как следствие "синий экран". А проще говоря - нас просто "валят".
Так что это не наш баг, а закономерный результат "стратегии" старфорса. Мы разрабатывали нашу программу для вполне адекватной и предсказуемой МНОГОЗАДАЧНОЙ операционной системы, именуемой Windows, в который все придерживается спецификаций Microsoft, а не Старфорс.
Ядро Windows (да и вообще любой операционной системы) это достаточно сложный механизм в котором все компоненты должны работать слаженно и кооперативно. Многие подтвердят что один даже самый маленький глюкавый драйвер может загнать в даун здоровую систему, неважно при этом насколько качественны остальные ее компоненты.
Достаточно кому-то нарушить эту неустойчивую экосистему и беды не миновать. Именно поэтому к разработке драйверов всегда предъявляются повышенные требования а сами разработчики несут на себе бремя чрезвычайной отвественности - малейшая ошибка грозит крахом всей системы.
Ошибки конечно бывают у всех и проблемы конфликтов между драйверми сторонних производителей встречаются нередко - но как правило разработчики драйверов стараются их устранять, идя на компромиссы в дизайне, чтобы не влиять на чужой драйвер и не мешать ему работать. К примеру в прошлом и у нас были проблемы взаимодейсвия с McAfee, Novell, драйверами TAGES и пр.
Но все эти проблемы цивилизованно решались в рабочем порядке (причем обоюдосторонне) таким образом, чтобы не ущемлять друг друга и ДАТЬ ВОЗМОЖНОСТЬ работать другому драйверу так, как это планировал его производитель. И это понятно любому цивилизованному
разработчику - ядро Windows это наш общий дом: если каждый драйверо-писатель начнет в нем беспредельничать и растопыривать пальцы, то оно быстро превратится в помойку и кошмар для пользователя. Однако это в цивилизованном мире ...
Разработчики же защиты Старфорс пошли иным путем и выбрали иную стратегию. Она называется "убей все в системе кроме себя". Вот как раз "ДАТЬ ВОЗМОЖНОСТЬ" работать другому драйверу в их планы видимо не входит.
В общем на данный момент пока не ясно, в чем может заключаться наш "фикс" данной проблемы (BSOD).
Comment