Ivan Rouzanov ([info]deadracoon) wrote,
@ 2004-12-15 17:00:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Переход количества в качество
Очень в тему качества программного обеспечения пришлась сегодняшняя презентация по Online Crash Analysis.
Но сначала хочется рассказать историю одного бага.
У нас был баг в обработчике прерывания мыши. В течении 7 (семи!) лет. Вдумайтесь в это: в мире 600 милионов пользоватлей Windows, подавляющее большинство из них активно пользуется мышкой, сколько раз возникает прерывание? Каждый раз когда мы двигаем мышь или нажимаем на кнопку, причем множество раз во время движения. Десятки раз в секунду на сотнях милионов машин в течение 7 лет вызывался один и тот же обработчик прерывания и в нем был баг, приводящий, понятное дело, к синему экрану.

В чем баг?
Обработчик не знает позицию мышки, знает только что что-то изменилось, соответственно он должен спросить мышь о ее текущем положении в некотором смысле.
Он спрашивает - ответа нет. Спрашивает еще - ответа нет. Если в третий раз ответа нет, это занимает слишком долго (в IBM PC пока вы обрабатываете какое-то прерывание, остальные прерывания того же уровня или ниже запрещены, так что это очень плохая практика писать "долгие" обработчики прерываний), соответственно он говорит "ладно, узнаем потом при помощи DPC (defered procedure call)". Баг был в неправильных параметрах DPC, поскольку все это в ядре - синий экран.

Почему не нашли?
Потому что любая мышь, подключенная к компьютеру проводом отвечает с превого раза. Любая беспроводная - максимум со второго. Когда же они не отвечают? Когда у беспроводной мыши сели батарейки _после_ того, как включили компьютер. Кто, скажите мне, будет тестировать с почти севшими батарейками? Как часто они садятся-то вообще? Вот в том-то и дело.
Это все тестировали милионы раз и не нашли.

Как нашли? При помощи Online Crash Analysis (OCA). После того как система упала, при следующей перезагрузке пользователю предлагается послать дамп в Майкрософт. Многие их посылают (это мини-дамп, его даже по модему передать можно очень быстро - 64К всего).
(Отступление про частную жизнь: перед тем как посыалать из дампов удаляют все, что позволило бы идентифицировать пользователя - IP адрес, MAC адрес, BIOS signature, CPU ID и т.д. То есть нам иногда даже и хотелось бы иметь эти данные (чтобы например узнать от того же человека приходит этот краш или нет), но у нас нет такой возможности - в дампах нет ничего, что позволило бы нам узнать, а кто это нам его послал).
Так вот с распространением беспроводных мышей этот баг стал возникать чаще и чаще, его наконец заметили, посмотрели в дамп и нашли. При помощи OCA.

Так вот некоторая статистика с OCA (они получают все эти дампы со свего мира и анализируют их):
Для 32% "синих экранов" мы знаем в чем проблема и у нас есть либо фикс, либо мы знаем у кого фикс (см. ниже). То есть в каждом третьем случае достаточно отправить дамп в Microsoft и проблема разрешится. Это уже не лотерея, это игра в которую можно выиграть. Реальная польза я замечу.

На сегодняшний день наблюдается следующая статистика по "синим экранам":
5% - Microsoft
12% - "железо" (то есть неправильно работающая аппаратура, включая память и прочее)
83% - драйверы третьих фирм

То есть даже если мы бы смогли пофиксить _все_ свои ошибки, насколько это улучшило бы ситуацию с качеством вообще? На 5%.
На пять процентов.

На сегодняшний день нельзя начать распространять новый драйвер так, чтобы мы не узнали о нем в течение 48 часов. Почему? Потому что он будет падать и пользователи будут это репортить нам.
44000 (сорок четыре тысячи) уникальных драйверов для Windows в мире (не считая версий). Более 20 _абсолютно_ новых - каждый день. Более 600 - новых версий каждый день.
Это включает в себя и чисто программные драйверы для антивирусов и т.п.
Из каждых 20 синих экранов - 16 эти самые драйверы. Минимум два - железо. И только один - мы. Ну пофиксим мы свой, а толку-то?

