Кондуктор нажал на тормоза

В свете выхода новой ОС Windows 10, оснащенной разного рода  хитростями для защиты контента от копирования, полезно вспомнить созвучную историю из прошлого.

(Февраль 2008)

vistaГод, прошедший со времени выхода Windows Vista на рынок, был вполне достаточным сроком для обстоятельной оценки плюсов и минусов новой операционной системы Microsoft. По итогам этой оценки один из наиболее известных в мире компьютерных журналов, к примеру, назвал Vista «главным техническим разочарованием 2007 года».

В другом месте, солидной софтверной фирме в США, аккуратно сравнили скорость работы Vista, улучшенной только что выпущенным сервис-паком SP1, с аналогичными показателями предыдущей ОС XP SP3. И установили, что в условиях одних и тех же машин / приложений «старая» XP уверенно и заметно (примерно в два раза) превосходит новую Vista по ключевым показателям производительности. Из чего возникает, как говорится, естественный вопрос…

Что, собственно, происходит?

Ответов на этот простой вопрос много. Даже чересчур, пожалуй, много.

Во-первых, скажут вам, ОС Vista просто больше, чем Windows XP. Она насыщена множеством полезных фоновых сервисов, которые индексируют документы, оптимизируют жесткий диск, ищут вредоносные программы, делают резервное копирование и тому подобные вещи. Под все это хозяйство Vista изначально забирает оперативной памяти в три раза больше, чем XP, а когда и ее начинает не хватать, запускаются интенсивные обмены с кэшем жесткого диска. Что, конечно же, сразу отражается на снижении производительности.

Во-вторых, различия в скорости работы существенно отличаются для разных типов сравнительных испытаний. Например, скорость обычных математических вычислений для обеих систем примерно одинакова. Достаточно близки показатели для сложной 3D-графики, причем здесь Vista иногда даже способна немного обгонять XP. Но вот что касается простых графических приложений, вроде обычного прокручивания окна с текстом или построения элементарных линий и фигур, то здесь XP может превосходить Висту по скорости и в два, и даже в четыре раза.

Особенно сильно это заметно при сравнении на стандартных офисных приложениях, вроде программ из пакета MS Office. Объясняют это повышенным вниманием к красоте представления графики в Vista с опорой на новую продвинутую библиотеку программ DirectX. Обладающих, естественно, повышенными требованиями к памяти и ресурсам процессора.

В-третьих… Впрочем, вместо скучного перечисления всевозможных причин, в качестве куда более живой и наглядной иллюстрации проблемы уместно привести одну из дискуссий пользователей Vista на официальном веб-форуме корпорации (forums.microsoft.com/technet/showpost.aspx?postid=1358057).

Эта дискуссионная ветвь ныне насчитывает беспрецедентно огромное – свыше полутысячи – число выступлений и без перерывов длится уже целый год. Причем, хотя официально проблема, породившая обсуждение – «О-о-ч-ч-чень медленное вычисление времени, требующегося на перемещение, уничтожение и копирование файлов» – модераторами форума давно помечена как «решенная», в действительности это далеко не так. Чтобы убедиться в обратном, достаточно почитать последние выступления, датируемые зимой 2008 года.

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

«Почему в системе Vista уходит вечность на то, чтобы уничтожить (навсегда или помещением в мусорную корзину) и скопировать файлы? Сама операция, похоже, не занимает особо много времени, но почему вычисление остающегося времени подвешивает процесс на непостижимо долгий период, который к тому же нельзя остановить?»

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

Несколько раз выпускались хотфиксы и апдейты к Vista, призванные вроде как решить эту казусную оплошность. Но не далее как в конце декабря 2007 разные сетевые издания опубликовали скриншоты ОС Vista, которая после всех рекомендованных модернизаций по-прежнему может выдавать при копировании больших файлов и массивов сообщения типа таких: «Осталось 48167 дней и 23 часа»…

Реально времени затрачивается, конечно, существенно меньше. Но все равно процесс остается о-о-о-ч-ч-чень медленным.

[ВРЕЗКА]

Прогноз Гутмана или «Самая длинная записка самоубийцы»

Возможно, кому-то это покажется странным, но неприлично заторможенная работа новейшей ОС Vista уверенно прогнозировалась некоторыми знающими специалистами еще до выхода системы на рынок. Так, в конце 2006 года Питер Гутман, известный новозеландский эксперт по компьютерной безопасности, опубликовал в Сети обстоятельное исследование-предупреждение под названием «Анализ затрат на защиту контента в ОС Windows Vista» (www.cs.auckland.ac.nz/~pgut001/pubs/vista_cost.txt).

