Как выглядит загрузка windows 10

Мы продолжаем разбираться как работает ПК на примере клавиатуры и Windows 10. В этой статье поговорим о том как происходит единение софта и железа.

Старт системы

Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.

Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.

Плата ноутбука с кнопкой включения и светодиодом состояния

Cистемный контроллер обладает огромными полномочиями – включать и выключать компьютер, исполнять код в режиме ядра. Помимо него могут быть и другие чипы со сравнимыми возможностями, такие как Intel Management Engine или AMD Secure Technology (часть CPU), которые так же работают когда компьютер «выключен». Чип с Intel ME имеет в себе x86 CPU с операционной системой MINIX 3. Что он может делать:

  1. Включать и выключать компьютер, т.е. выполнять программы имея доступ ко всей вычислительной мощности, периферии машины и сети.
  2. Обходить ограничения файервола.
  3. Видеть все данные в CPU и RAM, что даёт доступ к запароленным файлам.
  4. Красть ключи шифрования и получать доступ к паролям
  5. Логировать нажатия клавиш и движения мыши
  6. Видеть что отображается на экране
  7. Вредоносный код в Intel ME не может быть детектирован антивирусом, потому как на такой низкий уровень он добраться не может
  8. И конечно же скрытно отправлять данные по сети используя свой стек для работы с сетью.

Это вызывает серьёзные вопросы безопасности, потому как он может быть хакнут или использовать в шпионских целях.

Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (Nvidia 2070 S) на офисный ПК, то просто вставить её недостаточно, потому как она требует питание в 600W, в то время как такой ПК имеет блок на ~500W. Первое что придёт в голову – купить новый блок питания на 650W с отдельной линией для видеокарты. Но и здесь будут разочарования, потому как разъёмы материнки будут не совпадать с разъёмами БП, а если его отдельно воткнуть в розетку и подключить к видюхе тоже ничего не будет – в блоке питания вентилятор не крутится и изображения нет. Так происходит, потому что БП должен получить сигнал от материнки на полное включение. Очевидное решение – новая материнка с совместимыми разъёмами, однако она стоит ~$300. Есть решение проще, хоть оно и вызывает опасения пожаробезопасности. Берём скрепку, разгибаем и вставляем в зелёный (PS_ON) и один из чёрных пинов (COM). Теперь всё должно работать.

Поиск загрузчика ОС

Есть два вида прошивки материнки – BIOS (Basic Input Output System) на старых машинах и UEFI (Unified Extensible Firmware Interface) на новых. Windows 10 поддерживает обе и абстрагирует различия между ними. UEFI правильней называть ОС чем прошивкой, потому как он предлагает больше возможностей, к примеру богатый графический интерфейс вместо текстового, наличие мышки, больший объём доступной памяти, улучшенная модель безопасности и валидации файлов ОС, взаимодействие с железом через API, вместо прерываний как в BIOS.

Пример экрана монитора BIOS.

Программа BIOS хранится на отдельном чипе, подключенном к Южному мосту. Этот чип можно достать и перепрошить новой программой, по факту это просто носитель памяти, а не самостоятельный микрокомпьютер.

Настройки BIOS (системное время, например), хранятся на другом чипе который как правило находится возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК. Называется он CMOS, что означает Complementary Metal Oxide Semiconductor, а по-русски просто — КМОП, что есть комплементарная структура металл-оксид-полупроводник.

Первым делом программа BIOS выполняет проверку подсистем, эта процедура называется POST – Power On Self Test. Тест может быть сокращённый либо полный, это задаётся в настройках BIOS. Процитирую Википедию, что в себя включают эти тесты:
Сокращённый тест включает:

  1. Проверку целостности программ BIOS в ПЗУ, используя контрольную сумму.
  2. Обнаружение и инициализацию основных контроллеров, системных шин и подключённых устройств (графического адаптера, контроллеров дисководов и т. п.), а также выполнение программ, входящих в BIOS устройств и обеспечивающих их самоинициализацию.
  3. Определение размера оперативной памяти и тестирования первого сегмента (64 килобайт).

Полный регламент работы POST:

  1. Проверка всех регистров процессора;
  2. Проверка контрольной суммы ПЗУ;
  3. Проверка системного таймера и порта звуковой сигнализации (для IBM PC — ИМС i8253 или аналог);
  4. Тест контроллера прямого доступа к памяти;
  5. Тест регенератора оперативной памяти;
  6. Тест нижней области ОЗУ для проецирования резидентных программ в BIOS;
  7. Загрузка резидентных программ;
  8. Тест стандартного графического адаптера (VGA или PCI-E);
  9. Тест оперативной памяти;
  10. Тест основных устройств ввода (НЕ манипуляторов);
  11. Тест CMOS
  12. Тест основных портов LPT/COM;
  13. Тест накопителей на гибких магнитных дисках (НГМД);
  14. Тест накопителей на жёстких магнитных дисках (НЖМД);
  15. Самодиагностика функциональных подсистем BIOS;
  16. Передача управления загрузчику.

По результатам этого теста может быть обнаружена неисправность, к примеру нерабочая видеокарта или клавиатура. Поскольку экран монитора может не работать результаты тестов сообщаются в виде последовательности звуковых сигналов разной высоты. Что конкретно они значат надо смотреть в документации к материнской плате. Старые компьютеры часто бибикали во время старта — это программа BIOS сообщала о результатах тестов. Иногда может дополнительно использоваться индикатор, показывающий номер ошибки.

Если всё прошло успешно, BIOS начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых сектор, обычно он 512 байт, однако современный стандарт – 4096 байт. Установщик Windows в самый первый сектор на диске записывает специальный программный код и данные о разделах. Этот сектор называется Master Boot Record. Диск разбивается на разделы (partitions), отформатированный своей файловой системой. Максимум 4 раздела, каждый из который может быть расширенным (extended partition), такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено. Как только BIOS находит Master Boot Record он считывает оттуда код и передаёт ему управление. Этот код поочередно просматривает данные о разделах и находит тот который помечен как активный, в нём находится код загрузчика Windows (Это не раздел с C:\Windows\System32!), этот раздел называется system partition. Как правило он занимает 100Мб и скрыт от пользователя. В первом секторе этого раздела хранится загрузочный код, которому передаётся управление. Это volume boot sector, код в нём ищет файл Bootmgr, с которого и начинается процесс загрузки Windows. Файл Bootmgr создан через соединение в один файлов Startup.com и Bootmgr.exe.