Так вот поинт в том, что для систем такого уровня сложности (современный компьютер вместе со всем установленным на нем железом и софтом) не существует хороших способов добиваться надежности. Те кто говорят про то, что надо тестировать и это решит все проблемы просто не представляют себе в чем собственно состоят проблемы.
Те кто считают что Microsoft must die и где-то лучше просто не представляют себе в чем собственно проблемы.
Драйвер написанный NVIDIA для Линукс (поставляемый в виде бинарника кстати) или для Windows - это драйвер написанный NVIDIA, и он будет рушить систему.
Все, абсолютно все коммерчески успешные операционные системы на сегодня - с монолитным ядром. И Линукс, и NT, и BSD. Даже MacOS, который вроде как должен быть на микроядерном Mach - на самом деле с монолитным ядром (они его сделали таким). Почему? Потому что они коммерчески успешные. Микроядерные технологии не работают достаточно быстро даже на сегодняшний день. А это значит что ошибка любого компонента в пространстве ядра выносит всю систему.

Важно понимать что кто угодно может написать программку в тысячу строк, в которой не будет ни одной ошибки. Можно написать приложение в 10K, в котром не будет ни одной ошибки. Есть методы писать приложения в 100K без ошибок. Однако все это не масштабируется. Не существует методов писать программыне системы в сотни милионов строк - проблемы там совершенно другие.

Да, надо менять подход к разработке софта кардинально, и есть люди (и мы знаем некоторых из них), которые именно этим и занимаются.
Но на сегодняшний день было бы наивно думать что существует способ решить проблемы с качеством индустриального софта. Или что существует промышленный софт, у которого нет проблем с качеством.



Page 1 of 2
<<[1] [2] >>

(Post a new comment)


[info]bowhill
2004-12-16 06:58 am UTC (link)
Почти со всем согласен. Но есть некоторые тона серого, например в серверах на упомянутых BSD, например у меня вообще нет мыши. 25x80 и куку. Не могу сказать, что у меня юниховых серверов больше чем ntшных, или об отсутствии в них косяков, или что у меня какие-то особенные претензии к nt ( это будет несколько offtopic), но imho некоторые очевидные телодвижения у MS наверное еще впереди.

А с тестированием драйверов это да, проблема и OCA штука хорошая. Кстати, а разработчиам драйверов эта информация доступна?

(Reply to this) (Thread)


[info]deadracoon
2004-12-16 07:54 am UTC (link)
В NT так тоже теперь сделать можно.
Разработчикам драйверов все это доступно. Около 500 компаний этим уже пользуется. Проблема в том что их драйверы как раз вполне ничего.

Вообще недавно в NT Inseder была на эту тему статья. Разработчики драйверов - ужасно консервативны. Они не пользуются даже driver verifier, который включен в W2K и выше, естественно бесплатный, тривиальный в использовании и нашел бы примерно половину всех тех багов, которые вместо них "находят" пользователи. Microsoft включила в DDK огромное количество технологий, даже prefast. Проблема настолько серьезна, что было специально разработана целая куча инструментов чтобы облешчить тяжкую долю писателей драйверов. Все бесплатно естественно.
И что? Они ничем пользоваться не хотят.

(Reply to this) (Parent)(Thread)

(no subject) - [info]some41, 2004-12-16 12:10 pm UTC
(no subject) - [info]name_fa, 2004-12-16 09:24 pm UTC
(no subject) - [info]some41, 2004-12-16 09:35 pm UTC
(no subject) - [info]levgem, 2004-12-19 06:41 pm UTC
(no subject) - [info]aamonster, 2004-12-16 11:04 am UTC

[info]zhunya
2004-12-16 08:32 am UTC (link)
Можно запостить в ru_microsoft?

(Reply to this) (Thread)


[info]deadracoon
2004-12-16 08:55 am UTC (link)
Может ссылку послать? А что такое ru_microsoft? Общество Где Нас Ненавидят?(tm) :)

(Reply to this) (Parent)(Thread)

(no subject) - [info]zhunya, 2004-12-16 11:03 am UTC
(no subject) - [info]name_fa, 2004-12-16 09:22 pm UTC
(no subject) - [info]some41, 2004-12-16 09:31 pm UTC
(no subject) - [info]zhunya, 2004-12-17 06:39 am UTC

