Как узнать, какие программы запускаются при включении компьютера?
На увеличение времени загрузки компьютера во многом влияют программы, запускающиеся вместе с операционной системой. При необходимости их можно исключить из автозагрузки , но для начала нужно узнать, что именно загружается. Сделать это можно посредством стандартных инструментов Windows и при использовании специализированного стороннего софта.
Просмотр списка автозагрузки стандартными средствами Windows
Отметим, что стандартный инструментарий Windows показывает не полный список программ, загружающихся при включении компьютера. Для просмотра этого списка в Windows 7:
- Откройте приложение «Выполнить» (нажмите «Win + R» на клавиатуре), скопируйте без кавычек в открывшееся окно команду «msconfig» и нажмите «ОК».
- Откроется приложение «Конфигурация системы». Перейдите во вкладку «Автозагрузка», в которой будут перечислены приложения, загружающиеся при включении компьютера. При необходимости их можно отключить, сняв галочку напротив нужной программы, и нажав затем кнопку «Применить».

В случае с Windows 10 список автозагрузки находится в системном приложении «Диспетчер задач»:
- Вызовите «Диспетчер задач» при помощи комбинации клавиш «Ctrl + Shift + Esc».
- Перейдите во вкладку «Автозагрузка». Чтобы убрать программу из автозагрузки, выделите ее название, затем нажмите кнопку «Отключить».

Многие программы, стартующие при включении компьютера, могут запускаться системой по запланированному заданию. Такие приложения (вернее — системные задания, запускающие их) можно найти в «Планировщике заданий». Чаще всего именно отсюда запускается всевозможное рекламное и вредоносное ПО или отдельные модули обычных программ (например, модули обновления). Чтобы ознакомиться и при необходимости отключить автозапуск таких приложений из «Планировщика заданий», выполните следующие действия:
- Запустите утилиту «Выполнить» (Win + R) и выполните из нее команду — taskschd.msc.
- В отобразившемся приложении «Планировщик заданий» откройте раздел «Библиотека планировщика заданий» (в левой части окна):

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

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

- Чтобы удалить задание, кликните по его названию и нажмите клавишу «Del»/»Delete».
При помощи «Планировщика заданий» можно найти и выключить различные навязчивые программы, без конца отображающие уведомления, предлагающие что-то скачать или обновить. Но вовсе необязательно, что задания на их запуск будут приведены в разделе «Библиотека планировщика заданий». Если речь идет о рекламном/вредоносном ПО, то задания на их запуск может быть размещено где угодно в «Планировщике». Также необязательно, что название этих заданий будут соответствовать названию запускающейся программы.
Если задача выполняется в данный момент времени (например, на экране виднеется уведомление от какой-нибудь программы), кликните по разделу «Планировщик заданий (Локальный)», затем вызовите меню «Действие» и в нем выберите «Отображать все выполняемые задачи»:

Так можно уточнить название задачи, затем найти и удалить ее. Во всех остальных случаях искать задания придется вручную, посещая каждый из разделов/подразделов всей библиотеки «Планировщика заданий». Ищите триггеры со значениями «При входе в систему», «При входе любого пользователя» или «При запуске компьютера», затем переходите во вкладку «Действия», чтобы определить название запускаемой программы.
Просмотр списка автозагрузки при помощи сторонних утилит
Существует множество программ, позволяющих управлять автозагрузкой в Windows. Одна из наиболее эффективных — Autoruns . Она полностью бесплатная и предназначена исключительно для управления автозагрузкой без каких-либо лишних функций.
Утилита Autoruns позволяет не только просматривать и управлять программами, запускающимися при включении компьютера, но также и рядом других объектов — DLL-библиотеками, файлами драйверов, службами и даже запланированными заданиями в рассмотренном выше «Планировщике заданий».
Тест по информатике «Принципы устройства компьютера»
Оценить ![]()
52571 1
Принципы устройства компьютеров
1. Какое кодирование данных используется в современных компьютерах?
2. Отметьте все верные утверждения о компьютерной памяти с произвольным доступом.
процессор может обращаться к отдельному биту памяти
процессор может обращаться только к ячейке памяти
адрес ячейки памяти — это её номер
ячейки памяти всегда имели размер 8 битов
ячейки памяти современных компьютеров — восьмибитовые
3. Какое английское сокращение используется для обозначения памяти с произвольным доступом?
4. Выберите правильное окончание предложения: «Память с произвольным доступом — это память, в которой . »
можно сразу обратиться к ячейке с заданным адресом
можно как читать, так и записывать данные
данные доступны из любой программы
можно хранить произвольные данные
запрещено изменение данных
5. Отметьте все виды памяти с произвольным доступом.
оперативная память (ОЗУ)
постоянная память (ПЗУ)
память на магнитной ленте
память на флэш-дисках
6. В чем заключается принцип однородности памяти?
программы и данные расположены в одной области памяти
программы и данные расположены в разных областях памяти
память состоит из одинаковых ячеек
7. Что хранится в счётчике адреса команд?
адрес следующей команды
адрес только что выполненной команды
адрес команды, которая сейчас выполняется
данные для выполнения команды
возможны разные варианты
8. Как называется ячейка быстродействующей памяти, расположенная внутри процессора?
9. Где находится программа, которая первой начинает выполняться при включении компьютера?
в постоянной памяти (ПЗУ)
в оперативной памяти (ОЗУ)
на жёстком диске
10. Отметьте все вопросы, которые относятся к понятию «архитектура компьютера».
где находится программа которая первой начинает выполняться при включении компьютера
Тест по информатике «Принципы устройства компьютера»
Принципы устройства компьютеров
1. Какое кодирование данных используется в современных компьютерах?
2. Отметьте все верные утверждения о компьютерной памяти с произвольным доступом.
процессор может обращаться к отдельному биту памяти
процессор может обращаться только к ячейке памяти
ячейки памяти всегда имели размер 8 битов
3. Какое английское сокращение используется для обозначения памяти с произвольным доступом?
можно сразу обратиться к ячейке с заданным адресом
можно как читать, так и записывать данные
данные доступны из любой программы
можно хранить произвольные данные
запрещено изменение данных
5. Отметьте все виды памяти с произвольным доступом.
оперативная память (ОЗУ)
постоянная память (ПЗУ)
память на магнитной ленте
память на флэш-дисках
6. В чем заключается принцип однородности памяти?
программы и данные расположены в одной области памяти
программы и данные расположены в разных областях памяти
память состоит из одинаковых ячеек
7. Что хранится в счётчике адреса команд?
адрес следующей команды
адрес только что выполненной команды
адрес команды, которая сейчас выполняется
данные для выполнения команды
возможны разные варианты
8. Как называется ячейка быстродействующей памяти, расположенная внутри процессора?
9. Где находится программа, которая первой начинает выполняться при включении компьютера?
в постоянной памяти (ПЗУ)
в оперативной памяти (ОЗУ)
10. Отметьте все вопросы, которые относятся к понятию «архитектура компьютера».
форматы данных и особенности их кодирования
Автозагрузка в Windows 7: порядок в системе со старта

Уход за компьютером обязательно включает чистку оперативной памяти от лишних программ, расходующих ресурсы и замедляющих систему. Большинство из них запускаются пользователем, однако зачастую они начинают работу без его сознательного участия. Это касается и программ, находящихся в списке «Автозагрузки». Как настроить «Автозагрузку» в Windows 7, читайте в нашей статье.
Для чего нужна «Автозагрузка» в Windows 7
Система использует автозагрузку для запуска важных компонентов, например драйверов установленных устройств или модулей отслеживания обновлений. Кроме того, сюда же помещаются антивирусы, которые для предотвращения заражения компьютера вирусами должны запускаться одновременно с системой.
Автозагрузка является также одним из способов индивидуальной настройки компьютера. С её помощью можно запускать ежедневно используемые рабочие приложения, антивирусы, коммуникаторы и т. д. Это удобный инструмент работы фоновых программ, например торрент-агентов или эмуляторов дисков. Часто автозагрузку используют для работы с «тяжёлыми», долго запускающимися программами.
И именно сюда просятся многие приложения, при установке «на всякий случай» сохраняя галочку в пункте «Запускать автоматически», а также вредоносные программы.
Редактирование «Автозагрузки»
С помощью команды msconfig
Узнать, какие программы запускаются на компьютере при включении, можно с помощью командной строки. Для этого нажимаем одновременно клавиши Win (кнопка с флажком Windows) и R. В открывшемся окне «Выполнить» в строке ввода набираем команду msconfig и нажимаем «OK».

Введите команду msconfig и нажмите «ОК»
В открывшемся окне «Конфигурация системы» переходим на вкладку «Автозагрузка». Перед нами откроется список автоматически загружаемых приложений.

Убираем лишние галочки
Чтобы убрать лишние, достаточно снять пометку в строке с названием программы. Для сохранения изменений необходимо нажать кнопку «OK», после чего можно перезагрузить компьютер.
Меню «Пуск»
Список автоматически загружаемых программ можно посмотреть, последовательно открывая пункты меню «Пуск — Все программы — Автозагрузка — Открыть».

Приложения обозначены ярлычками, ненужные можно удалить. Остаётся лишь перезагрузиться.
Используя поисковый запрос
Открываем меню «Пуск» и в поисковой строке снизу вводим запрос shell:startup, после чего нажимаем Ввод.

Дальше действуем уже по известному нам алгоритму, удаляя лишние ярлыки.
Чтобы сделать то же для всех пользователей, следует в поисковой строке ввести C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup.
Все внесённые изменения вступят в силу после перезагрузки.
Через реестр
Нажимаем Win + R, после чего в строке «Открыть» набираем команду regedit.

Запускаем редактор реестра
В открывшемся окне «Редактор реестра» нас интересуют разделы:
В них хранятся ссылки на программы для текущего пользователя.

Убираем лишние приложения
Чтобы изменить список «Автозагрузки» для всех пользователей данного компьютера, редактируем разделы:
Видеоинструкция: где находится список «Автозагрузки» и как удалить программы
Как добавить программы
Открываем список автоматически загружаемых приложений по уже известному нам алгоритму «Пуск — Все программы — Автозагрузка — Открыть», после чего нужно нажать правую кнопку мыши и в появившемся списке выбрать сначала «Создать», затем «Ярлык».

Создаём ярлык для нужного приложения
После выбора пункта меню «Ярлык» нажимаем «Обзор…», и в открывшемся списке окошка «Обзор файлов и папок» выбираем нужную программу и нажимаем «OK».

