Процесс загрузки Linux. Всё, что вам нужно знать

  Дмитрий Бушуев  | 

  Обновл. 13 Ноя 2021  | 

 695

Вы когда-нибудь интересовались различными этапами загрузки операционной системы? Что происходит, когда вы включаете свой компьютер?

Этапы процесса загрузки Linux условно можно разделить на:

   Загрузка BIOS (POST).

   Первый этап загрузки (MBR или GPT).

   Второй этап загрузки (GRUB2).

   Инициализация ядра.

   Инициализация главного процесса (init или systemd).

   Уровни выполнения (runlevels).

Сейчас мы их и рассмотрим.

Загрузка BIOS (POST)

BIOS (сокр. от «Basic Input/Output System») — это низкоуровневое программное обеспечение (прошивка), хранящееся на небольшом чипе памяти материнской платы вашего компьютера. Оно облегчает процесс запуска компьютера, а также управляет потоком данных между ним и другими подключенными к компьютеру устройствами, такими как: мышь, принтер, монитор и пр. Когда вы нажимаете кнопку питания, первым инициализируется BIOS, который начинает поиск загрузочного устройства для запуска операционной системы.

Если процесс инициализации BIOS и поиск загрузочного устройства завершаются успешно, то компьютер издает один звуковой сигнал, а затем еще один, когда система готова к загрузке операционной системы. Данный этап носит название POST (сокр. от «Power-On Self-Test» — самотестирование при включении). POST проверяет работоспособность системного оборудования и находит загрузочный сектор, который содержит программное обеспечение, необходимое для продолжения процесса загрузки. POST выполняется программами, входящими в BIOS.

Вы можете использовать функциональные клавиши (F1-F12) в режиме BIOS, чтобы задать приоритет загрузки устройств, настроить параметры аппаратного обеспечения компьютера или восстановить заданные по умолчанию значения параметров компьютера. В меню BIOS вы найдете номер версии BIOS, наименование поставщика BIOS, тип вашего процессора и другую подробную информацию о системе.

Меню загрузки в BIOS (Boot Manager) представляет собой список, в котором вы можете выбрать загружаемую операционную систему. Если на вашем компьютере установлено несколько дистрибутивов Linux или других операционных систем, вы можете добавить их в меню загрузки. Последняя установленная ОС будет показана в верхней части Boot Manager.

На следующем рисунке вы можете видеть, что на моем компьютере установлены Ubuntu и Windows. Я могу выбрать любую операционную систему (из доступных) для загрузки.


Первый этап загрузки (MBR или GPT)


К загрузчикам первого этапа относятся MBR (сокр. от «Master Boot Record») и GPT (сокр. от «Guided Partition Table»). MBR содержит таблицу разделов диска и находится в первом секторе загрузочного диска, обычно это /dev/hda или /dev/sda, в зависимости от вашего оборудования. Основная задача MBR — это «переход» в тот раздел диска, с которого необходимо выполнять дальнейший код загрузки операционной системы.

Как только MBR обнаруживает загрузчик второго этапа, то передает управление на него.

Примечание: Стоит отметить, что сейчас все чаще вместо MBR используется более современная технология — GPT.

Второй этап загрузки (GRUB2)

Задача загрузчика второго этапа состоит в том, чтобы найти ядро системы и загрузить его в память.

Большинство дистрибутивов Linux используют в качестве загрузчика GRUB (сокр. от «GRand Unified Bootloader») или GRUB2 (как более современный). Поскольку GRUB2 является более новой версией GRUB, то именно эту версию вы увидите в большинстве случаев при загрузке компьютера. В данном загрузчике есть простое меню, в котором вы можете выбрать опции загрузки. Если у вас установлено несколько различных ядер, вы можете использовать клавиатуру, чтобы выбрать именно то ядро, с которым хотите загрузить свою систему:

Конфигурационными файлами загрузчика GRUB обычно являются файлы /boot/grub/grub.conf или /etc/grub.conf. Как только загрузчик находит ядро, то загружает его в оперативную память и передает ему дальнейшее управление.

Примечание: Раньше в дистрибутивах Linux использовался преимущественно загрузчик LILO (сокр. от «LInux LOader»). Но на сегодняшний день его полностью вытеснил более современный GRUB.

Инициализация ядра


Большинство новых пользователей Linux считают, что Linux — это операционная система. Но на самом деле Linux — это ядро. Ядро часто называют сердцем операционной системы. Оно играет очень важную роль в процессе загрузки Linux. Ядро Linux находится в каталоге /boot и отвечает за взаимодействие между основными компонентами компьютера и операционной системой.

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

Файлы ядра Linux

Инициализации главного процесса (init или systemd)

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

Примечание: В системе инициализации SysV главным процессом является процесс init, а в системе инициализации systemd — (одноименный) процесс systemd.

Уровни выполнения (runlevels)


Уровень выполнения (runlevel) — это непосредственное состояние операционной системы (например, когда Linux завершил процесс загрузки и готов к использованию), в котором можно управлять параметрами питания, пользовательским режимом и всем окружением. Когда система переходит на соответствующий уровень выполнения, на экран продолжат выводиться сообщения главного процесса инициализации. Стандартное ядро Linux поддерживает семь различных уровней выполнения:

   Runlevel 0 — завершает работу системы.

   Runlevel 1 — однопользовательский режим работы. Чаще всего используется в целях обслуживания и выполнения других административных задач. Этот уровень также может называться Runlevel S (от англ. «Single-user»). Если вам когда-либо приходилось сбрасывать пароль на Linux, то вы вероятно уже пользовались этим режимом.

   Runlevel 2 — многопользовательский режим работы (англ. «multi-user») без поддержки сетевых служб.

   Runlevel 3 — многопользовательский режим с поддержкой сети, но без графического интерфейса. Чаще всего серверные версии Linux работают именно на этом уровне выполнения.

   Runlevel 4 — не используется. Пользователь может настраивать этот уровень исходя из его целей.

   Runlevel 5 — схож с режимом 3, но здесь запускается графический интерфейс. В этом режиме работают десктопные версии Linux.

   Runlevel 6 — перезагружает систему.

Примечание: В системах семейства Debian уровни выполнения выстроены немного иначе. Например, Ubuntu в режиме командой строки запускается с уровнем выполнения 5.

В процессе загрузки Linux состояние уровня выполнения представлено буквенно-цифровым кодом. Если вы посмотрите на скриншот, приведенный ниже, вы увидите, что мой текущий уровень выполнения равен N 5; это означает, что мой компьютер уже завершил процесс загрузки, и работает в многопользовательском режиме с графическим интерфейсом.

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

sudo runlevel

Если вам по какой-либо причине потребуется изменить уровень выполнения, то это можно сделать с помощью следующей команды:

sudo telinit [номер_уровня]

Заключение

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


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (6 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *