Что нужно для запуска компьютера
3 наглядных способа включить компьютер
Доброго времени суток, уважаемые читатели моего блога! На связи Федор Лыков. В сегодняшней статье мы будем с вами разбирать вопрос, как включить компьютер. Да, разумеется, все мы знаем стандартный способ включения с помощью кнопки питания на корпусе, но далеко не всегда такой способ запуска является возможным.
Например, данная кнопка может сломаться или системный блок может стоять в недосягаемом месте и есть необходимость более удобного его старта (например, вывести на внешний периферийные устройства).
Так же мы рассмотрим различные варианты запуска, когда старт в обычном не возможен по какой-либо причине (сбой в работе, вирусы и тд.). Это тоже очень актуально и необходимо знать каждому пользователю ПК.
Чтобы ваш компьютер всегда был в стабильном состоянии необходимо своевременно его обслуживать. Об этом я рассказывал в своей статье, где разбирал несколько эффективных способов полностью почистить компьютер. Рекомендую вам обязательно ознакомиться с ней.
Итак, я считаю, что пора уже приступать к нашему вопросу, поэтому желаю вам приятного чтения!
Имеющиеся способы
Давайте сразу кратко пробежимся по тем различным вариантам, которые мы сегодня рассмотрим:
Название способа | Описание | Применение |
Включение с помощью мыши или клавиатуры | Компьютер запускается с помощью нажатия определенной кнопки на клавиатуре или мышке. | Для удобства. |
Запуск без кнопки включения с помощью контактов материнской платы | Старт ПК осуществляется с помощью замыкания контактов | Когда нет возможности подключения кнопки питания. |
Удалённый старт | Запуск происходит с удаленного устройства (например, со смартфона) | Для удобства или когда необходимо осуществить запуск компьютера, не находясь рядом с ним. |
Включение в другом режиме загрузки | Операционная система загружается в одном из альтернативных режимов для диагностики или отладки. | В случае краша, ошибок при загрузке. |
Теперь давайте разберём, как включить компьютер, каждый способ отдельно более подробно.
Осуществляем старт компьютера с помощью периферийных устройств
Данная функция имеется на многих материнских платах, но имеет существенные отличия у разных производителей. Например, у Asus имеется возможность включения без кнопки включения с помощью клавиатуры и определенных сочетаний клавиш, которые предусмотрели разработчики.
Так же чаще всего имеется нюанс в подключении периферии именно по PS\2 интерфейсу, а не USB.
Независимо от того, какой производитель у вас, рассмотрим ситуацию в общем.
Более подробно вы можете узнать из спецификации конкретно своего железа.
Да, здесь не может быть общей для всех инструкции, но данной информации вам должно хватить для того, чтобы сориентироваться непосредственно на вашем ПК. Едем дальше.
Включаем компьютер совсем без кнопок
Может показаться что это какая-то шутка, но нет – систему можно запустить совсем без кнопок. Для этого нам лишь понадобится немного знаний и какой-то металлический предмет, чтобы замкнуть контакты (например отвертка или даже обыкновенная ручка).
Данный способ пригодится в случае ремонта компьютера и тестирования его работы или когда кнопка питания вышла из строя.
Как работать с контактами на передней панели я уже рассказывал в одной из предыдущих статей, поэтому прежде чем лезть в системный блок, рекомендую вам ознакомиться с ней.
Вот таким образом возможно решить проблему, как включить компьютер без кнопки включения.
Удаленный старт
В данном способе вам снова необходимо будет попасть в настройки BIOS. Там вам необходимо найти пункт, связанный с LAN. Чаще всего название такой настройки: Wake up on Lan, но может быть и другое – обращайтесь к инструкции вашего железа.
Все, что вам потребуется это знать свой белый (статичный) IP адрес и MAC адрес.
Выяснить, какой у вас IP можно просто перейдя на сайт. MAC-адрес узнается при помощи командной строки:
Дальнейшие действия будут прописаны в инструкции того приложения, которое вы будете использовать.
Другие варианты загрузки системы
При использовании операционных систем Windows XP, Vista или 7 все достаточно просто. При включении ПК нужно просто зажать кнопку F8 на клавиатуре и ждать загрузки. Перед вами появится окно с выбором вариантов загрузки, где вам просто нужно будет выбрать требуемый.
На Windows 10 все несколько сложнее.
Если система не может загрузиться, то она сама предложит вам другие режимы загрузки. Так же это произойдет при неправильных резких выключениях или перезагрузках.
Чтобы попасть в меню выбора варианта загрузки из системы вам необходимо:
Вам будет предложено после этого на выбор несколько вариантов, которые выбираются с помощью цифр на клавиатуре.
Заключение
Сегодня мы с вами разобрали много различных способов того, как включить компьютер. Информации очень много, и она достаточно непростая, но буду надеяться, что вы смогли почерпнуть для себя что-то полезное. Информация обязательно понадобится вам в дальнейшем пользовании ПК.
Если у вас остались какие-либо вопросы, то обязательно задавайте их в комментариях и я в индивидуальном порядке постараюсь вам ответить на них.
Так же буду очень рад почитать ваше мнение касаемо размещаемого контента на сайте, пожелания и критику.
Обязательно порекомендуйте данную статью и блок в общем вашим друзьям, знакомым и близким.
Спасибо, что дочитали статью до конца! На этом у меня всё, и я с вами прощаюсь. До новых встреч в следующих публикациях на сайте. Всего вам доброго!
Для себя любимых и близких — забота о здоровье и красоте
Сборка компьютера – увлекательное занятие. К тому же это экономит бюджет. Вы как-бы сами себя нанимаете для сборки компьютера и платите себе 10 – 15 тыс. руб. (при сборке игрового ПК относительно магазинной цены).
Собрать компьютер самому – дело не хитрое. Из инструментов нужна только крестовая отвертка. Но что делать дальше, когда все детали прикручены на свои места? Что делать после сборки системного блока? Как запустить компьютер после сборки? Как выполняется настройка BIOS для установки Windows 7 на SSD? Как проводится установка Windows после сборки компьютера?
На первый взгляд вопросов очень много и от неожиданности можно растеряться. Но хорошей новостью является то, что давно уже прошли те времена, когда разобраться в этом могли только профессионалы. Сегодня практически все эти работы автоматизированы. И если соблюдать определенную последовательность действий, то в этом может разобраться любой человек с техническим складом ума.
Давайте рассмотрим первое включение вновь собранного компьютера на примере популярной бюджетной конфигурации для игр (игровой компьютер) и обработки фотографий в формате RAW (компьютер для фотографа). Статья так же будет интересна тем, кто ищет ответы на вопросы: «Как запустить компьютер после замены материнской платы?» или «Как запустить компьютер после замены жесткого диска?» Поскольку Биос находится на материнской плате, а Виндовс устанавливается на жесткий диск или твердотельный SSD.
Итак, имеем систему на следующих компонентах (которую я собрал):
Указанной конфигурации хватает для обработки фотографий (используется встроенное графическое ядро Intel HD Graphics 530). Для того чтобы компьютер стал супер игровым необходимо добавить видеокарту на свой кошелек. Лучшим вариантом будет GeForce GTX 10 серии. Но на первое включение компьютера наличие видеокарты не оказывает какого-либо влияния.
Операционную систему будем ставить на твердотельный диск SSD, а жесткий диск отведем для хранения различных файлов. Поэтому очень важно, чтобы при первом включении жесткий диск был отключен от материнской платы. Тогда система сама настроит многие параметры для работы на твердотельном SSD. Жесткий диск мы подключим и подтянем позже, средствами уже установленной Виндовс. Это стандартная процедура, которая не вызывает затруднений.
В общем случае первое включение компьютера после сборки состоит из следующих этапов:
Итак, компьютер собран, переходим к настройке Биоса.
Настройка Биоса msi h110m pro-vd UEFI для установки Windows 7
При включении компьютера первое, на что нужно обратить внимание – это то, что начали крутиться вентиляторы: на процессоре и на корпусе системного блока, заморгали лампочки на передней панели, ожил монитор. Это первые признаки того, что все идет как надо.
Внешний вид и расположение меню Биоса зависит от производителя системной платы (материнская плата). В данном случае имеем дело с MSI UEFI. Чтобы попасть в эту утилиту нужно при включении компьютера нажимать на клавишу DELETE на клавиатуре.
Если все провода и компоненты находятся на своих местах, вы увидите первую вкладку Биоса под названием СОСТОЯНИЕ СИСТЕМЫ. Если на мониторе ничего нет, нужно проверить все разъемы на надежность контакта или искать неисправный компонент. Копаться в электронике системного блока нужно при выключенном питании. Кроме того, на плате h110m pro-vd есть 3 светодиода, которые каждый раз при старте системы загораются если есть проблемы в работе: процессора, оперативной памяти и видеокарты.
Состояние системы: проверка обнаруженных устройств
Настройка Биоса msi для установки Windows 7, как, впрочем, и для Виндовса 8.1 или 10, начинается с того, что в первой строке SYSTEM LANGUAGE нужно выбрать русский язык. После чего интерфейс станет русским. Далее можно выставить системную дату и время. Но можно оставить как есть, поскольку при первом выходе в Интернет компьютер сам выставит правильную дату и время. Ниже нужно проверить, что компьютер увидел все ваши SATA устройства. В данном случае можно увидеть, два подключенных устройства (как и должно быть):
У меня в первый раз оптического привода в списке не оказалось. Я выключил компьютер и проверил разъем привода – он был не до конца вставлен. Утопив разъем еще на 3-4 мм до упора, я снова включил компьютер. Теперь оптический привод был на своем месте.
В строке ФИЗИЧЕСКАЯ ПАМЯТЬ присутствует 16384 Мб – значит вся память определилась. В строке MEMORY SPEED стоит 2133 МГц – память работает на заявленной частоте.
Больше здесь нас особенно ничего не интересует. Далее можно погулять по всем вкладкам, чтобы посмотреть, что там есть. Найти экран с температурами процессора. Важно, чтобы температура была в пределах нормы. Для i5-6500 максимальная температура 71 °C. Это при нагрузке. А в простое где-нибудь 30-40°C. А то вдруг у вас плохой контакт процессора и вентилятора. Тогда нужно будет проверить качество установки процессорного кулера.
Переходим ко второй вкладке ДОПОЛНИТЕЛЬНО. Выбираем там ВСТРОЕННЫЕ ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА и смотрим, чтобы в строке SATA режим стояло [AHCI режим]. Эта настройка нужна при установке Виндовс на твердотельный SSD диск.
Проверка включения режима AHCI при установке Виндовс на SSD
В той же вкладке ДОПОЛНИТЕЛЬНО, в окне WINDOWS OS CONFIGURATION переключаем для WINDOWS 7 INSTALLATION на ВКЛЮЧЕНО. Если вы ставите Виндовс 8.1 или 10 выбираем одноименный пункт на этом экране.
Выбор варианта установки Виндовса 7 или 8.1 (10)
Переходим к 6-й вкладке загрузка (BOOT). На картинке все написано по-английски, потому что выбран английский язык на 1-й вкладке, я специально так сделал, чтобы показать, как выглядит английский вариант интерфейса Биоса. Здесь важно выставить варианты очереди загрузки, то есть в какой последовательности будут опрашиваться устройства на наличие загрузочных файлов. В этом заключается настройка bios для установки windows 7 (8 или 10) либо с диска, либо с флешки, либо с usb. Я выставил классическую схему: сначала проверяется привод DVD, потом твердотельный SSD диск. Мы будем устанавливать Виндовс 7 с DVD диска, поэтому встроенный привод DVD стоит первым в очереди. После установки Винды мы извлечем установочный диск из привода. Компьютер проверит привод DVD, не найдет там загрузочных файлов и перейдет ко второму устройству: твердотельному диску, на котором уже будет установлен Виндовс, поэтому операционка и будет загружаться. При данной схеме даже не нужно после установки ОС отключать загрузку с DVD в Биосе. Все будет и так работать.
Если ваша ОС будет устанавливаться с флешки или с внешнего DVD привода, подключаемого по usb, то первым в очереди загрузки нужно выбирать соответствующее USB устройство, вместо встроенного DVD привода.
Настройка bios для установки windows 7 с диска
Далее идем в последнюю вкладку SAVE&EXIT (СОХРАНИТЬ И ВЫЙТИ), сохраняем настройки и выходим из Биоса. Но прежде чем выйти из BIOSа нужно открыть привод DVD и вставить установочный диск Windows 7 в привод, поскольку на выключенном компьютере мы этого сделать не сможем, а нам нужно, чтобы диск попал в привод до следующего включения компьютера. Задвигать привод не обязательно, поскольку после включения компьютера он сам задвинется.
Теперь все готово к установке Windows 7 на компьютер. О том, как это сделать читайте в следующей статье про установку Виндовса на новый компьютер, собранный своими руками.
Первый запуск компьютера — важные моменты
Итак, вы приобрели новый компьютер и готовы начать работу. Когда все составляющие компьютера находятся рядом, не подключены между собой, куча разных проводов вокруг, может показаться, что вы с этой задачей не справитесь. На самом деле нет поводов для паники. Первый запуск компьютера состоится по плану.
В большинстве случаев вместе с компьютером идёт небольшое руководство по его подключению. Но, даже если таковой инструкции нет, вы по-прежнему можете самостоятельно собрать воедино все устройства компьютера всего за несколько простых шагов.
Подготовка к запуску портативного компьютера
Если вы купили ноутбук или нетбук, то процедура подготовки перед первым запуском займёт меньше минуты. На некоторых моделях может потребоваться подключить аккумуляторную батарею. Когда батарея на месте, откройте крышку и нажмите кнопку питания. Если аккумулятор не заряжен, вам потребуется подключить адаптер переменного тока, который поставляется вместе с ноутбуком. Во время зарядки вы можете продолжать работу.
Если к ноутбуку требуется подключать периферийные устройства, можете ознакомиться с приведёнными ниже инструкциями, для настольных и портативных компьютеров, как правило, используют те же самые типы соединений.
Подготовка к запуску настольного компьютера
Шаг 1
Распакуйте монитор, системный блок, клавиатуру и другие компоненты компьютера из коробки. Удалить все транспортные, пластиковые покрытия или защитную плёнку. Устанавливайте монитор и системный блок, на рабочее место.
Рекомендации по установке: системный блок размещайте так, чтобы было достаточно пространства для циркуляции воздуха, во избежание перегрева. Монитор лучше расположить так, чтобы источник света располагался слева от монитора, во избежание бликов.
Шаг 2
Возьмите кабель для подключения монитора. В комплекте поставки монитора всегда идёт два кабеля, один для подключения к электросети, другой для подключения к компьютеру (системному блоку). В зависимости от модели монитора, в комплекте может быть VGA, DVI или HDMI кабель. VGA кабель часто иметь синий цвет на фишках разъёмов, чтобы их легче было опознать. Если вы купили моноблок, вы можете перейти к Шагу 4.
(VGA кабель)
(DVI кабель)
(HDMI кабель)
(HDMI-DVI кабель)
Шаг 3
Подключите один конец кабеля к монитору, с выбором порта не ошибётесь, а другой конец к такому же порту, на задней панели системного блока. Будьте внимательны и аккуратны, разъёмы и гнёзда портов имеют геометрическую форму, при правильном подключении усилий не потребуется. Если ваш кабель с винтами, затяните их слегка, чтобы зафиксировать контакт.
Совет: если кабель не «идёт», не пихайте его, или вы можете повредить разъёмы. Убедитесь, что разъём кабеля подходит разъёму на компьютере, а затем подключите его.
Шаг 4
Возьмите клавиатуру и определите, каким разъёмом она подключается к компьютеру. Это может быть USB (прямоугольный разъём белого или чёрного цвета) или PS/2 (круглый разъем фиолетового цвета).
Если используется USB-разъём, подключите его к любому из USB-портов на задней панели компьютера. Если используется разъем PS/2, подключите его к фиолетовому круглому порту на задней панели компьютера.
Шаг 5
Возьмите мышь и определите, каким разъёмом она подключается к компьютеру. Это может быть USB (прямоугольный разъём белого или чёрного цвета) или PS/2 (круглый разъём зелёного цвета). Если у вашей мышки USB-разъём, подключите его к любому из свободных USB-портов на задней панели компьютера. Если используется разъем PS/2, подключите его к зелёному круглому порту на задней панели компьютера.
Если на вашей клавиатуре имеется USB порт, вы можете подключить мышь, в клавиатуру вместо прямого подключения к компьютеру. Или в этот порт можно подключить USB фонарик для подсветки клавиатуры и рабочего стола. А также наличие USB порта удобно при подключении «флешки», не нужно искать разъём на компьютере, все под руками.
Если у вас беспроводная мышь или клавиатура, возможно, потребуется подключить Bluetooth адаптер (USB-адаптер), он идёт в комплекте с беспроводным устройством.
Шаг 6
Если у вас есть динамики или наушники, вы можете подключить их к компьютеру в аудио порт (на передней или задней панели системного блока). Эти порты имеют разные цвета, как и штекеры для подключения. Колонки или наушники подключитесь к зелёному порту, микрофон подключается к розовому (красному) порту. По цвету штекера не ошибётесь. Синий порт использоваться с другими типами устройств.
Некоторые колонки, наушники и микрофоны имеют разъёмы USB вместо обычного аудиоразъёма. Они могут быть подключены к любому USB порту. Кроме того, некоторые мониторы имеют встроенные колонки и микрофон, их также нужно будет подключить к системному блоку. Для этого используются те же цветные разъёмы.
Шаг 7
Возьмите два кабеля питания, поставляемых вместе с компьютером и монитором. Подключите первый кабель питания к гнезду на задней панели системного блока, затем в сетевой фильтр. Затем, используя другой кабель, подключите монитор к сетевому фильтру.
Шаг 8
Наконец, подключите сетевой фильтр в розетку. Вам также может понадобиться включить сетевой фильтр на нём имеется выключатель питания.
Шаг 7 и 8 описывает схему подключения к электросети №1. Эту схему можно использовать временно, так как в нашей электросети бывают частые скачки напряжения, а бывают и внезапные отключения. А такие скачки и отключения пагубно влияют на компьютерную технику и могут привести к её поломке.
А теперь буквально в двух словах остановимся на подключении периферийных устройств к компьютеру.
Подключение периферийных устройств к компьютеру или ноутбуку
Принтер, сканер, веб-камеру, или другие периферийные устройства, нужно подключить перед запуском компьютера. Многие периферийные устройства относятся к категории plug and play, такие устройства будут распознаны компьютером, как только будет выполнена загрузка операционной системы (ОС).
Большинство периферийных устройств подключаются через порты USB, которые имеют одинаковый разъём для подключения к компьютеру (прямоугольный) и несколько иной формы для подключения к устройству. По форме и размеру порта на устройстве вы поймёте что и куда подключать.
Периферийные устройства требую предварительной установки программного обеспечения прежде, чем вы сможете использовать их. Установка такого программного обеспечения не составит труда, главное читайте, что предлагает программа-установщик и следуйте инструкциям (в общем, читайте и нажимайте кнопку «Далее»).
В целом, периферийные устройства можно подключить и позже, необязательно подключать все периферийные устройства во время первого запуска компьютера.
Теперь ваш компьютер готов к первому запуску, — Включаем!
Друзья, поддержите нас! Поделитесь статьёй в социальных сетях:
О работе ПК ч.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 не имеет значение какой порт или источник данных от устройства используется.