Процессор начинает свою работу в режиме который называется «Реальный». Это режим совместимости, в нём CPU работает так же как и старые 16-bit процессоры, не имевшие поддержки виртуальной памяти и работавшие напрямую с физической памятью через 20-bit шину адресов, позволявшую адресовать 1Мб памяти. Простые MS-DOS программы выполнялись в этом режиме и имели расширение .COM. Первое что делает Startup.com (Bootmgr) – переключает процессор в режим «Защищённый», где под защитой понимается защита процессов друг от друга. В этом режиме поддерживается виртуальная память и 32х битные адреса, которыми можно адресовать 4Гб оперативной памяти. Следующим этапом Bootmgr заполняет таблицу виртуальных адресов на первые 16Мб RAM и включает трансляцию с виртуальных адресов в физические. В этом режиме и работает Windows. Поскольку на этом этапе подсистемы ОС ещё не созданы, Bootmgr имеет свою простую и неполную реализацию файловой системы NTFS, благодаря которой он находит BCD файл (Boot Configuration Data), в котором хранятся настройки параметров загрузки ОС. Вы можете редактировать его через утилиту BcdEdit.exe. В этих настройках BCD может быть указано, что Windows была в состоянии гибернации, и тогда Bootmgr запустит программу WinResume.exe, которая считывает состояние из файла Hyberfil.sys в память и перезапускает драйвера. Если BCD говорит, что есть несколько ОС, то Bootmgr выведет на экран их список и попросит пользователя выбрать. Если ОС одна, то Bootmgr запускает WinLoad.exe, этот процесс и выполняет основную работу по инициализации Windows:

  1. Выбирает соотвествующую версию ядра Windows. Можете думать о нём как о Windows10.exe, хотя на самом деле он называется NtOsKrnl.exe. Какие есть версии? Согласно википедии:
    • ntoskrnl.exe — однопроцессорное ядро Windows. без поддержки режима PAE
    • ntkrnlmp.exe (англ. NT Kernel, Multi-Processor version) — многопроцессорное ядро Windows. без поддержки режима PAE
    • ntkrnlpa.exe — однопроцессорное ядро Windows с поддержкой режима PAE.
    • ntkrpamp.exe — многопроцессорное ядро Windows с поддержкой режима PAE.

  2. Загружает HAL.dll (Hardware Abstraction Layer), который абстрагирует особенности материнки и CPU.
  3. Загружает файл шрифтов vgaoem.fon
  4. Загружает файлы в которых содержится инфомрация о представлениях даты времени, форматов чисел и пр. Эта функциональность называется National Language System.
  5. Загружает в память реестр SYSTEM, в нём содержится информация о драйверах которые надо загрузить. Информация о всех драйверах находится в HKLM\SYSTEM\CurrentControlSet\Services\. Драйвера которые надо загрузить имеют ключ start = SERVICE_BOOT_START (0). Об устройстве реестра мы поговорим в другой статье.
  6. Загружает драйвер файловой системы для раздела на котором располагаются файлы драйверов.
  7. Загружает драйвера в память, но пока не инициализирует их из-за круговых зависимостей.
  8. Подготавливает регистры CPU для выполнения ядра Windows выбранного на первом шаге – NtOsKrnl.exe.

Во время загрузки драйверов WinLoad проверяет их цифровые подписи и если они не совпадают, то будет синий (BSOD) или зелёный (GSOD, для insider preview сборок) «экран смерти».

Запуск на UEFI

Пример экрана загрузки UEFI

BIOS существует больше 30 лет и в попытках исправить его недостатки компания Intel в 1998 году создала стандарт Intel Boot Initiative, позже переименованный в EFI и в 2005 году пожертвованный организации EFI Forum. Недостатки BIOS:
• Работает только в 16-битном режиме
• Может адресовать только 1Mb оперативной памяти
• Часто имеет проблемы совместимости
• MBR ограничен только четырьмя главными разделами диска
• Диск с ОС не может быть больше чем 2.2Tb.
• Имеет очень ограниченные возможности для валидации загрузчика ОС.
На смену BIOS пришёл UEFI, по сути это миниатюрная ОС которая может работать и в 32-bit и в 64-bit. Для совместимости есть опция Compatibility Support Module, которая включается в настройках и эмулирует работу BIOS.

В UEFI загрузка происходит в родной для процессора битности – 32 или 64, есть доступ ко всей памяти, поддерживается виртуальная память, включен Secure Boot и есть возможность запустить antimalware до начала загрузки ОС. Порядок загрузки ОС в UEFI:

  1. Инициализация и запуск Firmware, запуск чип-сета.
  2. POST тест, аналогично BIOS
  3. Загрузка EFI-драйверов и поиск диска подпадающего под требования EFI для загрузочного диска
  4. Поиск папки с именем EFI. Спецификация UEFI требует чтобы был раздел для EFI System Partition, отформатированный под файловую систему FAT, размером 100Мб – 1Гб или не более 1% от размера диска. Каждая установленная Windows имеет свою директорию на этом разделе – EFI\Microsoft.
  5. Читает из настроек UEFI сохранённых в NVRAM (энергонезависимая память) путь к файлу загрузчика.
  6. Находит и запускает EFI/Microsoft/Boot/BootMgrFw.efi.
  7. BootMgrFw.efi находит раздел реестра BCD, который хранится в отдельном файле с именем BCD. Из него он находит WinLoad.efi, который расположен в C:\Windows\System32\winload.efi.

Чтобы посмотреть содержимое раздела EFI System Partition откройте консоль с правами админа (WinKey+X => Windows PowerShell (Admin)) и выполните команды mountvol Z: /s, Z:, dir. CD — меняет директорию.
Главное отличие компонентов BootMgr и WinLoad для UEFI от своих копий для BIOS тем что они используют EFI API, вместо прерываний BIOS и форматы загрузочных разделов MBR BIOS и EFI System Partition сильно отличаются.

Инициализация ядра

Напоминаю, что мы рассматриваем загрузку ПК в контексте работы клавиатуры, поэтому не стоит заострять внимание на всех этапах. Надо понять где в этом процессе находится клавиатура, важные для понимания этапы выделены.
На предыдущем этапе был запущен компонент WinLoad.exe/WinLoad.efi, который запускает NtOsKrnl.exe указав ему параметры загрузки в глобальной переменной nt!KeLoaderBlock (память режима ядра доступна всем процессам), которые WinLoad собрал во время своей работы. Они включают:

  1. Пути к System (загрузчик Windows) и Boot (C:\Windows\System32) директориям.
  2. Указатель на таблицы виртуальной памяти которые создал WinLoad
  3. Дерево с описанием подключенного hardware, оно используется для создания HKLM\HARDWARE ветки реестра.
  4. Копия загруженного реестра HKLM\System
  5. Указатель на список загруженных (но не инициализированных) драйверов участвующих в старте Windows.
  6. Прочая информация необходимая для загрузки.