[info]alickop
2004-12-16 09:39 am UTC (link)
Спасибо. Очень интересная статья.

(Reply to this)


[info]kidd79
2004-12-16 10:01 am UTC (link)
> Из каждых 20 синих экранов - 16 эти самые драйверы.
> Минимум два - железо. И только один - мы.

16+2+1=?

^_^

(Reply to this) (Thread)


[info]deadracoon
2004-12-16 10:12 am UTC (link)
У драйверов еще 3%, а у железа - 2% - это и есть недостающая 1.

(Reply to this) (Parent)(Thread)

(no subject) - [info]kidd79, 2004-12-16 03:27 pm UTC

[info]toomany
2004-12-16 10:06 am UTC (link)
В меморис :) Будет, что ответить виндоненавистникам :)

(Reply to this) (Thread)

а зачем им отвечать вообще?
[info]erra
2004-12-16 10:44 am UTC (link)

те, кому главное - помахать растопыркой и покричать "mustdie", никаким доводам разума не поддаются. Остальные в среднем и так понимают, что дело не только и не столько в системе, сколько в обвязке. Но есть, конечно, и в системе прелести, типа TCP/IP реализации, это тоже надо учитывать.

(Reply to this) (Parent)(Thread)

Re: а зачем им отвечать вообще? - [info]vitus_wagner, 2004-12-17 12:57 pm UTC
моделька, может, и хороша - [info]erra, 2004-12-17 01:12 pm UTC
Беда как раз в том, что она РАБОТАЕТ - [info]vitus_wagner, 2004-12-17 05:25 pm UTC
Дело не в системе. И не в обвязке. А в business practices. - [info]netrog, 2005-01-29 02:23 am UTC
Re: Дело не в системе. И не в обвязке. А в business practices. - [info]refrejirator, 2005-02-22 09:20 am UTC
Re: Дело не в системе. И не в обвязке. А в business practices. - [info]alexclear, 2005-04-11 03:00 pm UTC
(no subject) - [info]eastexpert, 2004-12-16 03:23 pm UTC
(no subject) - [info]alexclear, 2005-04-11 02:56 pm UTC

[info]1master
2004-12-16 10:10 am UTC (link)
... и то же самое касается безопасности. К сожалению.

(Reply to this) (Thread)

с безопасностью все иначе
[info]arkanoid
2004-12-16 11:22 am UTC (link)
там доступоность исходного кода является требованием по одному из основных условий.

а насчет орущих microsoft must die - сраные красноглазые так и не смогли за чортовы десять с хреном лет родить хоть один веб-броузер, который бы был сравним одновременно по фичам и производительности с ie, который якобы "тормозной монстр, как все у микрософт". Хваленые "легкие" броузеры на toshiba libretto 50ct только взлетают минут по пять.

(Reply to this) (Parent)(Thread)