Значительная часть фактов, изложенных в этой работе, была почерпнута автором непосредственно из технической документации корпорации Microsoft, поэтому не являлась чем-то революционно новым для всех, кто следит за подобными вещами. Однако собственная квалификация Гутмана и его широкие связи в компьютерной индустрии, обеспечившие богатый набор нюансов и живых комментариев «изнутри процесса», позволили обобщить весь материал на существенно новом уровне, для многих людей — по их собственным оценкам — реально открывающем глаза на происходящее.

Общее резюме к аналитической работе Гутмана имеет смысл привести дословно:

«Windows Vista включает в себя обширную переработку основных элементов ОС с целью обеспечения защиты для так называемого ‘высококачественного контента’, что обычно подразумевает видео высокой четкости с дисков Blu-Ray и HD-DVD. Обеспечение этой защиты влечет за собой весьма значительные затраты в том, что касается производительности системы, стабильности системы, повышенных расходов на техподдержку, а также общего увеличения стоимости аппаратного и программного обеспечения.

Эти проблемы затрагивают не только непосредственно пользователей Vista, но также и всю индустрию персональных компьютеров, поскольку эффекты от подобных защитных мер накрывают все железо и софт, которые так или иначе вступают в контакт с Vista (например, аппаратное обеспечение компьютеров Macintosh или Linux-серверов). Данный документ анализирует те издержки, которые несет защита контента в Vista, а также побочный ущерб, наносимый из-за этого компьютерной индустрии».

Еще более выразительно сформулировано предельно краткое «резюме к резюме»:

Спецификации защиты контента в Vista очень хорошо подходят под определение «самой длинной в истории предсмертной записки самоубийцы».

Причина же этому, как доказывает исследование Гутмана, заключается в том, что защитные инициативы Microsoft по сути своей противоречат естественным законам физики и в принципе не могут привести к успеху.

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

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

Кроме того, если хоть один элемент (видеокарта, дисплей и т.д.) в цепочке обработки не подходит по уровню обеспечиваемой защиты, то качество раскодированного сигнала принудительно понижается, дабы на выходе появлялся не высококачественный контент, а в лучшем случае похожий на DVD (в целом же тут возможны различные варианты — от еще менее четкого ТВ-сигнала до полного блокирования итоговой картинки и выдачи сухого извинения с уведомлением о несоответствии аппаратуры).

Ко всем этим малоприятным вещам потребителей начали осторожно готовить заранее. Однако нельзя не отметить, что новый аналитический документ новозеландского эксперта содержит ряд существенных и довольно любопытных нюансов, которые прежде в широкой компьютерной прессе не обсуждались. В частности, один из немаловажных моментов в защите контента в ОС Vista сводится к генерации так называемых сигнальных «битов отклонения» (tilt bits).

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

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

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

Бесспорно обладающий чувством юмора, Питер Гутман никак не смог пройти и мимо такого рода перлов, украшающих текст официальных документов Microsoft:

«Рекомендуется, чтобы изготовители графических устройств шли дальше строгой буквы этих спецификаций и обеспечивали дополнительные средства защиты контента, потому что этим они продемонстрируют твердость своих намерений в деле защиты высококачественного контента»…

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

[Конец ВРЕЗКИ]

Виноват быстрый поиск?

Сильно затянувшаяся история с исправлением очевидного дефекта в «о-о-о-ч-чень медленном копировании» порождает естественные подозрения в том, что оглушительная тишина со стороны Microsoft по данному поводу означает, скорее всего, трудности принципиального характера.

То есть похоже на то, что ремонт одного недостатка сломает нечто другое. И этим другим, о чем MS так не хочется говорить публично и с деталями, наиболее вероятно, являются многочисленные функции DRM (управления цифровыми правами), встроенные в Vista для контроля за всеми процессами копирования и переноса файлов.

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

А признаков таких довольно много. Вот, к примеру, как выглядит список регулярных «тормозов Висты» по наблюдениям одного из сетевых администраторов, принимавших участие в обсуждениях на страницах веб-форума Microsoft. Перечисленные проблемы возникают регулярно на Vista-компьютерах – нельзя сказать, что всегда, но, по грубым оценкам, в 50-75% случаев.

«Тормозами» здесь считаются такие задержки в работе, которые по сравнению с XP Pro возросли от как минимум двукратного замедления до нескольких минут на выполнение совершенно обычных штатных операций. Итак:

·    требуется долгое время на открытие локальной или сетевой папки и выдачу ее содержимого;
·    долгое время уходит на то, чтобы копировать файлы между локальными или сетевыми папками;
·    долгое время затрачивается на то, чтобы по клику правой кнопки мыши выдать меню доступных опций для файлов и папок;
·    создание или разворачивание пиктограммы папки вызывает серию мерцаний экрана и временное подвисание Проводника;
·    ни одна из этих проблем не появляется, если для операций с файлами использовать не Проводник, а командную строку.

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

Справедливости ради надо отметить, что отнюдь не все из упомянутых проблем напрямую связаны с DRM-контролем за файлами.

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

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

Вот как выглядит один из вариантов – через командную строку – отключения сервиса Windows Search. Нажать комбинацию клавиш Win+R, набрать «cmd», кликнуть ОК. В появившемся окне командной строки набрать «services.msc» и нажать Enter. В экране управления аккаунтом пользователя, UAC, кликнуть «продолжить» для открытия окна консоли управления службами. В списке сервисов опуститься до Windows Search, там правой кнопкой мыши вызвать меню и выбрать «свойства», где нажать кнопку «стоп», а для типа запуска выбрать «отключено» и нажать ОК. После чего остается лишь закрыть все открытые окна. Перезагрузка системы не требуется.

По свидетельству многих пользователей Vista, подобная цепь манипуляций очень заметно ускоряет работу системы и разгружает процессор. Однако, как показала практика, отключение одного лишь сервиса Windows Search помогает не всем и далеко не всегда.

Виновато дросселирование?

В августе 2007 появилась кое-какая новая информация относительно того, что еще может тормозить передачу файлов в «Висте». Один из системных гуру Windows, Марк Руссинович (многие годы независимый эксперт, а с конца 2006 штатный сотрудник Microsoft), в своем блоге подтвердил, что простым воспроизведением медиа-файлов пользователи могут очень ощутимо снижать пропускную способность сети.

Падение производительности происходит из-за новой, встроенной в ядро Vista подсистемы контроля под названием MMCSS. Что расшифровывается как Multimedia Class Scheduler Service или «Служба планировщика заданий класса мультимедия». Назначение этого сервиса – автоматически обеспечивать приоритетное выделение ресурсов для гладкого воспроизведения аудио и видеофайлов, дабы не допускать перескоков, помех-искажений и прочих неприятных сбоев. К сожалению, как объясняют теперь разработчики, итогом этой инициативы стало средство для решения несуществующей проблемы, которое одновременно породило ощутимые затруднения для работы машин в сети.

Согласно многочисленным свидетельствам, даже воспроизведение совершенно несущественных аудиофайлов – скажем, характерных звуков, сопровождающих выдачу сообщений ОС об ошибках – иногда может снижать пропускную способность локальной сети примерно вдвое. Похожее замедление в передаче файлов могут вызывать и фоновое воспроизведение музыки с помощью плейеров iTunes или Real Player, и какая-нибудь простенькая игра со звуковым сопровождением.

Следует особо подчеркнуть, что в объяснении Руссиновича затронута только тема пропускной способности сети и не упоминается проблема с «долгим прощанием Висты», т.е. жутко тормозным уничтожением и переносом-копированием файлов внутри компьютера. Однако, его комментарии дают общее представление о том, как появляются подобные дефекты. (Некоторые полагают, что это объяснение «развенчивает конспирологическую теорию» о чересчур избыточных DRM-проверках файлов в Висте, однако фактов для подобного вывода явно маловато.)

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

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

Это означает, например, что если в компьютере имеются Ethernet и адаптер беспроводной сети, то MMCSS ограничивает сеть числом не более 8000 пакетов в секунду. Если есть также адаптер Bluetooth, то пропускная способность падает до 6000 пакетов, а если имеется еще и FireWire, то, соответственно, канал становится еще уже.

Для наглядной демонстрации этого эффекта Руссинович на собственной машине показал, как примерно 20-процентная пропускная способность в его локальной 1Гб-сети упала до 6% всего лишь из-за того, что параллельно он решил развлечься воспроизведением музыки через Windows Media Player. Причем дросселирование MMCSS работает столь настырно, что эффекты его ощущаются не только в быстрых, но и в «медленных» 100-Мбитных сетях.

При этом, по свидетельству Руссиновича, дросселирование в Vista на самом деле не требуется даже для широкополосных сетевых соединений. Потому что реально скорость доставки пакетов замедляется сама собой, из-за специфики работы протоколов TCP/IP, которые ради надежности передачи постоянно прерывают поток подтверждениями получения.

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

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

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