Инициализация ядра Windows происходит в два этапа. До этого происходит инициализация Hardware Abstraction Layer, который в числе всего прочего настраивает контроллеры прерывания для каждого CPU.
На этой же стадии загружаются в память строки с сообщениями для BSOD, потому как в момент падения они могут быть недоступны или повреждены.

  • Первая фаза инициализации ядра:
    1. Слой Executive инициализирует свои объекты состояний – глобальные объекты, списки, блокировки. Производится проверка Windows SKU (Stock Keeping Unit), примеры Windows 10 SKU — Home, Pro, Mobile, Enterprise, Education.
    2. Если включен Driver Verifier, то он инициализируется.
    3. Менеджер памяти создаёт структуры данных, необходимые для работы внутренних API для работы с памятью (memory services), резервирует память для внутреннего пользования ядром.
    4. Если подключен отладчик ядра (kernel debugger) ему отправляется уведомление загрузить символы для драйверов загружаемых во время старта системы.
    5. Инициализируется информация о версии билда Windows.
    6. Старт Object Manager – позволяет регистрировать именованные объекты к которым могут получать доступ по имени другие компоненты. Яркий пример – мьютекс по которому приложение позволяет запустить единственный экземпляр. Здесь же создаётся храниться handle table, по которой устанавливается соответствие к примеру между HWND и объектом описывающим окно.
    7. Старт Security Reference Monitor подготавливает всё необходимое для создания первого аккаунта.
    8. Process Manager подготавливает все списки и глобальные объекты для создания процессов и потоков. Создаются процесс Idle и System (в нём исполняется “Windows10.exe” он же NtOsKrnl.exe), они пока не исполняются, потому как прерывания выключены.
    9. Инициализация User-Mode Debugging Framework.
    10. Первая фаза инициализации Plug and Play Manager. PnP – это стандарт который реализовывается на уровне производителей периферии, материнских плат и ОС. Он позволяет получать расширенную информацию о подключенных устройствах и подключать их без перезагрузки ПК.

  • Вторая фаза инициализации ядра. Она содержит 51 шаг, поэтому я пропущу многие из них:
    1. По завершению первой фазы главный поток процесса System (NtOsKrnl.exe) уже начал исполнение. В нём производится вторая фаза инициализации. Поток получает самый высокий приоритет – 31.
    2. HAL настраивает таблицу прерываний и включает прерывания.
    3. Показывается Windows Startup Screen, которая по умолчанию представляет из себя чёрный экран с progress bar.
    4. Executive слой инициализирует инфраструктуру для таких объектов синхронизации как Semaphore, Mutex, Event, Timer.
    5. Объекты для User-Mode Debugger проинициализированы.
    6. Создана symbolic link \SystemRoot.
    7. NtDll.dll отображена в память. Она отображается во все процессы и содержит Windows APIs.
    8. Инициализирован драйвер файловой системы.
    9. Подсистема межпроцессного общения между компонентами Windows ALPC проинициализирована. Можете думать о ней как о named pipes или Windows Communication Foundation для межпроцессного общения.
    10. Начинается инициализация I/O Manager, который создаёт необходимые структуры данных для инициализации и хранения драйверов подключенной к компьютеру периферии. Этот процесс очень сложный.
      Здесь же инициализируются компоненты Windows Management Instrumentation и Event Tracing for Windows (на него полагается Windows Performance Analyzer). После этого шага все драйвера проинициализированы.
    11. Запускается процесс SMSS.exe (Session Manager Sub System). Он отвечает за создание режима пользователя, в котором будет создана визуальная часть Windows.

Запуск подсистем – SMSS, CSRSS, WinInit

SMSS.exe отличается от пользовательских процессов, это нативный процесс и это даёт ему дополнительные полномочия. SMSS.exe работает с ядром в обход Windows API, он использует то что называется Native API. Windows API – обёртка вокруг Native API. SMSS.exe первым делом запускает подсистему Windows (CSRSS.exe – Client Server Runtime Sub System) и заканчивает инициализацию реестра.

Процесс и потоки SMSS.exe помечены как критические, это значит что если они неожиданно завершаться, к примеру из-за ошибки, это приведёт к падению системы. Для общения с подсистемами, к примеру вызову API создающему новую сессию, SMSS создаёт ALPC-порт с именем SmApiPort. Загружаются из реестра переменные среды окружения, запускаются программы такие как Check Disk (autochk.exe, эти программы записаны в реестре HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute). SMSS.exe запускается для каждой пользовательской сессии. Глобальные переменные (очередь сообщений например) у каждой сессии своя за счёт механизма виртуальной памяти. В Windows есть контексты потока, процесса и сессии. Каждый SMSS.exe запускает свой экземпляр подсистемы, на данный момент это только CSRSS.exe (Windows), в прошлом поддерживались операционные системы OS/2 (os2ss.exe) и POSIX (psxss.exe), но эта идея была неудачной. Самый первый SMSS.exe засыпает в ожидании процесса WinInit.exe. Остальные экземпляры вместо этого создают процесс WinLogon который показывает UI для входа.

WinInit.exe инициализирует подсистемы для создания графической оболочки – Windows Station и десктопы, это не тот рабочий стол который вы видите, это иная концепция Windows. Далее он запускает процессы:

  1. Services.exe Services Control Manager (SCM) запускает сервисы и драйвера помеченные как AutoStart. Сервисы запускаются в процессах svchost.exe. Есть утилита tlist.exe, которая запущенная с параметром tlist.exe -s напечатает в консоли имена сервисов в каждом из svchost.exe.
  2. LSASS.exe – Local System Authority.
  3. LSM.exe – Local Session Manager.

WinLogon.exe – загружает провайдеры аутентификации (credential providers), которые могут быть password, Smartcard, PIN, Hello Face. Он порождает процесс LogonUI.exe который и показывает пользователю интерфейс для аутентификации, а после валидирует введённые данные (логин и пароль, PIN).