Re: с безопасностью все иначе - [info]1master, 2004-12-16 11:29 am UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 11:38 am UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 11:44 am UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 12:21 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 12:37 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 12:50 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 12:58 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 01:07 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 01:15 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 01:23 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 01:25 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 01:36 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 01:39 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 02:14 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 02:20 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 02:24 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 03:22 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 03:25 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 03:32 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 03:37 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 03:43 pm UTC
Re: с безопасностью все иначе - [info]1master, 2004-12-16 03:53 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 03:42 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 03:51 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 03:53 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 03:17 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 03:21 pm UTC
Re: с безопасностью все иначе - [info]rblaze, 2005-01-28 03:53 pm UTC
Re: с безопасностью все иначе - [info]1master, 2005-01-28 04:22 pm UTC
Re: с безопасностью все иначе - [info]rblaze, 2005-01-28 04:26 pm UTC
Re: с безопасностью все иначе - [info]1master, 2005-01-28 04:29 pm UTC
Re: с безопасностью все иначе - [info]rblaze, 2005-01-29 09:10 am UTC
Re: с безопасностью все иначе - [info]1master, 2005-01-29 12:44 pm UTC
Re: с безопасностью все иначе - [info]deadracoon, 2004-12-16 08:25 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-17 10:17 am UTC
Re: с безопасностью все иначе - [info]svolik, 2004-12-17 01:11 pm UTC
Re: с безопасностью все иначе - [info]deadracoon, 2004-12-17 03:20 pm UTC
Re: с безопасностью все иначе - [info]svolik, 2004-12-20 02:45 pm UTC
Re: с безопасностью все иначе - [info]rampitec, 2005-01-25 09:33 pm UTC
Re: с безопасностью все иначе - [info]pustota1, 2005-07-21 06:04 pm UTC
Re: с безопасностью все иначе - [info]levgem, 2004-12-19 09:41 pm UTC
Re: с безопасностью все иначе - [info]mauhuur, 2005-01-28 03:20 pm UTC
Re: с безопасностью все иначе - [info]1master, 2005-01-28 03:35 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 12:25 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 12:25 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 12:38 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 12:47 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 12:52 pm UTC
Re: с безопасностью все иначе - [info]lovchy, 2004-12-16 12:55 pm UTC
Re: с безопасностью все иначе - [info]alexclear, 2005-04-11 03:05 pm UTC
Re: с безопасностью все иначе - [info]9000, 2004-12-16 01:50 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 01:56 pm UTC
Re: с безопасностью все иначе - [info]9000, 2004-12-16 05:06 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-16 05:14 pm UTC
Re: с безопасностью все иначе - [info]kukutz, 2004-12-16 07:50 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-17 10:12 am UTC
Re: с безопасностью все иначе - [info]kukutz, 2004-12-17 10:23 am UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-17 10:40 am UTC
Re: с безопасностью все иначе - [info]kukutz, 2004-12-17 12:09 pm UTC
Хм - [info]arkanoid, 2004-12-17 12:18 pm UTC
Re: Хм - [info]kukutz, 2004-12-17 12:29 pm UTC
Если бы усилия последних десяти лет были направлены на - [info]arkanoid, 2004-12-17 12:38 pm UTC
Re: с безопасностью все иначе - [info]levgem, 2004-12-19 09:36 pm UTC
Re: с безопасностью все иначе - [info]levgem, 2004-12-19 06:46 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-19 09:14 pm UTC
Re: с безопасностью все иначе - [info]levgem, 2004-12-19 09:33 pm UTC
Re: с безопасностью все иначе - [info]arkanoid, 2004-12-19 09:39 pm UTC
Re: с безопасностью все иначе - [info]alexclear, 2005-04-11 02:49 pm UTC

[info]sergeax
2004-12-16 10:33 am UTC (link)
А можно установить OCA в Windows 2000 Prof? Или она только в XP зашита?

(Reply to this)


[info]moon_aka_sun
2004-12-16 11:21 am UTC (link)
Про драйверы понятно. Не понятно, когда Windows падает "чисто" в программах где-нибудь. Как раз 2 дня назад столкнулся. XP Home или Pro, AVG (антивирус) проверяет файл из зипа. Система просто сразу перегружается. Какой тут драйвер может быть виноват?

(Reply to this) (Thread)


[info]1master
2004-12-16 11:45 am UTC (link)
"чисто в программах", ага. Антивирусы обычно в такое нутро системы лезут, что просто ой.

(Reply to this) (Parent)(Thread)

(no subject) - [info]moon_aka_sun, 2004-12-16 12:01 pm UTC
(no subject) - [info]deadracoon, 2004-12-16 08:14 pm UTC

[info]kouzdra
2004-12-16 11:22 am UTC (link)
Немножко из другой оперы (но смежной) - позавчера пофиксил баг в нативном Java коде, который на фиг выносил JVM. Причина - иногда не загружался класс RuntimeException и в ThrowNew передавался NULL.

Понятно - баг, но какого хрена вместо выкидывания NPE со внятной диагностикой (для чего надо всего-лишь проверить в ThrowNew параметр на NULL), крэшится JVM с сообщением о SegFault (что в общем-то аналог синего экрана для Java).

То есть если хотя бы минимально проверять параметры на корректность там, где это не давит на производительность - все будет куда гуманнее.

(Reply to this) (Thread)


[info]xtr0
2005-01-28 01:14 pm UTC (link)
NPE то из RuntimeException растет... :)

(Reply to this) (Parent)


[info]hpashka
2004-12-16 01:54 pm UTC (link)
В мемориз.