Чем именно завершились эти переговоры, точно неизвестно, но зато один из читателей блога Руссиновича предложил собственный – весьма эффективный, по его оценкам – вариант обхода. В реестре системы надо модифицировать ключ «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv\Dep», удалив оттуда параметр MMCSS, а через консоль управления службами отключить сервис MMCSS.

Эти манипуляции после перезагрузки машины позволили ощутимо повысить скорость копирования файлов, невзирая на одновременное воспроизведение музыки.

[ВРЕЗКА]

Все очень непросто

Очевидные трудности, которые испытывает Microsoft с повышением производительности Vista, – это своеобразное отражение сложнейших конфликтов и взаимосвязей, возникающих при реализации любого гигантского проекта. Где разные группы участников совместно вроде бы решают общую задачу, однако в действительности могут иметь прямо противоположные в своей сути намерения.

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

Но зато есть полностью достоверный пример из несколько иной области, затрагивающей криптографию в Vista. Как известно, подразделение разработчиков Microsoft, занимавшееся защитой информации в новой ОС, доверили возглавить авторитетному в мире компьютерной безопасности криптографу Нильсу Фергюсону. Который в очередной раз продемонстрировал свою высокую квалификацию летом прошлого года, когда на конференции Crypto-2007 вместе с одним из своих сотрудников, Дэном Шумовым, рассказал о выявленной ими серьезной слабости в стандартном криптогенераторе случайных чисел Dual_EC_DRBG.

Этот алгоритм разработан американским Агентством национальной безопасности и недавно рекомендован НИСТ (Национальным институтом стандартов) США для повсеместного использования в программах шифрования при генерации ключей и векторов инициализации.

Фергюсон и Шумов, в свою очередь, обнаружили в этом алгоритме (который и без того работает примерно в 1000 раз медленнее других трех генераторов из того же комплекта НИСТ) нехорошую особенность из разряда тех, что принято именовать backdoor или «черный ход». Такого рода хитрости в криптоалгоритмах позволяют стороне, знающей суть секрета, восстанавливать ключи и быстро вскрывать шифры.

Понятно, что любой разработчик, озабоченный безопасностью своего продукта, будет всячески избегать использования генераторов случайных чисел с уже выявленной закладкой. Однако в спецификациях сервис-пака SP1 для Vista, опубликованных в декабре 2007, сообщается, что он, среди прочего, добавляет в криптооснащение ОС новый алгоритм-генератор Dual_EC_DRBG…

Что чувствует при таком повороте событий Нильс Фергюсон, пока неизвестно.

[Конец ВРЕЗКИ]

Имитация прогресса

В январе этого года Билл Гейтс по сложившейся традиции выступал с большим докладом на крупнейшей мировой выставке бытовой электроники, CES-2008 в Лас-Вегасе.

Главным отличием нынешнего выступления от всех предыдущих стало, видимо, то, что его можно рассматривать в качестве прощального – к лету Гейтс намерен полностью уйти с официальных постов в Microsoft и целиком переключиться на деятельность благотворительного фонда имени себя и жены Мелинды.

Если же анализировать доклад Гейтса в аспектах, касающихся ОС Vista, то здесь он – наверняка невольно – раскрыл тайну компании о весьма неважной ситуации с продажами нового продукта.

Оценивая формально, подана эта информация была как большой и очевидный успех – за прошедший год удалось продать порядка 100 миллионов копий Vista, что заметно лучше продаж XP, для которой аналогичные цифры первого года на рынке сложились в 89 миллионов копий. Но если проанализировать эти показатели в общем контексте, то получится совершенно иная картина.

По данным статистики, которая знает все, в 2002 – т.е. в «год XP» – в мире было продано 132,4 миллиона компьютеров. Это означает, что на Windows XP тогда пришлось порядка 67% или добрые две трети всех новых машин. В 2007 же году было продано 255,7 миллионов ПК, из которых на Windows Vista приходится лишь 39% или существенно меньше половины.

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

Люди, в большинстве своем не особо разбирающиеся в тонкостях технологии, обычно покупают то, что есть в магазинах. И если в розничной торговле покупки Vista на новых машинах превосходят числом XP примерно в соотношении 7:1, то это лишь означает, что систему XP принудительно изымают из продаж ради нового продукта.

Но если оценивать особенности Vista по существу, то кроме более красивых картинок на экране все остальные новшества можно отнести к имитации прогресса. Или же к явным минусам.