Если всё прошло успешно, то WinLogon запускает процесс указанный в ключе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit. По умолчанию это процесс UserInit.exe, который:

  1. Запускает скрипты указанные в реестрах:
    • HKCU\Software\Policies\Microsoft\Windows\System\Scripts
    • HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts
  2. Если групповая политика безопасности определяет User Profile Quota, запускает %SystemRoot%\System32\Proquota.exe
  3. Запускает оболочку Windows, по умолчанию это Explorer.exe. Этот параметр конфигурируется через реестр:
    • HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
    • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell

WinLogon уведомляет Network Provider о залогинившемся пользователе, на что тот восстанавливает и подключает системные диски и принтеры сохранённые в реестре. Network Provider представляет из себя файл mpr.dll из системной папки, который хостится в процессе svchost.exe, т.е. сервис Windows.

Дерево процессов выглядит следующим образом, на нём можно увидеть кто и кого создал (показаны не все процессы, может немного отличаться от последний версий Windows).

Где здесь клавиатура?

Во время запуска ядро Windows считывает из реестра информацию о контроллере системной шины, как правило это шина PCI (реже MSI), к ней подключены контроллеры портов ввода-вывода, в том числе и USB, PS/2. Информация о нём записывается во время установки Windows. Система загружает для него драйвер и рекурсивно обходит все порты так же загружая для каждого из них свой драйвер. Драйвера могут комбинироваться в узлы (driver node), к примеру драйвер клавиатуры, будет соединён с драйвером порта PS2. А вот порт USB сложнее — сначала драйвер порта, потом драйвер для работы с протоколом HID и только потом клавиатура.

Каждый порт контроллируется своим чипом, который мониторит подключение, принимает/отправляет сигналы между CPU и устройством. Если чип-сет Южный мост не встроен в CPU, как это часто делают в ноутбуках, а существует отдельным чипом на материнке, то правильней говорить: сигнал между Южным мостом и контроллером порта. Чип контроллирующий порт имеет выделенную линию с контроллером прерываний (PIC или APIC), по которой он может попросить обратить на себя внимание CPU, к примеру считать данные от клавиатуры (порт PS/2, с USB другая история). Поскольку ОС загрузила для порта драйвер, она может отдавать ему команды, читать и отправлять данные. В нашем примере был загружен драйвер из C:\Windows\System32\i8042prt.sys. Давайте вспомним предыдущую статью. В старых компьютерах с PIC на чипе Intel 8259 было 15 линий прерываний, где клавиатура была подключена к ножке IRQ1, таймер IRQ0, а мышка к IRQ12, который на самом деле был пятой ножкой второго чипа 8259, который мультиплексировал свои прерывания через ножку IRQ2 первого контроллера. В современных PIC могут быть 255 контактов для сигналов прерываний. Во время загрузки ОС программирует APIC/PIC возвращать определённое число когда скажем пришло прерывание от порта клавиатуры или USB и по этому номеру CPU находит в таблице векторов прерываний функцию которую надо выполнить. Номер прерываний определяют HAL и Plug’n’Play Manager. Контроллер прерываний ищет сигнал на своих ножках в определённом порядке, к примеру в бесконечном цикле проверяет напряжение на ножках от 1 до MAX_PIN. Этот порядок определяет приоритет, к примеру клавиатура будет замечена раньше мышки, а таймер раньше клавиатуры. Чтобы не зависеть от особенностей работы контроллеров прерываний Windows абстрагирует концепцию IRQ (Interrupt Request) в IRQL (Interrupt Request Level). Будь у контроллера прерываний хоть 15 хоть 255 линий они все будут отображены на 32 IRQL для x86 и 15 IRQL для x64 и IA64.

Что означают приоритеты IRQL:

  1. High – когда происходит краш системы, обычно это вызов функции KeBugCheckEx.
  2. Power Fail – не используется. Изначально был придуман для Windows NT.
  3. Interprocessor Interrupt – нужен отправить запрос другому CPU на мультипроцессорной системе выполнить действие, например обновить TLB cache, system shutdown, system crash (BSOD).
  4. Clock – нужен чтобы обновлять системные часы, а так же вести статистику сколько времени потоки проводят в режиме пользователя и ядра.
  5. Profile – используется для real-time clock (local APIC-timer) когда механизм kernel-profiling включен.
  6. Device 1 … Device N – прерывания от устройств I/O. Во время прерывания данные от клавиатуры, мыши и других устройств считываются в отдельные буфера и сохраняются в объектах типа DPC (Deferred Procedure Call), чтобы обработать их позже и дать возможность устройствам переслать данные. После приоритет снижается до Dispatch DPC
  7. Dispatch DPC — как только данные от устройств получены можно начинать их обрабатывать.
  8. APC — Asynchronous Procedure Call. Через этот механизм вы можете исполнить код когда поток будет спать вызвав WaitForSingleObject, Sleep и другие.
  9. Passive/Low — здесь исполняются все приложения в User Mode.

Если вы всегда программировали в режиме пользователя, то никогда не слышали про IRQL, потому что все пользовательские программы выполняеются с приоритетом Passive/Low (0). Как только происходит событие с большим уровнем приоритета (событие от клавиатуры, таймер планировщика потоков), процессор сохраняет состояние прерванного потока, которое представляет из себя значения регистров CPU, и вызывает диспетчер прерываний (interrupt dispatcher, просто функция), который повышает приоритет IRQL через API KeRaiseIrql в HAL и вызывает непосредственно сам код обработчика (interrupt’s service routine). После этого IRQL CPU понижается до прежнего уровня через функцию KeLowerIrql и прерванный поток начинает обработку с того же места где его прервали. На этом механизме основан планировщик потоков. Он устанавливает таймер, который с определённым интервалом (квант времени) генерирует прерывание с приоритетом DPC/Dispatch (2) и в своей interrupt’s service routine по определённому алгоритму назначает новый поток на исполнение.

Механизм IRQL реализовывается на уровне софта в Hardware Abstraction Layer (HAL.dll), а не железа. В Windows системах есть драйвер шины (bus driver), который определяет наличие устройств подключенных к шинам – PCI, USB и др. и номера прерываний которые могут быть назначены каждому устройству. Драйвер шины сообщает эту информацию Plug and play manager, который уже решает какие номера прерываний назначить каждому устройству. Далее арбитр прерываний внутри PnP Mgr (PnP interrupt arbiter) устанавливает связи между IRQ и IRQL.

