Декабрь 24, 2018 4:27 дп

Качество драйверов в экосистеме Windows

Авторы – Майкл Фортин, корпоративный вице-президент подразделения Windows, и

Том Франкум, директор по данным и аналитике, подразделение Windows

Обеспечение высокого качества взаимодействия Windows 10 со всеми устройствами и аксессуарами, которые используют наши клиенты, — это основная задача нашей команды. В экосистеме Windows есть миллионы конфигураций оборудования и комбинаций драйверов, что дает клиентам широкий выбор и открывает прекрасные возможности перед нашими партнерами.

Мы тесно сотрудничаем с широким кругом партнеров, чтобы тестировать новые драйверы, отслеживать показатели работоспособности с течением времени и делать Windows и всю нашу экосистему устойчивее с точки зрения архитектуры. Наша задача — постоянно убеждаться в том, что все обновления и драйверы, которые мы предоставляем пользователям, не участвующим в программе предварительной оценки Windows, прошли проверку и имеют достаточный уровень качества (в том числе ежемесячные дополнительные выпуски), прежде чем мы приступим к их широкому распространению. Учитывая сложность экосистемы, это все еще не гарантирует, что некоторые комбинации и конфигурации, встречающиеся у пользователей, не потребуют корректировок от Microsoft или от наших партнеров.

Цепочка распространения драйверов

Драйверы тщательно тестируются, и в этот процесс вовлечены многие компании. Первый этап тестирования проводится независимым поставщиком оборудования (independent hardware vendor, IHV). Когда поставщик (например, Intel, AMD или NVIDIA) создает аппаратный компонент, этот компонент проходит серьезное тестирование, которое обычно включает проверку совместимости с ОС с помощью Windows Hardware Lab Kit (Windows HLK). Windows HLK помогает IHV автоматизировать процесс тестирования оборудования для Windows и соблюдать требования к сертификации устройств по программе совместимости оборудования Windows. Когда клиенты загружают драйверы с веб-сайта IHV, они, как правило, получают драйвер, который соответствует стандартам качества IHV, а также основным стандартам совместимости с Windows 10.

Далее в цепочке идет производитель оборудования (OEM), тестирующий драйвер в каждой сконфигурированной системе, которую он предлагает. OEM-производитель (например, Dell, HP, Lenovo или Surface) устанавливает новый драйвер на различные поставляемые им устройства и выполняет собственный набор тестов. Так IHV получает обратную связь, которая может привести к дальнейшим обновлениям драйверов. После этого проверенные драйверы выпускаются через веб-сайт OEM-производителя или через средства обновления и предназначаются для конкретных устройств, которые, по мнению OEM-производителя, соответствуют стандарту качества.

Последнее звено в цепочке распространения драйверов — Microsoft. IHV и OEM-производители отправляют драйверы в Microsoft, и мы включаем их в нашу инженерную систему, а через какое-то время их получают участники программы предварительной оценки Windows (Windows Insiders). Если драйвер работает хорошо, мы выпускаем его через службу обновления Windows и он становится доступным пользователям Windows для автоматической загрузки. Если драйвер не соответствует нашим стандартам, мы отклоняем его и просим IHV или OEM-изготовителя внести изменения, которые улучшат работу драйвера в Windows.

Цепочка распространения драйверов

Каждый день Microsoft обрабатывает более 100 драйверов, полученных от IHV и OEM-производителей, и гораздо больше драйверов ежедневно публикуется на веб-сайтах IHV и OEM. В экосистему Windows 10 входит несколько миллионов активных драйверов, что очень усложняет оценку изменений, происходящих со временем. В этом смысле 2018 год был особенно напряженным, потому что мы вносили изменения в Windows в ответ на новые угрозы безопасности, обнаруженные на аппаратном уровне, и эти изменения потребовали беспрецедентного количества обновлений драйверов и микропрограмм. В результате обновление и тестирование шло по всей цепочке распространения, чтобы мы могли выпустить в мир защищенные драйверы и микропрограммы.

Измерение и определение качества драйверов

Microsoft вместе с партнерами постоянно занимается повышением качества драйверов. Мы работаем не изолированно, а объединяем усилия по всей экосистеме. Наша задача — каждый день обеспечивать качественную работу Windows. Если есть проблема с драйвером, мы должны быстро ее обнаружить, предотвратить возникновение проблем у клиентов, а затем как можно быстрее разработать исправление и предоставить его всем нашим клиентам. Чтобы обнаруживать неполадки у клиентов, мы используем диагностические данные, обратную связь и другие средства наблюдения. Мы анализируем различные показатели каждый день, чтобы оценивать и анализировать уровень качества.

Например, одна из метрик, которую мы изучаем, — «синий экран». Мы понимаем, что это очень серьезное событие: все останавливается, и компьютер перезагружается после сбора важной информации о сбое.

Для внутренней диагностики мы используем метрику под названием «безаварийность» (crash free), которая определяется как процент машин в определенной категории, на которых в течение заданного промежутка времени не было сбоев драйверов. Обнаруженные сбои мы ранжируем по количеству затронутых машин, сотрудничаем с IHV для исправления проблем и работаем с OEM-производителями, чтобы автоматически распространять обновления среди конечных пользователей. В результате процент безотказных устройств Windows 10 увеличился с менее чем 97% до более чем 98%* за последние два года.

Кривая роста процента безотказных устройств на Windows 10 до более чем 98% за последние два года.

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

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

Предотвращение конфликтов

Если с отдельным драйвером что-то не так, могут возникать конфликты драйверов, например, несовместимость, мешающая Windows правильно использовать соответствующее оборудование. Развертывая очередное обновление компонентов Windows 10, мы тщательно следим за качеством и сигналами обратной связи, чтобы обеспечить нормальную работу драйверов и избежать проблем с обновлением. Если мы обнаружим, что с устройством может возникнуть проблема, такая как несовместимость драйверов, мы не будем устанавливать обновление, запретив системе обновляться до тех пор, пока мы не решим эту проблему. Это означает, что Microsoft не будет предлагать обновление операционной системы тем устройствам, которые имеют аппаратные компоненты и версии драйверов, вызывающие конфликты. Вместо этого мы ждем, когда проблема будет устранена, а компоненты повторно протестированы и полностью развернуты, после чего снимаем запрет. Недавно мы начали делиться подробностями о таких запретах на странице истории обновлений Windows 10. Пример прошлых проблем и связанных с ними запретов можно увидеть здесь.

Улучшение качества через архитектуру

Хотя мы видим улучшения с течением времени, мы знаем, что предстоит еще много работы. Например, мы сотрудничаем с нашими партнерами-производителями оборудования, чтобы уменьшить сложность драйверов Windows, а в некоторых случаях полностью устраняем необходимость в сторонних драйверах, создавая «драйверы класса», которые работают для всего оборудования определенной категории. Когда нет возможности использовать драйверы класса, мы работаем с партнерами-производителями аппаратного обеспечения и обмениваемся данными о качестве, чтобы уменьшить число вариантов драйверов, предоставляемых клиентам. Благодаря такому совместному подходу мы можем уделять каждому драйверу больше внимания перед выпуском. В итоге мы сокращаем число драйверов в активном обращении и повышаем качество каждого выпускаемого драйвера.

Мы будем продолжать тесно сотрудничать с нашими партнерами по всей отрасли, чтобы выявлять и быстро устранять проблемы, с которыми сталкиваются клиенты, и предоставлять нашим пользователям драйверы самого высокого качества. Скоро мы расскажем об обеспечении качества Windows подробнее.


*Учитывается широкий диапазон устройств и версий ОС Windows 10.