windowsbugsprogrammingmicrosoft

(Reply to this)


[info]liveuser
2004-12-16 04:13 pm UTC (link)
Одно из моих развлечений - поискать в разделе "Support & Troubleshooting" на microsoft.com название любого известного производителя ПО или железа и полюбоваться на количество ошибок, в которых MS обвиняет (всегда полагал, что заслуженно) производителя.

Я так понимаю, там далеко не все ошибки? Например, 'kaspersky' обвиняется только в двух.

(Reply to this) (Thread)


[info]deadracoon
2004-12-17 12:29 am UTC (link)
Там и одного процента нет.

(Reply to this) (Parent)


[info]levgem
2004-12-19 06:39 pm UTC (link)
С трудом верю, что действительно можно написать программу в 1000 строк _без единственной_ ошибки. Если конечно, это не 1000 раз функция printf().

А теперь вопрос. Если завтра я (предположим такую смешную гипотетическую ситуацию) сделаю новое устройство (скажем, видеокарту), смогу ли я с вашего сайта бесплатно взять всю необходимую информацию для написания корректного драйвера под винду?

Что касается багов, то вспоминается доказательное программирование. Что бы доказать корректность реализации сортировки пузырьком, надо написать пару тысяч строк кода (со своими ошибками, есессно)

(Reply to this) (Thread)


[info]deadracoon
2004-12-20 09:38 am UTC (link)
Ошибки - Можно, да. Есть способы. Чтобы доказать совсем не обязательно что-то писать, но и это не динственный способ. Например TSP/PSP. Как бы вопрос о том, хорошие ли это способы их достоинства и недостатки лучше обсуждать отдельно, но они есть.

Что каксается драйвера - предполагая что информация про собственно железо уже известна, все остальное написано тут: http://www.microsoft.com/whdc/devtools/ddk/default.mspx

С сайта - нет.
Бесплатно - да (условно). Можно заказать CD (оплачивается только доставка, в моем случае это около $16)
Можно получить DDK как часть подписки на MSDN (и это, наверное, самый лучший вариант).
Опять же смотря какую "винду". В MSDN есть DDK для разных версий.
Вообще на самом деле DDK - наиболее близкая к системе вещь, фактически он является ее частью и привязан к ней очень сильно.

(Reply to this) (Parent)(Thread)

(no subject) - [info]levgem, 2004-12-20 11:43 am UTC
(no subject) - [info]deadracoon, 2004-12-20 11:45 pm UTC
(no subject) - [info]levgem, 2004-12-21 08:58 am UTC
(no subject) - [info]deadracoon, 2004-12-21 06:27 pm UTC

[info]rogi_nidnyrt
2004-12-24 02:15 am UTC (link)
Была в свое время интересная идея тестировать с code coverage - работает тулза, которая тебе говорит какой кусок кода никогда не выполнился, т.е. не был протестирован.
Почему-то идея тихо умерла - возможно хороших тулов на эту тему не смогли написать.

По поводу prefast - я его и похожие системы непосредственно шупал. Проблема тут классическая - очень трудно поместить человеческий интеллект в тул, который за тебя решает что плохо а что хорошо. Слишком много false positives, и практическая ценность этих систем постепенно сходит на нет в процессе экплуатации. У нас одну такую штуку крутили, потом выключили, всем надоело..

(Reply to this) (Thread)


[info]deadracoon
2004-12-27 11:56 pm UTC (link)
У нас есть code coverage, репорты с него - часть тестовой программы. Качество prefast минимум на порядок выше прежних инструментов такого рода.

(Reply to this) (Parent)


[info]_1313
2004-12-26 09:17 pm UTC (link)
Спасибо, очень интересный текст!

(Reply to this)


[info]cpcat
2004-12-26 09:58 pm UTC (link)
Запись в мемориз!

Кстати, не пойму, чем ситуация с мышкой отличается от той, когда я случайно выдёргиваю хвостатую из PS/2 порта? Почему винда не падает в таком случае?

(Reply to this) (Thread)


[info]vospi
2004-12-27 09:47 am UTC (link)
видимо, кондуктор не спешит, кондуктор понимает, что провод выдернут. в случае с беспроводной провод-то на месте, а отклика нет.