Когда приходит прерывание от клавиатуры, любой исполняемый в данный момент поток (это может быть ваша программа) назначается на его обработку. Interrupt dispatcher повышает приоритет IRQL CPU до одного из уровней Device1-DeviceN. После этого менеджер виртуальной памяти не сможет найти страницу если она не загружена в RAM (не сможет обработать Page Fault), планировщик потоков не сможет прервать выполнение, потому что они все работают с меньшим уровнем IRQL. Главная задача драйвера клавиатуры в этот момент считать полученные данные и сохранить их для дальнейшей обработки. Данные записываются в объект типа _DPC (Deferred Procedure Call), который сохраняется в список DPC потока (что-то вроде std::list<DPC>, в ядре ОС вместо массивов используются связанные списки). Как только прерывания от всех внешних устройств обработаны, IRQL потока понижается до уровня DPC в котором и производится обработка отложенных процедур (DPC). В коде обработчика DPC для клавиатуры вызывается функция из драйвера клавиатуры Kbdclass.sys:

VOID KeyboardClassServiceCallback(
  _In_    PDEVICE_OBJECT       DeviceObject,
  _In_    PKEYBOARD_INPUT_DATA InputDataStart,
  _In_    PKEYBOARD_INPUT_DATA InputDataEnd,
  _Inout_ PULONG               InputDataConsumed
);

Так вот, драйвер клавиатуры (kbdclass.sys) получает данные от порта (USB, PS2) через прерывание и записывает их через WriteFile, компонент внутри ядра Windows просыпается, считывает их используя API ReadFile и добавляет в очередь сообщений с клавиатуры. API для работы с файлом могут использоваться для чтения данных с драйверов. С этого момента начинается обработка данных стеком ввода Windows, об этом в следующей статье.

Если у вас есть ПК с PS2 портом и вы умеете пользоваться WinDbg в режиме ядра, то можете легко найти обработчик прерываний клавиатуры напечатав команду !idt, которая выведет на экран всю таблицу векторов прерываний. Прерывание вклинивается в ход выполнения программы, слово вектор здесь подразумевает направление, направление исполнения программы. WinDbg был сделан специально для отладки Windows, самая последняя версия называется WinDbgX. Он имеет текстовый интерфейс, который отпугивает людей привыкших к Visual Studio, однако предоставляет гораздо больше возможностей, в частности исполнение скриптов. Прерывание фиолетового порта PS2 выделено красным. Функция которая его обрабатывает называется I8042KeyboardInterruptService, которая находится в файле i8042prt.sys.

BOOLEAN
I8042KeyboardInterruptService(
  IN  PKINTERRUPT Interrupt,
  IN  PVOID Context
  );

Routine Description:

    This is the interrupt service routine for the keyboard device when
    scan code set 1 is in use.

Arguments:

    Interrupt - A pointer to the interrupt object for this interrupt.

    Context - A pointer to the device object.

Return Value:

    Returns TRUE if the interrupt was expected (and therefore processed);
    otherwise, FALSE is returned.

Сейчас возникает вопрос, откуда у обработчика прерываний аргумент? Кто его передаёт? Ведь CPU ничего не знает о нём. Если поставите в неё breakpoint, то удивитесь ещё больше увидев несколько функций выше по стеку:

0: kd> kC
# Call Site
00 i8042prt!I8042KeyboardInterruptService
01 nt!KiCallInterruptServiceRoutine
02 nt!KiInterruptSubDispatch
03 nt!KiInterruptDispatch
04 nt!KiIdleLoop

Объяснение здесь простое – это не та функция которая сохранена в регистре IDT процессора. То что вы видите на картинке выше на самом деле объекты типа _KINTERRUPT. В таблице прерываний сохранён специальный ассемблерный код (nt!KiIdleLoop), который знает как найти объект описывающий прерывание в памяти. Что же интересного есть в нём?

  1. Указатель на объект представляющий драйвер в памяти.
  2. Указатель на функцию i8042prt!I8042KeyboardInterruptService, которая и вызывает код считывающий данные из порта PS2 через ассемблерную команду IN AL, 0x60 – сохранить значение из порта номер 0x60 в регистре AL.
  3. Функция dispatcher – ей передаётся указатель функцию из пункта №2 и она вызывает её.
  4. Состояние регистров CPU. Перед вызовом прерывания состояние CPU будет сохранено сюда, и отсюда же будет восстановлено.
  5. Приоритет прерывания. Не тот который определяет контроллер прерываний, а тот который Windows считает нужным. Это IRQL (Interrupt Request Level) – абстракция над IRQ.

Как только обработчик прерываний клавиатуры будет вызван, он уведомит драйвер клавиатуры о полученных данных, после чего будет уведомлено ядро ОС, которое обработав данные отправит их дальше по стеку ввода, где они могут быть доставлены приложению, которое на них отреагирует, или перед этим в обработчик языков (азиатские иероглифы, автокоррекция, автозаполнение).
Ядро ОС напрямую не взаимодействует с драйвером клавиатуры, для этих целей используется Plug’n’Play Manager. Этот компонент предоставляет API IoRegisterPlugPlayNotification, который вызовет предоставленную callback-функцию когда устройство будет добавлено или удалено.

Пару слов о USB

Ознакомление с работой порта USB потребовало бы отдельной статьи описывающей его работу и плюс описание обработки данных HID на Windows. Это очень сильно усложнило бы материал, к тому же уже есть хорошие статьи по теме, поэтому PS2 идеальный пример из-за своей простоты.

USB создавался как универсальный порт для всех устройств, будь то клавиатура, фотоаппарат, сканнер, игровой руль с педалями, принтер и пр. Вдобавок он поддерживает вложенность портов – USB материнки => монитор с USB => клавиатура с USB к которой подключена мышка, флешка и USB-hub к которому подключен жёсткий диск. Взглянув на контакты USB 2.0 вы увидите что они не заточены под передачу каких-то определённых данных, как у PS2. Их всего четыре – витая пара для передачи битов данных, плюс и минус питания.

Провода кабеля USB 2.0

USB 3.0 быстрее за счёт дополнительных пяти контактов. Как видите там нету линии CLOCK для синхронизации, поэтому логика передачи данных сложнее. Слева USB 2.0 и справа USB 3.0 для сравнения.

Все данные передаются через протокол HID (Human Interface Device), который описывает форматы, порядок взаимодействия и передачи данных и всё остальное. Стандарт USB 2.0 занимает 650 страниц, документ HID Class Specification, описывающий работу устройств (мыши, клавиатуры и пр) – 97 страниц, их рекомендуется изучить если вы работаете с USB.