Того же результата можно добиться через рассмотренные выше поисковые запросы в меню «Пуск». Набрав shell:startup, получаем доступ к «Автозагрузке» текущего пользователя, а Startup (C:\ProgramData\Microsoft\Windows\Start\Menu\Programs\Startup) даёт возможность сделать то же для всех, зарегистрированных на данном компьютере. Изменения вступят в силу после перезагрузки.
Видеоинструкция: как внести программу в список автозапуска
Что убрать, а что оставить?
Главное правило редактирования списка «Автозагрузки» — знать, что делаешь. Прежде чем убирать метку, нужно узнать, что делает соответствующее приложение и не навредит ли системе его удаление из автоматического запуска. Проще всего для этого воспользоваться сетевыми поисковыми сервисами.
Обязательно нужно оставить в списке брандмауэр. Что же касается торрентов, то всё зависит от активности пользователя в этой сети. Если загрузка и раздача файлов является одним из ежедневных занятий, то можно позволить торренту загружаться вместе с системой. В другом случае стоит его удалить, поскольку это достаточно ресурсоёмкое приложение.
В наше время редко встречаются пользователи, не пользующиеся ежедневно интернетом. Поэтому браузеры («Опера», Google Chrome и другие) лучше включить в «Автозагрузку» для удобства работы. То же касается коммуникационных программ (Skype, Viber и прочие).
Наводить порядок в «Автозагрузке» важно и полезно. Хотя это и трудоёмкий процесс, более быстрая загрузка системы и ускорение работы компьютера станут достойной компенсацией за работу.
О работе ПК ч.3: От включения до полной загрузки Windows 10
Мы продолжаем разбираться как работает ПК на примере клавиатуры и Windows 10. В этой статье поговорим о том как происходит единение софта и железа.
Старт системы
Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.
Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.
Плата ноутбука с кнопкой включения и светодиодом состояния
Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (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 начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых сектор, обычно он 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.
Запуск на 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.

Инициализация ядра
Запуск подсистем – 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 для входа.
Дерево процессов выглядит следующим образом, на нём можно увидеть кто и кого создал (показаны не все процессы, может немного отличаться от последний версий 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 реализовывается на уровне софта в Hardware Abstraction Layer (HAL.dll), а не железа. В Windows системах есть драйвер шины (bus driver), который определяет наличие устройств подключенных к шинам – PCI, USB и др. и номера прерываний которые могут быть назначены каждому устройству. Драйвер шины сообщает эту информацию Plug and play manager, который уже решает какие номера прерываний назначить каждому устройству. Далее арбитр прерываний внутри PnP Mgr (PnP interrupt arbiter) устанавливает связи между IRQ и IRQL.
Так вот, драйвер клавиатуры (kbdclass.sys) получает данные от порта (USB, PS2) через прерывание и записывает их через WriteFile, компонент внутри ядра Windows просыпается, считывает их используя API ReadFile и добавляет в очередь сообщений с клавиатуры. API для работы с файлом могут использоваться для чтения данных с драйверов. С этого момента начинается обработка данных стеком ввода Windows, об этом в следующей статье.
Если у вас есть ПК с PS2 портом и вы умеете пользоваться WinDbg в режиме ядра, то можете легко найти обработчик прерываний клавиатуры напечатав команду !idt, которая выведет на экран всю таблицу векторов прерываний. Прерывание вклинивается в ход выполнения программы, слово вектор здесь подразумевает направление, направление исполнения программы. WinDbg был сделан специально для отладки Windows, самая последняя версия называется WinDbgX. Он имеет текстовый интерфейс, который отпугивает людей привыкших к Visual Studio, однако предоставляет гораздо больше возможностей, в частности исполнение скриптов. Прерывание фиолетового порта PS2 выделено красным. Функция которая его обрабатывает называется I8042KeyboardInterruptService, которая находится в файле i8042prt.sys.
Сейчас возникает вопрос, откуда у обработчика прерываний аргумент? Кто его передаёт? Ведь CPU ничего не знает о нём. Если поставите в неё breakpoint, то удивитесь ещё больше увидев несколько функций выше по стеку:
0: kd> kC
# Call Site
00 i8042prt!I8042KeyboardInterruptService
01 nt!KiCallInterruptServiceRoutine
02 nt!KiInterruptSubDispatch
03 nt!KiInterruptDispatch
04 nt!KiIdleLoop
Пару слов о 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 не имеет значение какой порт или источник данных от устройства используется.
Как происходит загрузка компьютера
Это статья для повышения компьютерного кругозора. Если сегодня хочется попрограммировать, сделайте проект с колесом фортуны, а если нужны задачи — вот подборка самых интересных задач на логику.
Сегодня покажем, что происходит в обычном стационарном компьютере, когда вы его включаете и загружаете. Прямо по шагам, углубляясь в детали.
Воткнули вилку в розетку
Чаще всего компьютер включён в сеть постоянно, и это значит, что блок питания подаёт на материнскую плату совсем небольшой ток. Ток настолько мал, что внутри блока питания ничего не греется, поэтому не нужно включать никакие вентиляторы.
Ток поступает на контакты питания материнской платы, а оттуда — на системный контроллер. Системный контроллер — специальная микросхема (или группа микросхем), которая управляет всем, что находится на материнской плате, включая процессор и оперативную память. Когда есть питание, системный контроллер просто ждёт, пока пользователь не нажмёт кнопку включения компьютера.
Получается, даже когда компьютер условно выключен, на самом деле он включён — работает системный контроллер, который, как сторож, проверяет, нужно ли подавать электричество на остальные устройства внутри компьютера.
Нажали кнопку включения
После нажатия кнопки включения системный контроллер получает от неё сигнал и говорит блоку питания: «Мне нужно больше тока». Блок начинает полноценно работать и подаёт полноценное питание на материнскую плату и остальные компоненты — теперь начинают работать все основные компоненты компьютера:
- процессор,
- оперативная память,
- микросхемы BIOS или UEFI (про них позже),
- жёсткий диск.
Когда всё это заработало, системный контроллер берёт содержимое микросхемы BIOS, загружает его в оперативную память и говорит «Ну всё, дальше ты». С этого момента управление компьютером переходит к BIOS.
Загрузился BIOS
BIOS — это аббревиатура от Basic Input/Output System, базовая система ввода-вывода. Она отвечает за первоначальную загрузку компьютера. Все данные BIOS хранятся в отдельной микросхеме на материнской плате, а чтобы настройки не пропали после отключения от розетки, ставят батарейку. Если питания от сети не будет, батарейка будет поддерживать память в микросхеме около 10 лет.
Микросхема BIOS рядом с батарейкой
Первое, что делает BIOS, — запускает POST (Power On Self Test), самотестирование при включении. Тест проверяет работу процессора, оперативной памяти, контроллеров, загрузчиков и всего остального оборудования, важного для загрузки компьютера. Если всё в порядке, то компьютер пропищит один раз и продолжит загрузку — так он сообщает о результатах тестирования. А если будут ошибки — пропищит иначе, например:
- короткий и длинный — ошибка с оперативной памятью;
- длинный и 2 коротких — проблемы с видеокартой;
- постоянно длинный и короткий гудки — что-то с процессором;
- всё время пищит — ошибки с блоком питания.
Когда POST пройден, BIOS начинает искать загрузчик операционной системы. Для этого он смотрит у себя в настройках порядок загрузки — список дисков по очереди, с которых можно загрузиться. Например, вот порядок загрузки на экране BIOS компьютера Lenovo. Видно, что сначала нужно попробовать загрузиться с USB (первые три строчки), потом, если USB-дисков нет, — с жёсткого диска (п. 4), а если и диска нет — то попробовать с CD-дисковода или загрузиться по сети:
Порядок загрузки на экране BIOS компьютера Lenovo. Если нигде загрузчика не будет, BIOS остановится и выдаст ошибку
Как только загрузчик найден, BIOS считывает его код и передаёт ему всё дальнейшее управление компьютером.
Немного про UEFI
У BIOS есть проблема — устаревший интерфейс и мало возможностей для настроек компьютера. Чтобы это исправить, придумали UEFI — мини-операционную систему, которая так же, как и BIOS, может управлять основными настройками, но ещё обладает дополнительными возможностями. Например, у неё есть полноценный графический интерфейс с мышкой, расширенные возможности по настройке устройств и более полный доступ к возможностям железа.
Основное отличие от BIOS в том, что UEFI требуется больше памяти для первоначальных программ загрузки компьютера. Для этого UEFI забирает себе первые 100 мегабайт на диске и берёт эти данные оттуда, а сам раздел делает скрытым.

Работа загрузчика
Загрузчик — это сборное название всех программ и драйверов, которые понадобятся операционной системе для полноценной загрузки.
Можно провести такую аналогию: операционная система — это строительная бригада, которая может сделать что угодно. Но для её работы нужен менеджер, чтобы он заранее съездил к заказчику, выяснил, что нужно сделать, составил смету, закупил материалы и прикинул график работ. Загрузчик — это как раз тот самый менеджер, который делает все предварительные работы. Если менеджер не сделает свою часть, бригада не сможет приступить к работам.
Сам загрузчик находится на жёстком диске, и как только BIOS его находит и отправляет в оперативную память, загрузчик начинает действовать:
- включает нужный режим работы процессора, который защищает одни процессы от других;
- распределяет оперативную память и сгружает туда файл с параметрами загрузки операционной системы;
- загружает драйверы устройств и проверяет их цифровую подпись;
- подключает файловую систему, чтобы компьютер мог полноценно работать со всеми дисками.
На финальном этапе загрузчик находит ядро операционной системы, загружает его в память и передаёт управление ему.
Запуск ядра операционной системы
Если процесс загрузки дошёл до этой точки, то компьютер понимает, что скоро загрузится операционная система, а значит, можно показать пользователю стартовый экран. На Windows он выглядит так:
Пока крутится индикатор загрузки, ядро занимается тем, что загружает и запускает все служебные программы и скрипты:
- смотрит, какое подключено железо и какие драйверы для него нужны прямо сейчас;
- считывает настройки системы и запускает скрипты сразу с нужными параметрами;
- запускает службы и демоны;
- настраивает графический интерфейс;
- включает систему входа пользователей в систему.
Смысл ядра — запустить все программы, которые будут нужны для дальнейшей работы операционной системы. В нашей аналогии со строительной бригадой, ядро — это прораб, который находится всё время на объекте от начала работ до их полного окончания. Прораб следит за ключевыми процессами и вмешивается, если что-то идёт не так. Ядро действует точно так же: обеспечивает работоспособность всей ОС и регулирует ключевые процессы.
Вход пользователя в систему
Последний шаг загрузки компьютера — вход пользователя в систему. Он может быть автоматическим, если нет пароля на вход — в противном случае система попросит его ввести:

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



