Yandex
Обновить настройки cookies

Как запускается сервер

Даже опытные системные администраторы иногда ощущают затруднения в понимании всех этапов, которые происходят во время запуска сервера. Именно поэтому мы решили подробно рассмотреть этот процесс. Для наглядности рассмотрим запуск сервера при процессоре Intel архитектуры 64 бит; в режиме Legacy; дисковой разметке MBR; загрузчике GRUB2.

Запуск


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

Сброс


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

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

Стабилизация


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

Что такое BIOS


Это система, которая предоставляет управление программным интерфейсом для взаимодействия с аппаратным обеспечением и устройствами. Главной задачей BIOS является инициализация и проверка оборудования, как только запускается сервер.

BSP


При включении сервера активируется только одно ядро одного процессора  - базовое (BSP). Остальные ядра остаются в режиме ожидания. После того, как сигнал Reset исчезает, регистры процессора устанавливаются в специфическое состояние, чтобы процессор мог функционировать в особом 32-битном Режиме Начального Процессора.
В нем процессор может выполнять команды, предназначенные для 32-битных систем и использовать адресное пространство объемом 4 ГиБ.

Reset Vector


После активации сигнала сброса, счетчик команд процессора указывает на адрес 0xFFFFFFF0, который известен как Вектор Сброса. По нему располагается первая команда, которую процессор декодирует и выполняет.

В режиме Legacy эта команда представляет собой Far Jump в сегмент памяти с кодом BIOS. После ее выполнения процессор переходит в 16-разрядный Real Mode и начинает выполнение кода BIOS.

Real Mode


Это режим совместимости с устаревшими 16-битными процессорами, предлагающий доступ только к 16-битным командам и ограничивающий адресное пространство нижней памятью до 1 МиБ.

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

POST - включение автоматического тестирования


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

Упрощенное тестирование при включении ускоряет процесс загрузки и включает только минимально необходимые действия:

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

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

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

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

BIOS Setup Utility


Это специальное меню настройки в BIOS. Для его открытия необходимо нажать Del и F2 во время POST. При загрузке всегда показывается сочетание необходимых клавиш.
Один из важных параметров здесь - приоритет загрузки (Boot Priority), который определяет последовательность проверки устройств на наличие загрузочной информации. Как только подходящее устройство обнаружено - управление передается загрузчику и начинается загрузка операционной системы.

Загрузчик


В режиме Legacy загрузчик называется Master Boot Record (MBR), занимает первые 512 байт диска, в которых можно прочитать код первичной загрузки - с 0 по 445 байт;
таблицу разделов - с 446 по 509 байт; магическое число 0xAA55 - с 510 по 511 байт.

Если число 0xAA55 отсутствует, то это означает, что запись MBR на данном диске не найдена и BIOS переходит к проверке следующего диска.

Когда BIOS находит запись MBR, она копируется в оперативную память по адресу 0x7C00, а затем BIOS делает прыжок по этому адресу. После этого начинается загрузка в память кода второго этапа, и ему передается управление. Этот участок данных занимает 31 КБ памяти, в современных системах он может быть расширен до 1 МБ.

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

Задачи третьего этапа заключаются в минимальной настройке окружения и загрузчика:
переводе процессора в Protected Mode; загрузке установленных расширений GRUB2; поиске четвертого этапа и передаче ему управления.

Protected Mode - режим совместимости, предназначенный для работы с x86 процессорами. Процессор может выполнять 32-битные команды, адресное пространство расширяется до 4 ГиБ. В Protected Mode внедрены важные новшества: страничная адресация памяти; виртуальная память; кольца защиты.

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

The tasks of the third stage are to minimally customize the environment and the bootloader:
putting the processor into Protected Mode; loading the installed GRUB2 extensions; finding the fourth stage and handing over control to it.

Protected Mode is a compatibility mode designed to work with x86 processors. The processor can execute 32-bit instructions and the address space is expanded to 4 GB. Important innovations are introduced in Protected Mode: paged memory addressing; virtual memory; protection rings.

At the fourth stage the system already functions in 32-bit mode. If necessary, extensions for the GUI are loaded from disk, then the grub.cfg file is processed and the familiar operating system selection menu appears.

Ядро операционной системы


GRUB2 использует стандарт Multiboot для загрузки исполняемого файла ядра. Проверяется магическое число 0x1BADB002 в начале ядра и контрольная сумма для проверки совместимости со спецификацией. Ядро загружается в ОС и получает управление.

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

Long Mode


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

Ядро настраивает страничную адресацию памяти. Загружает необходимые драйверы и инициализирует оборудование. Настраивает планировщики для управления памятью и запущенными процессами. Обнаруживает и запускает процесс init.

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

Проблемы с сервером при включении - как исправить ситуацию?


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

Резюме


Запуск сервера с загрузкой операционной системы - сложный и запутанный процесс со множеством тонких деталей. Его прохождение - своего рода эволюция, которую ваш подопечный должен успешно пройти.
04 Jul 2024, 19:21:45