Первым делом подключенное устройство должно рассказать о себе, для этого оно отправляет несколько структур данных, в которых указывается ID устройства и ID производителя по которым Plug’n’Play manager может найти в реестре информацию, загрузить и соединить драйвера. USB устройства пассивны, т.е. хост должен сам с определённым интервалом проверять наличие данных. Частота опроса и размер пакета данных задаются в одном из дескрипторов устройства USB. Максимальный размер пакета – 64 байта, что для информации о нажатых клавишах более чем достаточно.

В Windows есть встроенная поддержка HID, она не такая простая как связь драйвера порта PS2 с драйвером клавиатуры, потому что драйвер HID должен уметь обрабатывать все поддерживаемые протоколом сценарии. Вне зависимости от провайдера данных — порты PS2, USB или Remote Desktop или виртуальная машина – на самом верху driver node будет находится Kbdclass, от которого ядро ОС и будет получать информацию. Уведомление о подсоединении клавиатуры будет обрабатываться через Plug’n’Play Manager, так что для ядра Windows не имеет значение какой порт или источник данных от устройства используется.

ч.1 — Основы ОС и компьютера
ч.2 — Как работает материнская плата и клавиатура через порт PS2

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

Открытие окна «Параметры загрузки Windows» в разделе «Параметры компьютера»

  1. Проведите пальцем от правого края экрана и нажмите кнопку Параметры, а затем выберите пункт Изменение параметров компьютера.
    (Если вы используете мышь, наведите указатель мыши на правый нижний угол экрана, щелкните значок, а затем выберите пункт Параметры, а затем — изменить параметры ПК.)

  2. В разделе Параметры компьютера выберите элемент Обновление и восстановление, а затем — Восстановление.

  3. В разделе Дополнительные параметры запусканажмите кнопку Перезапустить сейчас.

  4. После перезагрузки компьютера в окне Выбор действия выберите элемент Диагностика. Если пункт Параметры загрузки не отображается, выберите Дополнительные параметры.

  5. Нажмите кнопку Параметры запуска и перезагрузите компьютер.

  6. На экране Параметры загрузки выберите необходимый параметр.

  7. Войдите в систему, используя учетную запись пользователя с правами администратора.

Открытие окна «Параметры загрузки Windows» в среде восстановления Windows

Если не удается загрузить компьютер, выполните следующие инструкции, чтобы запустить среду восстановления Windows. Для выполнения этих действий понадобится подключить клавиатуру.

  1. Выполните одно из следующих действий в зависимости от того, какой установочный носитель используется (например, DVD-диск или USB-устройство флэш-памяти).

    • Если у вас есть установочный носитель для Windows 8.1, запустите компьютер с установочного носителя. Вставьте DVD-диск или USB-устройство флэш-памяти и перезагрузите компьютер. Если отображается сообщение «Нажмите любую клавишу, чтобы выполнить загрузку с DVD-диска», нажмите любую клавишу. Если такое сообщение не отображается, то, возможно, нужно изменить порядок загрузки в параметрах BIOS вашего компьютера, чтобы сначала он загружался с DVD-диска или USB-устройства. Когда появится страница Установка Windows, выберите вариант Восстановление системы, чтобы запустить среду восстановления Windows.

    • Если у вас нет установочного носителя, три раза подряд перезагрузите компьютер с помощью кнопки питания. В результате запустится среда восстановления Windows.

  2. В среде восстановления Windows на экране Выбор действия выберите элемент Диагностика.

  3. Нажмите кнопку Параметры загрузки. Если кнопка Параметры загрузки не отображается, выберите элемент Дополнительные параметры, а затем нажмите кнопку Параметры загрузки.

  4. Нажмите кнопку Перезагрузка и подождите, пока компьютер перезагрузится.

  5. Выберите действие на экране Параметры загрузки.

  6. Войдите в систему, используя учетную запись пользователя с правами администратора.

Некоторые варианты, такие как безопасный режим, позволяют запустить Windows с ограниченными возможностями, когда работают только основные программы. При других вариантах Windows запускается с дополнительными параметрами (обычно их используют системные администраторы и ИТ-специалисты). Дополнительные сведения можно найти на веб-сайте Microsoft TechNet для специалистов по ИТ.

Примечание: Если вы используете BitLocker, вам потребуется приостановить его, прежде чем перейти к параметрам загрузки Windows. В Windows RT 8.1 может появиться запрос на ввод ключа восстановления шифрования устройства, чтобы перейти к параметрам загрузки.

 Запускает Windows в расширенном режиме устранения неполадок, предназначенном для ИТ-специалистов и системных администраторов.

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

Запуск Windows с использованием текущего видеодрайвера и низкими значениями разрешения и частоты обновления изображения. Этот режим можно использовать для сброса параметров дисплея.

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

  • Включить безопасный режим. Запуск Windows с минимальным набором драйверов и служб.

  • Включить безопасный режим с загрузкой сетевых драйверов. Запуск Windows в безопасном режиме, а также загрузка сетевых драйверов и служб, необходимых для доступа к Интернету или другим компьютерам в локальной сети.

  • Включить безопасный режим с поддержкой командной строки. Запуск Windows в безопасном режиме с окном командной строки вместо обычного интерфейса Windows. Этот вариант предназначен для ИТ-специалистов и системных администраторов.

Если при перезагрузке компьютера в безопасном режиме проблема не возникает, то основные параметры, файлы и драйверы Windows не связаны с ее появлением. Попробуйте по очереди запустить все приложения, которые вы обычно используете (включая приложения в папке автозагрузки). Возможно, неполадку вызывает определенное приложение. Если одно из приложений вызывает проблему, удалите его или обратитесь к издателю программного обеспечения. Если неполадки возникают в безопасном режиме или по-прежнему не удается найти проблему, вы можете попробовать обновить или сбросить компьютер. Подробнее: Обновление, возврат в исходное состояние или восстановление компьютера.        

Позволяет устанавливать драйверы, содержащие неправильные подписи.

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

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

Запуск контроллера домена Windows, на котором выполняется Active Directory, для восстановления службы каталогов. Этот вариант предназначен для ИТ-специалистов и системных администраторов.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

Найдите решения распространенных проблем или получите помощь от агента поддержки.

Download Windows Speedup Tool to fix errors and make PC run faster

Ever wondered what happens when you push the power button? In this post, we will see how Windows 11/10 boots and all that goes behind in the background. While all we see it as one process, everything happens in steps. It has been designed in such a fashion that if you face any issue with Windows Boot, you will be able to troubleshoot it.

Windows 10 boot

Windows boot process on BIOS systems comprises of four major phases. It starts from POST and ends up loading the Windows OS Loader or the Kernel. Here is a detailed description of the Windows 10 boot process and the list of stages it goes through:

  1. PreBoot
  2. Windows Boot Manager
  3. Windows OS Loader.
  4. Windows NT OS Kernel.