(Reply to this) (Parent)

(no subject) - [info]deadracoon, 2004-12-27 11:59 pm UTC

[info]casualwriter
2004-12-27 09:07 am UTC (link)
Важно понимать что кто угодно может написать программку в тысячу строк, в которой не будет ни одной ошибки. Можно написать приложение в 10K, в котром не будет ни одной ошибки. Есть методы писать приложения в 100K без ошибок. Однако все это не масштабируется. Не существует методов писать программыне системы в сотни милионов строк - проблемы там совершенно другие.

Согласен. Но ты ведь до этого писал совсем о другом: о том что только 5% BSOD приходятся на ошибки в многомиллионном коде системы, а 80% - в коде драйверов, объем текстов которых (спекуляция) порядка десяток тысяч строк а никак не миллионы.

(Reply to this) (Thread)


[info]deadracoon
2004-12-28 12:01 am UTC (link)
Качество драйверов можно улучшить безусловно, так что общее количество ошибок сократится на ~80% (что очень много). Однако дальше будут трудности, поскольку все это функционирует как единое целое.

(Reply to this) (Parent)


[info]kykqx
2004-12-27 02:15 pm UTC (link)
люди! не тупите! уто тут говорит, что Firefox долго грузится? он грузится столько же, сколько и IE, даже, наверное, раза в два быстрее, но просто IE пускается вместсе со всей операционнкой при запуске компа, т.к. он еще в Винде и шелл. Тем более, что повторно Firfox апускатся мнгновенно... и на 64 мб Firefox меня летает...

(Reply to this)


[info]unseer
2005-01-28 01:15 pm UTC (link)
Я операционные системы не писал, поэтому если скажу что-то не так, прошу ногами не бить ;) Но на мой взгляд если можно написать программу (или даже драйвер), которая подвешивает всю систему, то это не лучшим образом характеризует операционную систему. И валить всю вину на разработчиков стороннего софта и драйверов - это не самое лучшее решение проблем.

Да и в последних версиях виндовса эти самые синие экраны уже не самый большой недостаток.

(Reply to this)


[info]wesha
2005-01-28 04:17 pm UTC (link)
Коллега, вы несколько не понимаете, НА ЧТО ИМЕННО мы жалуемся.

Мы жалуемся не на то, что в драйвере мыши бага - а в том, что, даже зная, что в нем бага, его НЕВОЗМОЖНО ОТКЛЮЧИТЬ!

Во фре я могу задизейблить практически любой компонент системы, и никто мне ничего не скажет. А попробуйте в виндах поставить DNS-server, при этом не ставя Client for Microsoft Network... То есть поставить, конечно, можно, но работать - не будет (случай из личной практики...) А как результат, наружу открыто СТОЛЬКО ненужных мне портов, на радость всяким NIMDA-м...

У вас огромное количество излишних кросс-связей. Или тот же DLL Hell. Да, я понимаю, программы, использующие внешние DLL, занимают меньше места на диске. А в результате - установка чего-либо нового рушит Net Vampire, потому что он заточен под одну-единственную конкретную версию какой-то DLL (наизусть не помню, извините). Предки не зря ведь придумали мудрость - "все свое ношу с собой".

Что особенно бесит - так это то, что найти и исправить багу квалификация мне позволяет, но без сорцов - это Танталовы муки. А ждать ваших патчей - так ишак сдохнет скорее...

А за отсутствие драйверов "Generic USB Storage device" для Windows 98 вам не икается? Ведь простейшая же задача, да и поток в "600 версий драйверов в день" ополовинился бы...

А "цикл поддержки"? Эта ничем технически не подкрепленная, маркетинговая "мудрость"? А заявы о том, что Windows 98 якобы не поддерживает 1 Гб памяти или винты объемом свыше 137 Гб? (Все отлично работает, распечатки прислать?)

(Reply to this)

А во втором сервис паке?
[info]_cmeptb_
2005-02-01 07:44 am UTC (link)
А во втором сервис паке для ХР этот баг с мышью пофиксен?

(Reply to this)


