440 likes | 638 Views
Ключевые изменения в ядре Windows Vista SP1. Александр Шаповал Эксперт по информационной инфраструктуре Microsoft. Предисловие . Это не повторение презентации по ядру Windows Server 2008! Фокус на возможностях, характерных для клиентской ОС Рассматриваются базовые компоненты ядра
E N D
Ключевые изменения в ядре Windows Vista SP1 Александр Шаповал Эксперт по информационной инфраструктуре Microsoft
Предисловие • Это не повторение презентации по ядру Windows Server 2008! • Фокус на возможностях, характерных для клиентской ОС • Рассматриваются базовые компоненты ядра • Не затрагиваются вопросы, связанные с • Сетевыми интерфейсами • Графикой • Установкой • Управлением
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Multimedia Class Scheduler Service • Новый сервис, который повышает приоритет потока мультимедиа-приложения для бесперебойного воспроизведения аудио и видео • Реализован в Mmcss.dll (запускается в Svchost.exe) • Используется Windows Media Player 11 • Потоки декларируют себя как мультимедийные, указывая • Тип активности • Относительную важность • 80% интервала таймера потоки выполняются c приоритетом уровня real-time • По истечении этого времени приоритет понижается до уровня Low • Процент задается в реестре • Получение сетевых пакетов устанавливается до значения 10 пакетов/мс Мультимедиа-поток Другие потоки Мультимедиа-поток Другие потоки
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Символические ссылки • Ранее, NTFS поддерживала символические ссылки для каталогов (directory junctions) • Windows Vista поддерживает файловые символические ссылки • Аналог soft links в UNIX (ln –s) • Используют NTFS reparse points • Создаются с помощью нового API CreateSymbolicLink или команды Mklink.exe • Требуется привилегия “Create Symbolic Link” (по умолчанию есть только у группы Administrators) • Mklink.exe также умеет создавать жесткие ссылки • Символические ссылки обрабатываются на клиенте, и могут охватывать тома и даже машины
Отмена ввода-вывода • Ранее, операцию открытия нельзя было отменить • Пример: в окне “File Save” выбираете общую папку в состоянии offline, окно «зависает» до истечения тайм-аута • В Windows Vista операции синхронного ввода-вывода могут быть отменены • CancelSynchronousIoотменяетнезавершенныйсинхронныйввод-вывод, запущенный другим потоком • CancelIoExразрешает отменувсех иликонкретныхопераций ввода-выводалюбых потоков (CancelIoможет отменитьтолько те операции ввода-вывода, которые запущены вызывающим потоком) • Windows Vista может применять отмену для диалогов Open/Save • Потоки, обрабатывающие ввод-вывод, могут получать оповещения об отмене
Приоритезация ввода-вывода • Фоновые процессы (дефрагментация, индексирование) могут создавать помехи в работе активного приложения (например, почтового клиента) • Ранее, использовались только приоритеты ЦПУ потоков • Windows Vista предлагает два варианта приоритезации ввода-вывода • Приоритет ввода-вывода • Резервирование полосы пропускания ввода-вывода • Две стратегии: иерархическая и на основе простоя • Иерархическая реализуется драйверами хранилищ ATAPI и USB (не поддерживается для SCSI) • На основе простоя реализуется драйвером класса для всех хранилищ
Приоритеты ввода-вывода • Приоритет ввода-вывода базируется на приоритете соответствующего потока, явно заданном приоритете ввода-вывода, приоритете файлового объекта • Пять уровней: Critical, High, Normal, Low, Very Low • Critical, High, Normal применяются драйвером класса • Хранятся в поле Flags пакета запроса ввода-вывода (I/O Request Packet) • Как минимум один ввод-вывод уровня Low или Very Low обрабатывается каждую секунду • Реализуется драйвером класса • Процессы и потоки могут понижать свои приоритеты ввода-вывода в фоновом режиме (Background Mode) • Используется в течение первых 60 секунд для автоматически запускаемых при логине приложений • Используется фоновыми задачами Windows Vista, например, индексацией, Windows Defender
Уровни приоритетов ввода-вывода • Critical: диспетчер памяти • High: не используется • Normal: стандартные приложения • Low: prefetching приложений • Very Low: фоновые задачи Очередь ввода-вывода Critical High Normal Low Very Low MM WMP Word Prefetch Defrag Indexer Antivirus Иерархия Простой
Резервирование полосы • Потоковые приложения (например, Media Player) могут запрашивать гарантированную полосу пропусканиядля операций ввода-вывода • Резервирование задается для конкретных файлов • Подсистема ввода-вывода возвращает приложению • Оптимальный размер ввода-вывода • Частоту операций ввода-вывода Стандартный ввод-вывод WMP WMP WMP WMP Резервированныйввод-вывод
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Файловый кэш (Standby List) Удаление страниц Единый список • Ранее, файловый кэш был построен по принципу очереди • Кэшируются последние запрошенные страницы • Однако, последние дисковые активности необязательно представляют наиболее часто используемые страницы • Например, дефрагментация, антивирусное сканирование могут привести к удалению из кэша полезной информации Добавление страниц
Приоритезациякэша Удаление страниц • В Windows Vista имеется8кэш-списков с приоритетами • Приоритет памяти потока (1-5) определяет соответствующий список • Страницы удаляются, прежде всего, из списка с наименьшим приоритетом • Приоритетные данные остаются в кэше Приоритизированный список Наименее важные Наиболее важные Добавление страниц
SuperFetch • Ранее, Windows XP повышала скорость загрузки системы и запуска приложения • В Windows Vista SuperFetchпроактивно загружает ОЗУ наиболее полезными данными • Учитывается частота использования страницы • Используется накопленная информация для более сложных сценариев • Сценарии SuperFetch включают в себя • Запуск приложений • Восстановление из режимов Hibernate и Sleep • Повышенная производительность после нерегулярных и низкоприоритетных задач
Реализация SuperFetch • SuperFetchвключает в себя компоненты режима ядра и пользовательского режима • Данные об использовании страниц собираются в режиме ядра • Служба SuperFetch (Sysmain.dll) реализует алгоритм выборки и хранение данных • Запрашивает у ядра собранную информацию и списки предварительно загруженных страниц • Хранит файлы сценариев в \Windows\Prefetch\Ag*.db • В отличие от Windows XP загружает виртуальную память • Использует низкоприоритетные операции ввода-вывода для загрузки в кэш • Использует приоритеты 6 и 7 для кэшированных данных
ReadyBoost • ОЗУ идеально подходит для кэширования, но дорого стоит и сложно модифицируется • Внешняя флэш-память дешевле и до 10 раз быстрее дисков при произвольном доступе (но медленнее дисков при последовательных операциях) • ReadyBoostиспользует флэш для создания write-through кэш-памяти между жестким диском и ОЗУ • Поддерживаемые устройства: USB-ключи, SD-карты, Compact Flash, внутренние карты PCI express • Должны соответствовать скоростным требованиям: • 2.5 MB/сек при произвольном чтении блоков 4 KB • 1.75 MB/сек при произвольной записи блоков 512 KB • Статистика устройства отображается в реестре HKLM\Software\Microsoft\Windows NT\CurrentVersion\EmdMgmt
ReadyBoost Диск ReadyBoost.sfcache PC Запись • ReadyBoostвключает в себя службу и фильтр тома в виде драйвера Ecache.sys • При произвольном чтении используется кэш • При последовательном чтении используется жесткий диск • Кэш представляет собой файлReadyBoost.sfcache • Может быть только один, максимум 4 ГБ • Используется компрессия (с коэффициентом 2х) • Файл шифруется сеансовым ключом Произвольное чтение Последовательное чтение
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Boot Configuration Database (BCD) • Ранее, механизм загрузки определялся платформой (BIOS, EFI) • Windows Vista унифицирует механизм загрузки • Boot.ini заменен загрузочной конфигурационной базой (Boot Configuration Database, BCD) • Абстрагирование от firmware • Унифицированный механизм для различных инсталляций • Поддержка Unicode • BCD хранится реестре • Куст хранится в \Boot\BCD на системном томе • Загружается в HKLM\BCD00000000 • Защищается соответствующим ключом
Компоненты загрузки • Windows boot manager • \Bootmgr (без расширения) • Запускается кодом загрузочного сектора • Заменяет часть NTLDR (чтение Boot.ini) • Запускает другие предзагрузочные приложения • SP1: Поддерживает UEFI/EFI в том числе на x64 • OS loader • \Systemroot\System32\Winload.exe • Заменяет часть NTLDR (загрузкаимиджа ОС, boot-драйверовикуста реестра System) • Один на экземпляр ОС
Компоненты загрузки • Утилита диагностики памяти • \Boot\Memtest.exe • Могут быть добавлены компоненты 3-х фирм • Могут запускаться другие компоненты • Resume loader • \Systemroot\System32\Winresume.exe • Ранее эту задачу выполнялNtldr
Сеанс 0 СлужбаA Приложение B Приложение A Приложение C Служба B Служба C Изоляция нулевого сеанса • Ранее, сеанс 0 использовался для консоли пользователя • Имена консоли могли конфликтовать с именами сервисов и системных объектов • Службы, отображавшие окна в консоли, могли быть атакованы (“shatter”-атаки) Сеанс 1 Приложение A Приложение B Приложение C
Сеанс 0 Служба A Служба B Служба C Изоляция нулевого сеанса • В Windows Vista консоль запускается в сеансе 1 и не может взаимодействовать с нулевым сеансом • Устраняется возможный конфликт имен • Некорректно написанные службы не могут отображать интерфейс в консоли Сеанс 1 Сеанс 2 Приложение A Приложение D Приложение B Приложение E Приложение C Приложение F
Delayed Auto Start Services • Ранее, автоматически запускаемые службы могли существенно влиять на производительность при входе в систему • В Windows Vista службы могут запросить задержанный автозапуск (delayed autostart) • Задается новым APIChangeServiceConfig2 • Значение нового параметра DelayedAutoStart хранится в реестре • Диспетчер служб (Service Control Manager) запускает такие службы после всех служб с признаком Autostart • Во время запуска для ввода-вывода устанавливается приоритет Very Low • Таким образом сконфигурированы службы BITS, Windows Update и др.
Переход в режим сна • Ранее, приложение или драйвер могли блокировать режим Sleep или Hibernate • Часто причиной становилась ошибка или агрессивная политика управления питанием • В результате была возможна потеря данных • Windows Vista не опрашивает процессы при переходе в режим сна • Тайм-аут оповещения пользовательского режима сокращен с 2минут до 20 секунд • Драйверы не могут заблокировать переключение в Sleep
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Volume Shadow Copy • Ранее • Не было возможности отменить изменения в файле или его удаление • System Restore фиксировала изменения только в системных файлах • Windows Vista использует теневые копии для восстановления системы и предыдущих версий • Теневые копии создаются при записи данных на том • В Windows XP этот механизм использовался для решения проблемы резервного копирования открытых файлов • Закладка «Предыдущие версии» появилась в Windows Server 2003 для общих папок • Унифицированный механизм защиты данных пользователя/системы
Содержание • Процессы и потоки • Файловая система и ввод-вывод • Управление памятью • Запуск и завершение работы • Надежность и восстановление • Безопасность
Технология BitLocker • Ранее, физический доступ к системе чаще всего обеспечивал доступ к информации • Утилиты третьих фирм могут получить доступ к любым незашифрованным данным • Параметры аутентификации кэшируются в реестре • В Windows Vista BitLockerобеспечивает шифрование всего тома с ОС • SP1 добавляет возможность шифрование томов данных • Требования технологии BitLocker • Trusted Platform Module (TPM) v1.2 или USB-устройствои поддержка USB на уровне BIOS • Системный раздел объемом не менее 1.5 ГБ
Загрузка и BitLocker • Несколько методов хранения ключа Volume Master Key • TPM с сигнатурами загрузочных файлов • Плюс PIN-код, вводимый пользователем • Плюс ключ на USB-носителе • Внешнее USB-устройство • Последовательно проверяется целостность загрузочных компонент • С помощью Volume Master Key расшифровывается Full Volume Encryption Key (FVEK) TPM BIOS MBR Boot Sector Boot Manager
Full Volume Encryption Filter Приложение • Фильтр Fvevol.sys перехватывает запросы к тому и осуществляет прозрачное шифрование/ расшифровывание данных • Использует FVEK, расшифрованный с помощью VMK при старте системы • Потери производительности не более 10% Режим пользователя Режим ядра Драйвер файловой системы Fvevol.sys Диспетчер тома
Проверка целостности кода • Загрузчик ОС и ядро проверяют сигнатуры кода • Платформа x64 • В режиме ядра возможна загрузка только подписанного кода • Осуществляется проверка всех двоичных файлов режима ядра • Нарушения фиксируются системой аудита • Платформа х86 • Осуществляется проверка всех двоичных файлов режима ядра, однако неподписанные модули могут быть загружены • Для воспроизведения форматов Hi-Definition могут быть загружены только подписанные драйверы • Загрузка драйверов протоколируется в Event Log
User Account Control (UAC) • Цель • Пользователь должен работать в системе со стандартным набором прав • Проблема • Очень часто пользователи работают под административной учетной записью • Некоторые приложения запускаются только под административной учетной записью • Решение • Разрешить определенные операции для неадминистративных учетных записей, например, изменение часового пояса • Создать для приложений виртуальное представление каталогов файловой системы и разделов реестра • Реализовать удобное переключение к административным полномочиям
Виртуализация в UAC • Имидж виртуализуется, если обратное не указано в его манифесте • Виртуализация осуществляется в режиме ядра • Файловая система: фильтром-драйвером luafv.sys • Реестр: встроенными средствами • Перенаправляемые каталоги файловой системы: • \Program Files, \Windows, \Windows\System32 • Исключения • Защищенные от записи системные .EXE и DLL • Файлы с исполняемыми расширениями (.exe, .bat, .vbs, .scr и пр.) • Перенаправляемые разделы реестра • HKLM\Software • Исключения • Некоторые ключи подраздела Microsoft
Виртуализация в UAC • Запись: перенаправляется в специальную зону конкретного пользователя • \Users\<Username>\AppData\Local\Virtual Store • HKCU\Software\Classes\VirtualStore • Чтение: сначала используется зона пользователя, затем глобальное расположение
Повышение полномочий • Исполняемый файл может быть помечен признаком повышения полномочий следующими способами: • В файле манифеста • В системной базе совместимости приложений • Эвристически инсталлятором • Явным запросом пользователя
Итоги • Windows Vista содержит массу принципиальных усовершенствований, направленных на повышение производительности, надежности и безопасности системы
Ресурсы • http://www.techdays.ru • http://platforma2009.ru • http://www.microsoft.com/rus/technet • http://www.sysinternals.com
Вопросы • http://blogs.technet.com/ashapo