During every process, a program is loaded. Depending on whether it uses Legacy BIOS or UEFI, the file paths and files change.

Phase Boot Process BIOS UEFI 
1 PreBoot MBR/PBR (Bootstrap Code) UEFI Firmware
2 Windows Boot Manager %SystemDrive%\bootmgr \EFI\Microsoft\Boot\bootmgfw.efi
3 Windows OS Loader %SystemRoot%\system32\winload.exe %SystemRoot%\system32\winload.efi
4 Windows NT OS Kernel %SystemRoot%\system32\ntoskrnl.exe

1]  PreBoot: POST or Power-On Self-Test loads firmware settings. It checks for a valid disk system, and if the system is good to go for the next phase. If the computer has a valid MBR, i.e., Master Boot Record, the boot process moves further and loads Windows Boot Manager.

2] Windows Boot Manager: This step determines if you have multiple OS installed on your computer. If yes, then it offers a menu with the names of the OSs. When you select the OS, it will load the right program, i.e., Winload.exe to boot you into the correct OS.

3] Windows OS Loader: Like its name, WinLoad.exe loads important drivers to kick start the Windows Kernel. The kernel uses the drivers to talk to the hardware and do rest of the things required for the boot process to continue.

4] Windows NT OS Kernel: This is the last stage that picks up the Registry settings, additional drivers, etc. Once that has been read, the control is taken by the system manager process. It loads up the UI, the rest of the hardware and software. That’s when you finally get to see your Windows 10 Login screen.

When you run Windows 11/10 on a computer that supports Unified Extensible Firmware Interface (UEFI), Trusted Boot protects your computer from the moment you power it on. When the computer starts, it first finds the operating system bootloader. Computers without Secured Boot simply run whatever bootloader is on the PC’s hard drive.

When a computer equipped with UEFI starts, it first verifies that the firmware is digitally signed. If Secure Boot is enabled, the firmware examines the bootloader’s digital signature to verify that it is intact hasn’t been modified. You can read more on how to secure the Windows Boot Process.

Do remember that lot of things happen even after you log in, but that’s all post-boot process scenarios. Also note that there is much more to Windows 11/10 Boot process than we explained here – we only explained the basics!

Anand Khanse is the Admin of TheWindowsClub.com, a 10-year Microsoft MVP (2006-16) & a Windows Insider MVP (2016-2022). Please read the entire post & the comments first, create a System Restore Point before making any changes to your system & be careful about any 3rd-party offers while installing freeware.

Для установки Windows 10 вам в первую очередь понадобится утилита Media Creation Tool. С ее помощью вы создадите загрузочные DVD, флэшку или образ ISO.

Создание загрузочного накопителя

Содержание

  • Создание загрузочного накопителя
  • Установка системы
  • Важные настройки перед первым запуском Windows 10
  • Скачайте драйвера для материнской платы и установите их
  • Минимальный набор программ для работы

Загрузите ее с сайта Microsoft. Созданный с помощью утилиты установочный накопитель может использоваться даже при отсутствии доступа к интернету. Для загрузки утилиты и системы соединение с Сетью необходимо.

Windows 10 Media Creation Tool

Запустите программу. Для продолжения потребуется согласиться с условиями использования.

Windows 10 Media Creation Tool

Выберите пункт «Создать установочный носитель (USB-устройство флэш-памяти, DVD-диск или ISO-файл)». Щелкните мышью по кнопке «Далее».

Windows 10 Media Creation Tool

Выберите язык системы и ее архитектуру: 32- или 64-битную. При объеме оперативной памяти 4 Гб и более, выбирайте x64, при меньшем объеме – x32. «Далее».

Windows 10 Media Creation Tool

Следующий экран предлагает вам сразу создать загрузочный USB-носитель или образ ISO. Его вы сможете записать на DVD или флэшку.

Windows 10 Media Creation Tool

В первом варианте вам будет предложено выбрать подключенный к компьютеру накопитель, емкость которого должна быть не менее восьми гигабайт. Во втором — указать место на жестком диске или твердотельном накопителе, где станет располагаться ISO-файл.

Далее экран показывает вам ход процесса загрузки системы. И это может продлиться довольно долго, поскольку объем Windows 10 — более четырех гигабайт.

Следующим шагом стартует создание носителя. В ходе выполнения этого действия данные размещаются на флэшке или формируется ISO-образ.

Установка системы

Вставьте установочную флэшку в USB-порт компьютера. Если используется DVD, он должен быть помещен в оптический привод. После перезагрузки компьютера перейдите в UEFI или BIOS так, как это предусмотрено в вашей модели. В перечне носителей устройства поменяйте приоритет загрузки таким образом, чтобы созданный вами накопитель находился на первом месте.

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

Щелкните мышью по кнопке «Установить».

Введите ключ активации системы. Если на данный момент он у вас отсутствует, выберите пункт «У меня нет ключа активации». Вы сможете активировать систему потом.

Вам будет предложен выбор версий системы для установки. В их числе: Домашняя, Домашняя для одного языка, для образовательных учреждений, Pro (базовая, для образовательных учреждений и для рабочих станций).

Рассмотрю на примере установки Windows 10 Pro. «Далее».

Вам будет предложено ознакомиться с лицензионным соглашением и принять его условия.

Установку вы сможете продолжить лишь после того, как подтвердите свое согласие, поставив «птичку» перед надписью «Я принимаю условия лицензии». «Далее».

Перед вами появится перечень из двух пунктов. Если у вас уже установлена Windows, вы можете выбрать «Обновление: установка Windows с сохранением файлов, параметров и приложений». В этом варианте ваши файлы и софт будут перенесены в новую систему.

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

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

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

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

Важные настройки перед первым запуском Windows 10

Выберите регион и подтвердите нажатием кнопки «Да».

Прежде всего выберите дополнительную раскладку клавиатуры. Английскую добавлять не нужно, она предусмотрена по умолчанию. Нажмите «Да».

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

После вам будет предложено узнать, что нового в Windows.

На экране определения способа настройки выберите пункт «Для личного использования». Нажмите «Далее».

Вы можете войти в свою учетную запись Microsoft, использовав электронную почту, номер телефона или логин Skype. Я рассмотрю вариант с использованием локальной (автономной) учетной записи.

Выберите пункт «Автономная учетная запись» – «Далее».

Вход в систему с использованием учетной записи даст вам доступ к сервисам Microsoft. Но мы используем локальную учетную запись, поэтому жмите «Нет».

