Как компьютер загружается: Как происходит загрузка компьютера — Журнал «Код» программирование без снобизма

Как происходит загрузка компьютера — Журнал «Код» программирование без снобизма

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

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

Воткнули вилку в розетку

Чаще всего компьютер включён в сеть постоянно, и это значит, что блок питания подаёт на материнскую плату совсем небольшой ток. Ток настолько мал, что внутри блока питания ничего не греется, поэтому не нужно включать никакие вентиляторы. 

Ток поступает на контакты питания материнской платы, а оттуда — на системный контроллер. Системный контроллер — специальная микросхема (или группа микросхем), которая управляет всем, что находится на материнской плате, включая процессор и оперативную память. Когда есть питание, системный контроллер просто ждёт, пока пользователь не нажмёт кнопку включения компьютера.

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

Нажали кнопку включения

После нажатия кнопки включения системный контроллер получает от неё сигнал и говорит блоку питания: «Мне нужно больше тока». Блок начинает полноценно работать и подаёт полноценное питание на материнскую плату и остальные компоненты — теперь начинают работать все основные компоненты компьютера:

  • процессор,
  • оперативная память,
  • микросхемы 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 он выглядит так:

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

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

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

Вход пользователя в систему

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

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

И всё.

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Процесс загрузки персонального компьютера — База полезных знаний

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

В момент нажатия на кнопку включения происходит жесткий сброс большинства компонентов компьютера, после чего, если это компьютер с BIOS, выполняется программа POST. Она ищет грубые ошибки оборудования и выдает одиночный звуковой сигнал, если оборудование прошло тест, либо серию звуковых сигналов, в последовательности которых закодирован код ошибки. Если тест POST не пройден, то пользователь увидит лишь черный экран, так как видеоподсистема на данном этапе еще не проинициализирована. В этот момент компьютер работает в 16-ти битном режиме и доступен только 1Мб памяти.

В случае успешного завершения POST управление передается BIOS. Он выполняет инициализацию оборудования с настройками, заданными пользователем в утилите настройки BIOS, запустить которую можно клавишами Del, F2 или Enter. Все зависит от производителя материнской платы. Из-за большого разнообразия графических карт каждая из них имеет свой собственный BIOS, который и выполняет инициализацию графической подсистемы. В последнюю очередь происходит инициализация дисковых устройств. Затем BIOS перебирает список загрузочных устройств в поисках MBR. MBR — это главная загрузочная запись, которая уже и осуществляет загрузку операционной системы.

Код из MBR запускает файл NTLDR — загрузчик операционных систем семейства Windows NT до Windows Vista. Он запускает программу ntdetect.com, которая собирает сведения об оборудовании. Затем компьютер переводится в 32-х битный режим, после чего в память загружается ntoskrnl.exe — ядро операционной системы, которому и передаются собранные параметры. Затем запускаются сервисы и окружение рабочего стола, после чего пользователь может приступать к работе. Файл boot.ini, расположенный в корне диска C:\, содержит параметры загрузки и список операционных систем для выбора, если их на компьютере установлено несколько.

Если на компьютере вместо BIOS стоит UEFI, то вместо NTLDR загрузку операционной системы будет производить Windows Boot Manager. Для успешной загрузки компьютера с UEFI его диск должен быть отформатирован в GPT и иметь раздел с идентификатором EF00 и файловой системой FAT32. На данном разделе должна располагаться микропрограмма, которая и произведет загрузку операционной системы. В отличие от BIOS UEFI позволяет работать с архитектурами x86 и x86_64, способен работать с дисками, объем которых превышает 2 Тб, организует интерфейс взаимодействия с оборудованием без необходимости задействовать драйвера на начальном этапе загрузки.

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

Последовательность запуска компьютера

На этом этапе вы узнаете, как компоненты компьютера работают вместе с момента нажатия кнопки «вкл.».

Последовательность запуска

С того момента, как вы нажимаете кнопку питания, внутри вашего компьютера происходит вихрь задач.

Давайте рассмотрим каждый из компонентов и систем, которые работают вместе, чтобы запустить ваш компьютер.

CPU

CPU , или центральный процессор, представляет собой большой чип внутри компьютера. Это мозг компьютера: он всем управляет. Он работает, считывая инструкции и данные из оперативной памяти (ОЗУ), выполняя инструкции, а затем записывая данные обратно в ОЗУ. Некоторые инструкции могут включать в себя другие компоненты, такие как жесткий диск, но ЦП находится под контролем.

ОЗУ

ОЗУ временно хранит данные во время работы компьютера.

  • ОЗУ доступно как для чтения, так и для записи. Вы можете добавлять, изменять и удалять данные, хранящиеся в оперативной памяти.
  • Это нестабильно. При выключении компьютера все данные, хранящиеся в оперативной памяти, теряются.
  • Это быстро.
ПЗУ

ПЗУ обозначает постоянную память. Это чип, содержащий данные, установленные производителем, который обычно не заменяется или не обновляется. В нем хранится БИОС.

  • ПЗУ доступно только для чтения. Обычно он запрограммирован производителем компьютера и не может быть изменен или перезаписан. (Существует процесс перезаписи ПЗУ, называемый «перепрошивкой», но это сложно и может привести к полной поломке и невозможности восстановления компьютера.)
  • ПЗУ

  • является энергонезависимой памятью, что означает, что ему не требуется питание для хранения данных внутри него.
  • Это быстро.
Жесткий диск