[info]realloc
2005-02-01 05:44 pm UTC (link)
Общие фразы нипрочто без конкретики. Проблема мелкософта не в багах в мушкиных драйверах, а в убожестве их архиетектуры вцелом.
+Основная проблема это безопасность, а не, опять же, бага в обработке прерываний мыши.
Вот моё имхо.

(Reply to this)


[info]iseg
2005-02-10 07:21 pm UTC (link)
Спасибо, очень внятно сказано.

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

И потом: а более тщательная проработка небольшого количества интерфейсов не поможет?

Уточню свою мысль примером: последние досаждавшие мне баги Windows были связаны с ошибкой заведомо ЧУЖОГО драйвера (в этом вы правы): принтер HP, принтсервер SAMBA+CUPS, Linux - эта комбинация периодически вешала намертво Windows NT, Windows 2000, Windows XP - ВСЕХ клиентов, пытавшихся чего-то печатать. Очевидно что ошибка в реализации протокола общения с принт-сервером (нет никаких сомнений что кривым и фриварным, но дело не в этом!) на стороне Client для Windows Networks.

Ведь глупости, которые отвечает кривой принт-сервер, не должны вешать систему.
Кривой принтсервер работает НЕ В ЯДРЕ. Более того, он работает даже не на этом компьютере.

Ради бога не расценивайте как наезд на Windows, мой пост не об этом. Я лишь думаю о том, что частично (только лишь - согласен, но...) решение может лежать в способах обработки ошибок, в малом числе интерфейсов, в их простоте и прозрачности.

(Reply to this)

Немного для расширения кругозора
[info]neprince
2005-02-21 03:01 pm UTC (link)
"Все, абсолютно все коммерчески успешные операционные системы на сегодня - с монолитным ядром.
Микроядерные технологии не работают достаточно быстро даже на сегодняшний день."

Прежде, чем делать подобные заявления, неплохо бы ознакомиться с предметной областью.

Вы раньше слышали о ОСРВ, в общем, и о QNX, в частности? Последняя - ровесница MS DOS и работала на том же IBM x86 железе. Эта ОС построена на архитектуре микроядра, а значит "свалить" ее драйвером, написанным криворуким програмером, практически невозможно. И уже тогда она была ОС реального времени, что достаточно говорит о ее быстродействии. Тогда же она была реально многозадачной, реально многопользовательской и работала, естественно, в защищенном режиме процессора.
Может Вы думаете, что она коммерческие неуспешна? В своем сегменте - она лидер продаж. Можете ознакомиться на их сайте с компаниями, которые используют ее.
Почему QNX не стала лидером рынка настольных систем - тема отдельного разговора...

ЗЫ. Кстати, у Микрософт были попытки развития ОС в правильном направлении, но они закончились неудачей. Я говорю об NT 3.5. Жаль что у компании нет людей, способных разработать ОС новой прогрессивной архитектуры, а не ОС новых "фантастических" возможностей, навроде летающих листов при копировании.

(Reply to this)


[info]refrejirator
2005-02-22 10:54 am UTC (link)
мать честная, и здесь флейм мелкосовт вс никсы развели, куда деваться.
подскажите какой нить сегмент инета где об этом не торгуются, куплю туда билет за любые деньги!

(Reply to this)


[info]voffka
2005-02-23 08:21 am UTC (link)
В данной статье сделан упор на качество кода, но из последствий этой проблемы описывается только "синий экран" (стабильность работы системы).

Для отдельно взятого пользователя, у которого на компьютере появился драйвер из тех самых 83%, "синий экран" довольно неприятное явление, которое лишает его возможности выполнять какие-то свои задачи. Но эта проблема не выходит за рамки "пользователь - производитель железа" и в конце концов, либо производитель исправит свои драйвера, либо пользователи перестанут покупать его железо.

Но, когда обнаруживается баг из 5%, которые числятся за Microsoft, то теоретически под ударом находятся все 600 миллионов пользователей продукции Microsoft. Если удается задействовать этот баг через вирус и использовать его для распространения этого вируса через Интерент, то последствия весьма фатальны и достаётся всем, не только пользователям продукции Microsoft.

Так что, не смотря на теоретическую численность тех или иных багов, стОит также учитывать последствия, к которым могут привести эти баги.

(Reply to this)


Page 1 of 2
<<[1] [2] >>

Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…