Введите имя пользователя. «Далее».

Создайте пароль. При этом позаботьтесь о том, чтобы надежно сохранить его, не забыть и не потерять. Важно, чтобы он не был доступен никому, кроме вас. «Далее».

На следующем экране вам будет предложено включить отправку Microsoft своего журнала активности. Это позволяет продолжить на другом устройстве работу, начатую на данном компьютере. Если вы не желаете отправлять эти данные, нажмите «Нет».

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

Если процесс установки системы и ее первоначальная настройка прошли успешно, перед вами откроется сначала экран приветствия..

…а затем и рабочий стол ОС.

Скачайте драйвера для материнской платы и установите их

Может оказаться, что после установки некоторые компоненты не работают или работают некорректно. В первую очередь это относится к видеоадаптерам и сетевым адаптерам. Зайдите на сайт производителя материнской платы вашего компьютера и загрузите оттуда драйвера для своей модели. Установите их. Если версия для Windows 10 отсутствует, то обычно подходит та, которая предназначена для Windows 8.1.

Минимальный набор программ для работы

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

В этой статье я постарался рассказать о бесплатных программах, которые перекроют базовые потребности пользователей: Список бесплатного программного обеспечения.

5
6
голоса

Рейтинг статьи

Как сделать чистую загрузку WindowsЧистая загрузка в Windows 10, 8 и Windows 7 (не путать с чистой установкой, под которой понимается установка ОС с флешки или диска с удалением предыдущей системы) позволяет исправить проблемы с системой, вызванные неправильной работой программ, конфликтами ПО, драйверов и служб Windows.

В чем-то чистая загрузка (clean boot) схожа с безопасным режимом (см. Как зайти в безопасный режим Windows 10), но не является тем же самым. В случае входа в безопасном режиме, в Windows отключается почти всё, что не является обязательным для запуска, а для работы используются «стандартные драйвера» без аппаратного ускорения и других функций (что может быть полезно при исправлении проблем с оборудованием и драйверами).

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

Как выполнить чистую загрузку Windows 10 и Windows 8

Запуск конфигруации системы Windows

Для того, чтобы выполнить чистый запуск Windows 10, 8 и 8.1, нажмите клавиши Win+R на клавиатуре (Win — клавиша с эмблемой ОС) и введите msconfig в окно «Выполнить», нажмите Ок. Откроется окно «Конфигурация системы».

Далее по порядку выполните следующие шаги

  1. На вкладке «Общие» выберите «Выборочный запуск» и снимите отметку с «Загружать элементы автозагрузки». Примечание: у меня нет точной информации, работает ли это действие и является ли обязательным для чистой загрузки в Windows 10 и 8 (в 7-ке — точно работает, а здесь есть основания предполагать, что нет). Выборочная загрузка Windows 10
  2. На вкладе «Службы» поставьте отметку «Не отображать службы Майкрософт», а затем, при наличии сторонних служб, нажмите кнопку «Отключить все». Отключение сторонних служб в Windows
  3. Перейдите на вкладку «Автозагрузка» и нажмите «Открыть диспетчер задач». Автозагрузка в msconfig
  4. Диспетчер задач откроется на вкладке «Автозагрузка». Кликните по каждому из пунктов в списке правой кнопкой мыши и выберите «Отключить» (или сделайте это с помощью кнопки внизу списка для каждого из пунктов). Отключение пунктов автозагрузки
  5. Закройте диспетчер задач и нажмите «Ок» в окне конфигурации системы.

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

Предвидя вопрос о том, зачем мы дважды отключаем элементы автозагрузки: дело в том, что простое снятие отметки «Загружать элементы автозагрузки» выключает не все автоматически загружаемые программы (а возможно и вообще не отключает их в 10-ке и 8-ке, о чем я упомянул в п.1).

Чистая загрузка Windows 7

Шаги для чистой загрузки в Windows 7 почти ничем не отличаются от тех, что были перечислены выше, кроме пунктов, имеющих отношение к дополнительному отключению пунктов автозагрузки — эти действия в Windows 7 не нужны. Т.е. действия по включению чистой загрузки будут следующими:

  1. Нажать Win+R, ввести msconfig, нажать «Ок».
  2. На вкладке «Общие» выбрать «Выборочный запуск» и снять отметку с «Загружать элементы автозагрузки».
  3. На вкладке «Службы» включить «Не отображать службы Майкрософт», а затем выключить все сторонние службы.
  4. Нажать Ок и перезагрузить компьютер.

Возврат обычной загрузки производится отменой сделанных изменений тем же самым образом.

Примечание: на вкладе «Общие» в msconfig вы могли также заметить пункт «Диагностический запуск». По сути, это та же чистая загрузка Windows, но не дающая возможности контролировать, что именно будет загружаться. С другой стороны, в качестве первого шага перед диагностикой и поиском ПО, вызывающего проблемы, диагностический запуск может быть полезен.

Примеры использования режима чистой загрузки

Некоторые возможные сценарии, когда чистая загрузка Windows может быть полезна:

  • Если не удается установить программу или удалить ее через встроенный деинсталлятор в обычном режиме (может потребоваться ручной запуск службы Установщик Windows).
  • Не запускается программа в обычном режиме по неясным причинам (не отсутствие необходимых файлов, а что-то еще).
  • Не удается совершить действия над какими-то папками или файлами, так как они используются (на эту тему см. также: Как удалить файл или папку, которые не удаляются).
  • Появляются необъяснимые ошибки при работе системы. В этом случае диагностика может быть долгой — начинаем с чистой загрузки, и, если ошибка не проявляется, пробуем по одной включать сторонние службы, а затем программы автозапуска, перезагружаясь каждый раз, чтобы выявить элемент, вызывающий проблемы.

И еще один момент: если в Windows 10 или 8 вы не можете вернуть «обычную загрузку» в msconfig, то есть всегда после перезапуска конфигурации системы там стоит «Выборочный запуск», не стоит переживать — это нормальное поведение системы, если вы настраивали вручную (или с помощью программ) запуск служб и убирали программы из автозагрузки. Также может пригодиться официальная статья по чистой загрузке Windows от Microsoft: https://support.microsoft.com/ru-ru/kb/929135

  • Как вывести ярлык панели управления на рабочий стол в windows 10
  • Как выделить всю оперативную память windows 10
  • Как выглядит биос на windows 10
  • Как вывести ярлык vpn на рабочий стол windows 10
  • Как выглядит windows 7 на флешке