Где здесь клавиатура?
Во время запуска ядро Windows считывает из реестра информацию о контроллере системной шины, как правило это шина PCI (реже MSI), к ней подключены контроллеры портов ввода-вывода, в том числе и USB, PS/2. Информация о нём записывается во время установки Windows.
driver node
), к примеру драйвер клавиатуры, будет соединён с драйвером порта PS2. А вот порт USB сложнее — сначала драйвер порта, потом драйвер для работы с протоколом HID и только потом клавиатура.
Каждый порт контроллируется своим чипом, который мониторит подключение, принимает/отправляет сигналы между CPU и устройством. Если чип-сет Южный мост не встроен в CPU, как это часто делают в ноутбуках, а существует отдельным чипом на материнке, то правильней говорить:
сигнал между Южным мостом и контроллером порта. Чип контроллирующий порт имеет выделенную линию с контроллером прерываний (PIC или APIC), по которой он может попросить обратить на себя внимание CPU, к примеру считать данные от клавиатуры (порт PS/2, с USB другая история).
Поскольку ОС загрузила для порта драйвер, она может отдавать ему команды, читать и отправлять данные. В нашем примере был загружен драйвер из C:WindowsSystem32i8042prt.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:
Особые способы загрузки windows
ОСОБЫЕ СПОСОБЫ ЗАГРУЗКИ WINDOWS
Объяснение каждого варианта
Если операционная система не смогла запуститься, то при следующей перезагрузке Вы увидите сокращенное меню выбора вариантов загрузки.
Для восстановления системы нужно использовать в первую очередь следующие режимы:
• Безопасный режим – если компьютер загрузится в этом режиме, Вы сможете выполнять любые действия для устранения проблем;
• Последняя удачная конфигурация – позволяет автоматически исправить некоторые проблемы, связанные с неправильной настройкой параметров или установкой драйверов;
• Включение видеорежима с низким разрешением – этот режим можно попробовать при неправильной работе видеоадаптера или монитора.
Остальные режимы могут понадобиться в особых случаях и рекомендуются для использования в первую очередь техническими специалистами. Рассмотрим подробнее каждый из пунктов, содержащихся в меню дополнительных вариантов загрузки.
• Устранение неполадок компьютера. Запуск средств устранения неполадок при загрузке. Этот вариант предназначен для крайних случаев, когда система не запускается даже в безопасном режиме. Подробнее об этом – в разд. 12.6.
• Безопасный режим. В этом режиме используется только минимальное количество драйверов и служб, необходимых для запуска системы: применяется стандартный драйвер видеоадаптера, отключается сеть, не запускаются программы автозагрузки. Если при загрузке в безопасном режиме компьютер работает нормально, значит, сбои в нормальном режиме вызываются драйвером, программой или службой, которая не загружается в безопасном режиме. После загрузки в безопасном режиме Вы можете выполнить большинство операций по восстановлению, например удалить проблемный драйвер или приложение или запустить средство Восстановление системы.
• Безопасный режим с загрузкой сетевых драйверов. Отличается от обычного безопасного режима загрузкой сетевых драйверов и служб. Может понадобиться, если средства восстановления или архивные копии системы находятся на сетевом диске.
• Безопасный режим с поддержкой командной строки. Вместо графического интерфейса пользователя запускается режим командной строки. Этот режим позволяет загрузить компьютер при повреждении или неправильной работе программы Проводник (explorer. exe). Из командной строки можно запускать любые приложения, в том числе элементы Панели управления.
• Ведение журнала загрузки. В этом случае Windows ведет протокол загрузки всех служб и драйверов и записывает его в файл ntbtlog. txt, который находится в папке с установленной копией Windows.
• Включение видеорежима с низким разрешением (640х480). Позволяет загрузить компьютер с использованием экранного разрешения 640 х 480, после чего можно будет устранить неправильную настройку видеоадаптера или монитора.
• Последняя удачная конфигурация (дополнительно). Для загрузки в этом режиме используются данные о состоянии компьютера после последней успешной загрузки, что позволяет отменить изменения в настройках, внесенные при предыдущем сеансе работы. Это дает возможность аннулировать установку нового драйвера или изменение параметров работы оборудования.
• Режим восстановления служб каталогов. Этот вариант предназначен для серверных систем и позволяет восстановить службу каталогов на контроллере домена.
• Режим отладки. Используется квалифицированными программистами для отладки работы Windows.
• Отключить автоматическую перезагрузку при отказе системы. По умолчанию при возникновении критической ошибки в процессе загрузки система автоматически перезагружается. При выборе данного пункта автоматическая перезагрузка будет отключена, что позволит Вам детально изучить сообщение об ошибке.
• Отключение обязательной проверки подписи драйверов. Позволяет отключить проверку цифровых подписей драйверов. Иногда подобная проверка может стать источником проблем при загрузке. Выбор данного варианта также дает возможность установить неподписанный драйвер в 64-разрядных версиях Windows 7, однако для постоянного использования таких драйверов придется выбирать этот пункт при каждой загрузке системы.
• Обычная загрузка Windows. Возврат к обычному способу загрузки компьютера.
Как получить доступ (что нажимать)?
Параметры загрузки Windows позволяют запускать систему в специальных режимах устранения неполадок, чтобы найти и решить проблемы с компьютером.
- Если после установки нового драйвера или программы произошел сбой в системе и Windows функционирует нестабильно или вовсе не запускается, следует попытаться запустить Windows с параметрами последней удачной конфигурации. Под последней удачной конфигурацией понимается последний набор системных настроек, при которых Windows работала стабильно. Этот набор не будет содержать компонент, который вызвал сбой: он будет удален при загрузке системы в последней удачной конфигурации без возможности восстановления.
Обычно при сбое или неправильном завершении работы Windows после запуска компьютера и тестирования его устройств BIOS появляется меню, в котором предлагается выбрать один из особых вариантов загрузки. С помощью клавиш управления курсором переместитесь к пункту «Последняя удачная конфигурация» и нажмите клавишу Enter. При этом будет предпринята попытка запуска системы с параметрами, которые предшествовали конфигурации, вызывавшей проблемы. За сохранность файлов, созданных и измененных в последнем сеансе работы, можно не беспокоиться, возврат к предыдущей конфигурации затрагивает только системные параметры и никоим образом не влияет на личные файлы пользователя.
Если попытка загрузиться в последней удачной конфигурации не даст результатов, при следующем запуске компьютера в меню, изображенном на рисунке вначале, выберите пункт «Безопасный режим» и нажмите клавишу Enter. При сбоях данный вариант загрузки зачастую является единственно возможным, поскольку в этом случае Windows запускается с использованием минимального набора системных параметров и драйверов. При работе в безопасном режиме действия пользователя ограничены, однако для восстановления работоспособности Windows в обычном режиме Вы можете предпринять следующие меры:
• отменить установку новой версии драйвера, который, по Вашему мнению, мог стать причиной неполадки. Для этого нужно зайти в «Диспетчер устройств», в окне свойств устройства, для которого выполнялось обновление драйвера, перейти на вкладку «Драйвер» и воспользоваться кнопкой «Откатить»;
• отключить новое устройство, если неполадки возникли сразу после его подключения к компьютеру (кнопка «Отключить вкладки Драйвер»);
• восстановить систему до более раннего состояния с использованием точки восстановления.
Если при загрузке компьютера меню режимов Windows не появляется, Вы можете вызвать расширенное меню выбора дополнительных вариантов загрузки Windows одним из следующих способов.
• Когда Windows Vista является единственной операционной системой, установленной на компьютере, во время загрузки компьютера следует многократно нажимать клавишу F8, чтобы поймать момент, когда тестирование устройств компьютера BIOS закончилось, а загрузка Windows в обычном режиме еще не началась.
• Если на Вашем компьютере установлено две или более операционных системы, в Диспетчере загрузки Windows переместитесь с помощью клавиш управления курсором к названию нужной и нажмите клавишу F8.
В данном меню также следует сначала обратиться к варианту Последняя удачная конфигурация для автоматической отмены изменений, повлекших сбой, а в случае неудачи прибегнуть к загрузке Windows в безопасном режиме.
Когда в системе происходят серьезные сбои, она может перестать запускаться даже в безопасном режиме. В таких крайних случаях следует прибегать к средству восстановления при загрузке, имеющемуся на установочном DVD Windows Vista в меню параметров восстановления системы. После запуска средство восстановления при загрузке тестирует компьютер на предмет неполадок, препятствующих запуску Windows, а затем пытается устранить их (в первую очередь это касается восстановления поврежденных и удаленных системных файлов).
Чтобы воспользоваться средством восстановления при загрузке, в меню BIOS необходимо настроить запуск компьютера с компакт-диска. После этого вставьте установочный диск Windows Vista в привод и перезагрузите компьютер. Нажмите кнопки «Далее», а затем «Восстановление системы». Укажите неисправно работающую операционную систему и щелкните на кнопке «Далее». На следующем этапе выберите пункт «Восстановление запуска» в меню параметров восстановления системы.
2. Открытие окна «Параметры загрузки Windows» в разделе «Параметры компьютера».
Для настройки параметров загрузки щелкните правой кнопкой мыши на значке «Компьютер» и выберите в контекстном меню пункт «Свойства». В появившемся окне щелкните на ссылке «Дополнительные параметры системы» и на вкладке «Дополнительно» в области «Загрузка» и восстановление нажмите кнопку «Параметры».
Проведите пальцем от правого края экрана и коснитесь кнопки «Параметры», а затем выберите пункт «Изменение параметров компьютера» (если Вы пользуетесь мышью, переместите указатель в правый нижний угол экрана, затем вверх и нажмите кнопку «Параметры», а потом выберите «Изменение параметров компьютера»).
В разделе «Параметры компьютера» выберите элемент «Обновление и восстановление», а затем – « Восстановление».
В разделе «Особые варианты загрузки» нажмите кнопку «Перезагрузить сейчас».
После перезагрузки компьютера в окне «Выбор действия» выберите элемент «Диагностика». Если пункт «Параметры загрузки» не отображается, выберите «Дополнительные параметры».
Нажмите кнопку «Параметры загрузки», а затем «Перезагрузить».
На экране «Параметры загрузки» выберите необходимый параметр.
Войдите в систему, используя учетную запись пользователя с правами администратора.
3. Открытие окна «Параметры загрузки Windows» в среде восстановления Windows.
Если не удается загрузить компьютер, выполните следующие инструкции, чтобы запустить среду восстановления Windows. Для выполнения этих действий понадобится подключить клавиатуру.
Выполните одно из следующих действий в зависимости от того, какой установочный носитель используется (например, DVD-диск или USB-устройство флэш-памяти).
Если у Вас есть установочный носитель для Windows 8.1, загрузите компьютер с этого носителя. Вставьте DVD-диск или USB-устройство флэш-памяти и перезагрузите компьютер. Если отображается сообщение «Нажмите любую клавишу, чтобы выполнить загрузку с DVD-диска», нажмите любую клавишу. Если такое сообщение не отображается, то, возможно, нужно изменить порядок загрузки в параметрах BIOS Вашего компьютера, чтобы сначала он загружался с DVD-диска или USB-устройства. Когда появится страница «Установка Windows», выберите вариант «Восстановление системы», чтобы запустить среду восстановления Windows.
Если у Вас нет установочного носителя, три раза подряд перезагрузите компьютер с помощью кнопки питания. В результате запустится среда восстановления Windows.
В среде восстановления Windows на экране «Выбор действия» выберите элемент «Диагностика».
Нажмите кнопку «Параметры загрузки». Если кнопка «Параметры загрузки» не отображается, выберите элемент «Дополнительные параметры», а затем нажмите кнопку «Параметры загрузки».
Нажмите кнопку «Перезагрузка» и подождите, пока компьютер перезагрузится.
Выберите действие на экране «Параметры загрузки».
Войдите в систему, используя учетную запись пользователя с правами администратора.
Некоторые варианты, такие как безопасный режим, позволяют запустить Windows с ограниченными возможностями, когда работают только основные программы. При других вариантах Windows запускается с дополнительными параметрами (обычно их используют системные администраторы и ІТ-специалисты). Дополнительную информацию см. на веб-сайте Microsoft TechNet для ІТ-специалистов.
Примечание! Если Вы используете BitLocker, Вам потребуется приостановить его, прежде чем перейти к параметрам загрузки Windows. В Windows RT 8.1 может появиться запрос на ввод ключа восстановления шифрования устройства, чтобы перейти к параметрам загрузки.
4. Загрузить Windows 10 в Безопасном режиме
Если операционная система не загружается или работает неправильно по одной из множества возможных причин, то иногда единственным способом вернуть её работоспособность и получить доступ к своим данным есть загрузка компьютера в Безопасном режиме и исправление ошибок с его помощью.
Если Вам уже довелось какое-то время пользоваться Windows 10, то Вы, наверное, обратили внимание, что старые способы загрузки компьютера в Безопасном режиме больше не работают. Т. е. нажимая клавиши F8 или Shift F8 во время загрузки системы Вы уже не сможете загрузить операционную систему в безопасном режиме. Но это не значит, что в Windows 10 больше нет Безопасного режима. Просто чтобы загрузить его, необходимо пройти другие процедуры. Давайте рассмотрим их детальнее.
Безопасный режим Windows 10
Когда Вы входите в безопасный режим Windows 10, операционная система загружает минимальный интерфейс и только самые необходимые сервисы и драйвера, которые необходимы для функционирования системы.
Способ 1: С помощью инструмента «Конфигурация системы» (msconfig.exe)
Самый простой способ загрузиться в Безопасном Режиме Windows 10, это с помощью инструмента «Конфигурация системы». Многие пользователи знают его по исполняемому имени: msconfig.exe.
Чтобы запустить данный инструмент, необходимо открыть окно «Выполнить» (сочетание клавиш Windows R) и ввести в нём msconfig.
Также, «Конфигурацию системы» можно запустить с помощью окна поиска возле кнопки меню «Пуск». Достаточно ввести в нём «Конфигурация системы».
В открывшемся окне инструмента Конфигурация системы перейдите на вкладку «Загрузки», и в разделе «Параметры загрузки» выберите «Безопасный режим».
После этого система предложит перезагрузить компьютер для вступления в силу изменений. Можно продолжить работу на компьютере без перезагрузки или перезагрузить его, после чего он автоматически загрузится в безопасном режиме.
Способ 2: Перезагрузить компьютер с нажатием клавиши Shift (Shift Перезагрузка)
Ещё один способ с помощью которого можно запустить Безопасный режим Windows 10, это перезагрузить компьютер удерживая нажатой клавишу Shift. Для этого, откройте меню Пуск, нажмите кнопку «Выключение» и удерживая нажатой клавишу Shift, выберите «Перезагрузка».
Также данную комбинацию можно использовать из экрана блокировки.
После этого Windows 10 перезагрузится и предложит выбрать один из пунктов меню. Выберите «Поиск и устранение неисправностей / Дополнительные параметры».
В окне «Дополнительных параметров» выберите «Параметры загрузки».
Windows 10 уведомит пользователя о том, что систему можно перезагрузить для запуска дополнительных параметров, одним из которых является Безопасный режим. Нажмите кнопку «Перезагрузить».
После того, как система перезагрузится, выберите с какими параметрами необходимо загрузить систему. Для загрузки системы в Безопасном режиме присутствуют три варианта (F4 – F6).
Способ 3: Загрузка с помощью диска восстановления
В Windows 10 доступен инструмент для создания дисков восстановления.
Загрузите Windows 10 c помощью созданного таким образом диска восстановления. После этого система предложит выбрать раскладку клавиатуры, после чего выберите меню «Поиск и устранение неисправностей / Дополнительные параметры». Дальнейшие действия совпадают с теми, которые описаны в предыдущем разделе.
Способ 4: Особые варианты загрузки
Несмотря на существование нескольких способов загрузки Windows 10 в Безопасном режиме, данный способ будет наиболее правильным – при условии, что операционная системы загрузить которую необходимо в Безопасном режиме полностью работоспособна.
Сделать это довольно просто:
Далее, следуйте действиям, которые описаны в Способе 2.
Описанные способы загрузки операционной системы в Безопасном режиме актуальны как для Windows 10, так и для Windows 8.1. Начиная с данных версий Windows Безопасный режим перестал быть функцией, которую используют только ІТ-специалисты в своей работе. Теперь это просто ещё одна из функций операционной системы, которая доступна каждому пользователю, и с помощью которой пользователь без особых усилий может восстановить работоспособность системы и вернуть доступ к своим данным.
Дополнительные параметры запуска в Windows 8 и 10
Если в Windows XP и 7, чтобы выбрать варианты загрузки, нужно было нажимать клавишу F8 при включении компьютера, то с выходом Windows 8 все изменилось.
Чтобы зайти в новое видоизмененное меню параметров запуска, есть шесть вариантов.
Удерживать нажатой клавишу Shift при нажатии на Перезагрузка.
Не нужно ходить по настройкам, просто найдите меню выключения компьютера => нажмите и удерживайте клавишу Shift, и с нажатой клавишей выберите «Перезагрузка».
Данный способ работает, даже если Вы еще не вошли в систему, а в окне блокировки удерживая Shift нажимаете на «Перезагрузка». Кнопку перезагрузки можно найти в:
1.Меню «Пуск» => Выключение;
2.Нажмите клавиши Ctrl Alt Del и на открывшемся экране справа внизу выберите перезагрузка (не забываем при этом держать нажатой клавишу Shift);
3.На экране входа в Windows 10, там где Вы вводите пароль пользователя справа внизу есть меню где можно выбрать «Перезагрузка».
Через параметры ПК в Windows 8 и 10
Windows10: Зайдите в меню «Пуск» => Параметры => Обновление и Безопасность => Восстановление =>в пункте «Особые варианты загрузки» выберите «Перезагрузить сейчас».
Windows 8.1: откройте панель справа => выберите «Параметры» => Изменение параметров компьютера => Обновление и восстановление => Восстановление => в пункте «Особые варианты загрузки» выберите «Перезагрузить сейчас».
Через командную строку
Откройте командную строку от имени администратора: один из способов – в строке поиска напишите cmd и нажмите на найденном результате правой клавишей мыши, выберите «Запустить от имени администратора».
В командную строку введите команду shutdown /r /o /f /t 00
Компьютер начнет перезагружаться.
Загрузка с диска восстановления
Еще один способ зайти в меню дополнительных параметров загрузки – это создать диск восстановления и загрузить компьютер с него => выберите язык и перед Вами появится меню дополнительных параметров.
С помощью неправильного выключения компьютера.
Этот метод входа в меню дополнительных параметров загрузки удобен тем, кто не может загрузить Windows.
1.Нажмите кнопку выключения компьютера и удерживайте пока компьютер выключится;
2. Нажмите кнопку включения и как только система начнет загружаться – снова повторите первый пункт;
- Три раза повторяйте 1 и 2 пункт и в четвертый просто включайте компьютер, перед Вами должно появиться «Автоматическое восстановление», выберите «Дополнительные параметры».
Что происходит после перезагрузки? Изменить параметры загрузки.
После данных манипуляций компьютер должен при включении предложить различные варианты загрузки. Сначала перед Вами высветиться меню «Выбор действия» с тремя вариантами:
Продолжить – продолжит загрузку операционной системы;
Поиск и устранение неисправностей – основное меню параметров загрузки, здесь Вы сможете как выбрать различные варианты загрузки Windows, так и сбросить Ваш Windows к первичному состоянию или восстановить к более раннему;
Выключить компьютер – обычное выключения компьютера.
Если Вы выбрали «Поиск и устранение неисправностей» – в следующем окне Вам предложит:
Вернуть компьютер в исходное состояние – данным вариантом Вы сможете сбросить Windows до первичного состояния;
Дополнительные параметры.
В Дополнительных параметрах есть варианты:
Восстановление системы – можно восстановить компьютер к более раннему состоянию, с помощью точек восстановления (если конечно включена функция создания точек восстановления);
Восстановление образа
системы – данным способом можно восстановить систему, если ранее создавались образы рабочей системы;
Восстановление при загрузке – может устранить некоторые проблемы связанные с загрузкой Windows, сначала проходит сканирование на наличие проблем, после – инструмент пытается устранить их;
Командная строка – с помощью командной строки, тоже можно провести различные процедуры восстановления, если Вы знаете команды. К примеру можно скопировать данные, если Ваша Windows не загружается или восстановить загрузчик;
Вернуться к предыдущей сборке – если Ваш компьютер недавно обновил версию сборки Windows, и после этого начались проблемы – данным действием Вы вернетесь к предыдущей сборке;
Параметры загрузки:
Если выбрать «Параметры загрузки» то Вам предложит еще раз перезагрузить компьютер, чтобы получить доступ к различным вариантам загрузки Windows.
После перезагрузки в «Параметры загрузки» будет доступно:
Если компьютер уйдет в перезагрузку после сбоя, то «Параметры загрузки» Вы можете увидеть и без этих манипуляций.
Пару слов о usb
Ознакомление с работой порта USB потребовало бы отдельной статьи описывающей его работу и плюс описание обработки данных HID на Windows. Это очень сильно усложнило бы материал, к тому же уже есть хорошие статьи по теме, поэтому PS2 идеальный пример из-за своей простоты.
USB создавался как универсальный порт для всех устройств, будь то клавиатура, фотоаппарат, сканнер, игровой руль с педалями, принтер и пр. Вдобавок он поддерживает вложенность портов – USB материнки => монитор с USB => клавиатура с USB к которой подключена мышка, флешка и USB-hub к которому подключен жёсткий диск.
Провода кабеля 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, от которого ядро ОС и будет получать информацию.
ч.1 — Основы ОС и компьютерач.2 — Как работает материнская плата и клавиатура через порт PS2
Поиск загрузчика ос
Есть два вида прошивки материнки –
BIOS (Basic Input Output System)
на старых машинах и
UEFI (Unified Extensible Firmware Interface)
на новых. Windows 10 поддерживает обе и абстрагирует различия между ними. UEFI правильней называть ОС чем прошивкой, потому как он предлагает больше возможностей, к примеру богатый графический интерфейс вместо текстового, наличие мышки, больший объём доступной памяти, улучшенная модель безопасности и валидации файлов ОС, взаимодействие с железом через API, вместо прерываний как в BIOS.
Пример экрана монитора BIOS.
Программа BIOS хранится на отдельном чипе, подключенном к Южному мосту. Этот чип можно достать и перепрошить новой программой, по факту это просто носитель памяти, а не самостоятельный микрокомпьютер.
Настройки BIOS (системное время, например), хранятся на другом чипе который как правило находится возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК. Называется он
CMOS
, что означает
Complementary Metal Oxide Semiconductor
, а по-русски просто — КМОП, что есть
комплементарная структура металл-оксид-полупроводник
Первым делом программа BIOS выполняет проверку подсистем, эта процедура называется
– Power On Self Test. Тест может быть сокращённый либо полный, это задаётся в настройках BIOS. Процитирую
, что в себя включают эти тесты:
Сокращённый тест включает:
- Проверку целостности программ BIOS в ПЗУ, используя контрольную сумму.
- Обнаружение и инициализацию основных контроллеров, системных шин и подключённых устройств (графического адаптера, контроллеров дисководов и т. п.), а также выполнение программ, входящих в BIOS устройств и обеспечивающих их самоинициализацию.
- Определение размера оперативной памяти и тестирования первого сегмента (64 килобайт).
Полный регламент работы POST:
- Проверка всех регистров процессора;
- Проверка контрольной суммы ПЗУ;
- Проверка системного таймера и порта звуковой сигнализации (для IBM PC — ИМС i8253 или аналог);
- Тест контроллера прямого доступа к памяти;
- Тест регенератора оперативной памяти;
- Тест нижней области ОЗУ для проецирования резидентных программ в BIOS;
- Загрузка резидентных программ;
- Тест стандартного графического адаптера (VGA или PCI-E);
- Тест оперативной памяти;
- Тест основных устройств ввода (НЕ манипуляторов);
- Тест CMOS
- Тест основных портов LPT/COM;
- Тест накопителей на гибких магнитных дисках (НГМД);
- Тест накопителей на жёстких магнитных дисках (НЖМД);
- Самодиагностика функциональных подсистем BIOS;
- Передача управления загрузчику.
По результатам этого теста может быть обнаружена неисправность, к примеру нерабочая видеокарта или клавиатура. Поскольку экран монитора может не работать результаты тестов сообщаются в виде последовательности звуковых сигналов разной высоты. Что конкретно они значат надо смотреть в документации к материнской плате.
Если всё прошло успешно, BIOS начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых
сектор
, обычно он 512 байт, однако современный стандарт – 4096 байт. Установщик Windows в самый первый сектор на диске записывает специальный программный код и данные о разделах. Этот сектор называется
Master Boot Record
. Диск разбивается на разделы (partitions), отформатированный своей файловой системой. Максимум 4 раздела, каждый из который может быть
расширенным (extended partition)
, такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено. Как только BIOS находит Master Boot Record он считывает оттуда код и передаёт ему управление. Этот код поочередно просматривает данные о разделах и находит тот который помечен как активный, в нём находится код загрузчика Windows (Это
не
раздел с C:WindowsSystem32!), этот раздел называется
system partition
. Как правило он занимает 100Мб и скрыт от пользователя. В первом секторе этого раздела хранится загрузочный код, которому передаётся управление. Это
volume boot sector
, код в нём ищет файл
Bootmgr
, с которого и начинается процесс загрузки Windows. Файл Bootmgr создан через соединение в один файлов
Пример использования bcdedit.
Прежде чем начинать вносить изменения в загрузчике Windows, предварительно нужно создать его резервную копию. Для этого создайте на любом диске папку BootBackup и введите в командной строке следующую команду (командная строка должна быть запущена от имени Администратора):
bcdedit /export D:BootBackupbcd
Где D: диск размещения папки BootBackup.
Если вы чувствуете, что что то пошло не так, для того что бы вернуть все в изначальное состояние выполните команду восстановления BCD:
bcdedit /import D:BootCopybcd
Где D: диск размещения папки BootBackup.
Следующим шагом выясним основную информацию о своей BCD. Для этого выполните команду bcdedit.
Где:идентификатор – ID той или иной записи;device – показывает раздел, на котором расположены файлы загрузки (это может быть операционная система или папка BOOT);osdevice – показывает раздел, на котором расположены системные файлы операционной системы.
Обычно, значения параметров device и osdevice равны;path – если device определял раздел диска, который содержит файлы операционной системы, то этот параметр определяет остальной путь к загрузчику операционной системы;default – показывает ID операционной системы, загружаемой по умолчанию, если операционная система, в которой запустили командную строку, загружается по умолчанию, параметру default присваивается значение {current};displayorder – показывает порядок, в котором расположены записи о загружаемых системах;timeout – таймаут (смотри выше), значение показано и устанавливается в секундах;locale – указывает язык загрузочного меню или меню дополнительных параметров загрузки;description – показывает название операционной системы, отображающееся в меню загрузки.
Как изменить операционную систему, загружаемую по умолчанию.Укажите значение /default и идентификатор ОС, которая должна загружаться по умолчанию. bcdedit /default {ID}Теперь операционная система с указанным {ID} будет загружаться по умолчанию.
Как изменить значение задержки загрузкиЧтобы изменить значение задержки, по истечению которого начнется загрузка операционной системы, выполните такую команду:bcdedit /timeout XXгде XX – число в секундах, по умолчанию используется 30 сек.
Удаление записи из BCD и диспетчера загрузки выполняется с помощью команды:bcdedit /delete {ID}Есть особенность выполнения команды: если в качестве ID указывается известная запись, например {ntldr}, то команда должна выполняться с ключом /f:bcdedit /delete {ntldr} /fЕсли же ID записывается в буквенно- цифровом коде, ключ /f не нужен.
Для того, что бы получить более подробную информацию о возможностях утилиты bcdedit, необходимо использовать справку bcdedit /?
Старт системы
Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это
системный контроллер
, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (
BIOS/UEFI
) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём.
Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.Плата ноутбука с кнопкой включения и светодиодом состояния
Cистемный контроллер обладает огромными полномочиями – включать и выключать компьютер, исполнять код в режиме ядра. Помимо него могут быть и другие чипы со сравнимыми возможностями, такие как Intel Management Engine или AMD Secure Technology (часть CPU), которые так же работают когда компьютер «выключен». Чип с Intel ME имеет в себе x86 CPU с операционной системой MINIX 3. Что он может делать:
- Включать и выключать компьютер, т.е. выполнять программы имея доступ ко всей вычислительной мощности, периферии машины и сети.
- Обходить ограничения файервола.
- Видеть все данные в CPU и RAM, что даёт доступ к запароленным файлам.
- Красть ключи шифрования и получать доступ к паролям
- Логировать нажатия клавиш и движения мыши
- Видеть что отображается на экране
- Вредоносный код в Intel ME не может быть детектирован антивирусом, потому как на такой низкий уровень он добраться не может
- И конечно же скрытно отправлять данные по сети используя свой стек для работы с сетью.
Это вызывает серьёзные вопросы безопасности, потому как он может быть хакнут или использовать в шпионских целях.
Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (Nvidia 2070 S) на офисный ПК, то просто вставить её недостаточно, потому как она требует питание в 600W, в то время как такой ПК имеет блок на ~500W.
Первое что придёт в голову – купить новый блок питания на 650W с отдельной линией для видеокарты. Но и здесь будут разочарования, потому как разъёмы материнки будут не совпадать с разъёмами БП, а если его отдельно воткнуть в розетку и подключить к видюхе тоже ничего не будет – в блоке питания вентилятор не крутится и изображения нет.
Так происходит, потому что БП должен получить сигнал от материнки на полное включение. Очевидное решение – новая материнка с совместимыми разъёмами, однако она стоит ~$300. Есть решение проще, хоть оно и вызывает опасения пожаробезопасности. Берём скрепку, разгибаем и вставляем в зелёный (PS_ON) и один из чёрных пинов (COM). Теперь всё должно работать.
Запуск подсистем – 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, эти программы записаны в реестре HKLMSYSTEMCurrentControlSetControlSession ManagerBootExecute). SMSS.exe запускается для каждой пользовательской сессии.
Глобальные переменные (очередь сообщений например) у каждой сессии своя за счёт механизма виртуальной памяти. В Windows есть контексты потока, процесса и сессии. Каждый SMSS.exe запускает свой экземпляр подсистемы, на данный момент это только CSRSS.exe (Windows), в прошлом поддерживались операционные системы OS/2 (os2ss.exe)
WinInit.exe инициализирует подсистемы для создания графической оболочки – Windows Station и десктопы, это не тот рабочий стол который вы видите, это иная концепция Windows. Далее он запускает процессы:
- Services.exe – Services Control Manager (SCM) запускает сервисы и драйвера помеченные как AutoStart. Сервисы запускаются в процессах svchost.exe. Есть утилита tlist.exe, которая запущенная с параметром tlist.exe -s напечатает в консоли имена сервисов в каждом из svchost.exe.
- LSASS.exe – Local System Authority.
- LSM.exe – Local Session Manager.
WinLogon.exe
– загружает провайдеры аутентификации (
credential providers
), которые могут быть password, Smartcard, PIN, Hello Face. Он порождает процесс
LogonUI.exe