Жесткий диск (иногда называемый жесткий диск ) является основным запоминающим устройством на вашем компьютере. Как и ОЗУ, его можно добавлять и изменять, и, как и ПЗУ, оно энергонезависимо, но работает медленно. Если у вас есть файлы и папки на вашем компьютере, они хранятся на жестком диске. Операционная система также хранится на жестком диске.

BIOS

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

При включении компьютера может появиться черный экран с надписью «Нажмите F2 для настройки» . Это БИОС. Нажав F2, вы попадаете на экран настройки, где вы можете изменить, откуда BIOS загружает операционную систему.

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

Последовательность запуска

Итак, как эти компоненты используются в последовательности запуска?

  • ЦП запускается и получает инструкции в ОЗУ из BIOS, которые хранятся в ПЗУ.
  • BIOS запускает монитор и клавиатуру и выполняет некоторые базовые проверки, чтобы убедиться, что компьютер работает правильно. Например, он будет искать оперативную память.
  • Затем BIOS запускает последовательность загрузки. Он будет искать операционную систему.
  • Если вы не измените ни один из параметров, BIOS доставит операционную систему с жесткого диска и загрузит ее в оперативную память.
  • Затем BIOS передает управление операционной системе.

Много информации и сокращений!

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

Пример урока

Дайте учащимся или группам учащихся по одному компоненту:

  • ЦП
  • БИОС
  • ПЗУ
  • ОЗУ
  • Операционная система

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

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

Пройти простой сценарий. Например: «Я пишу документ в Word, и мой компьютер зависает. Что делает ОЗУ?»

Попросите учеников физически бросить лист бумаги, лежавший на столе RAM, в мусорное ведро. Он потерян без силы. Выбросьте данные ПЗУ в мусорное ведро и спросите у студентов: это правильно?

Выполните более сложную последовательность запуска. Возьмите карточку со словом КОНТРОЛЬ, чтобы указать, кто имеет контроль. Каждая команда должна сказать, что они делают, как они это делают. Например:

Я БИОС. Я просто собираюсь пойти сюда и проверить, есть ли у меня немного оперативной памяти.

Дай пять команде оперативной памяти

ОК, оперативная память есть. Теперь буду искать операционную систему.

Перейдите и поставьте лайк команде ОС

Подниму ОС и поставлю в оперативку.

Команда ОС следует за BIOS к таблице ОЗУ

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

Физическое моделирование последовательности запуска — отличная возможность для обучения студентов. Как только они смогут визуально увидеть, что происходит с компонентами во время запуска, им будет легче запомнить последовательность.

Для более подробного описания того, что происходит внутри некоторых из этих компонентов, ознакомьтесь с нашим курсом How Computers Work .

Что происходит, когда мы включаем компьютер?

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

Обзор процесса загрузки  

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

Микросхема BIOS указывает ему искать в фиксированном месте, обычно на жестком диске с наименьшим номером (загрузочный диск), специальную программу, называемую загрузчиком (в Linux загрузчик называется Grub или LILO). Загрузчик загружается в память и запускается. Задача загрузчика — запустить настоящую операционную систему.

Функции BIOS

1. POST (самотестирование при включении): Самотестирование при включении питания выполняется каждый раз при включении компьютера. Звучит сложно, потому что так оно и есть. Ваш компьютер так много делает, когда он включен, и это только часть этого.

  • Инициализирует различные аппаратные устройства.
  • Это важный процесс, обеспечивающий бесперебойную работу всех устройств без каких-либо конфликтов. BIOS, следующие за ACPI, создают таблицы, описывающие устройства в компьютере.
  • POST сначала проверяет BIOS, а затем тестирует CMOS RAM.
  • Если с этим проблем нет, то POST продолжает проверять ЦП, аппаратные устройства, такие как видеокарта, и дополнительные устройства хранения, такие как жесткий диск, дисководы для гибких дисков, Zip-диск или дисководы CD/DVD.
  • При обнаружении ошибок на экране отображается сообщение об ошибке или раздается несколько звуковых сигналов.
  • Эти звуковые сигналы называются звуковыми сигналами POST.

2. Основная загрузочная запись: Основная загрузочная запись (MBR) — это специальный загрузочный сектор в начале диска. MBR содержит код, который загружает остальную часть ОС, известный как загрузчик. Этот сложный процесс (называемый процессом загрузки) начинается с POST (самотестирования при включении питания) и заканчивается, когда Bios ищет MBR на жестком диске, который обычно находится в первом секторе, первой головке, первом цилиндре (цилиндр 0). , голова 0, сектор 1).
Типичная структура выглядит следующим образом: 

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

3. init: init — последний шаг последовательности загрузки ядра. Он ищет файл /etc/inittab , чтобы узнать, есть ли запись для initdefault . Он используется для определения начального уровня запуска системы. Уровень выполнения используется для определения начального состояния операционной системы.
Некоторые из уровней выполнения: 

  • Уровень 0: Останов системы.
  • Уровень 1: Однопользовательский режим.
  • Уровень 2: Полный многопользовательский режим без сети.
  • Уровень 3: Полный многопользовательский режим с сетью.
  • Уровень 4: определяется пользователем.
  • Уровень 5: Полный многопользовательский режим с сетью и менеджером отображения X.
  • Уровень 6: Перезагрузка.

Приведенный выше проект init называется SysV — произносится как System Five. На данный момент написано несколько других реализаций init. Некоторые из популярных реализаций — это systemd и upstart. Upstart используется Ubuntu с 2006 года. Более подробную информацию о выскочке можно найти здесь.

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