Найти в Дзене
Chris Roylance

Записки системного администратора. Linux. Основные компоненты.

Данный цикл статей познакомит вас с миром Linux и его основными компонентами, а также будем разбирать установку разных программ и различными вариациями их конфигурации. В цикле статей буде использоваться Debian 12 и выше. В этой статье мы поговорим о том, из чего состоит Linux. И начнем мы по порядку, от самого ближнего к bios. В дальнейшем будут выпущены еще статьи, в которых мы уже подробней по всем этим пунктам и местами даже задержимся надолго. Разбор основных компонентов будет разделен на несколько статей. Первым при запуске любой операционной системы (далее ОС) нас встречает “Загрузчик” ОС. У каждого типа ОС свой тип загрузчика. В мире Linux ролью загрузчика занимается GNU GRUB. На сегодняшний день в большинстве дистрибутивов Linux используется GRUB 2. Но первую версию все еще можно скачать и использовать, в данный момент он называется «GRUB Legacy». Также еще существует загрузчик под названием Syslinux. Главная цель загрузчика – произвести инициализацию ядра Linux системы или л
Оглавление

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

В этой статье мы поговорим о том, из чего состоит Linux. И начнем мы по порядку, от самого ближнего к bios. В дальнейшем будут выпущены еще статьи, в которых мы уже подробней по всем этим пунктам и местами даже задержимся надолго. Разбор основных компонентов будет разделен на несколько статей.

Загрузчик

Первым при запуске любой операционной системы (далее ОС) нас встречает “Загрузчик” ОС. У каждого типа ОС свой тип загрузчика. В мире Linux ролью загрузчика занимается GNU GRUB. На сегодняшний день в большинстве дистрибутивов Linux используется GRUB 2. Но первую версию все еще можно скачать и использовать, в данный момент он называется «GRUB Legacy». Также еще существует загрузчик под названием Syslinux.

Главная цель загрузчика – произвести инициализацию ядра Linux системы или любой другой ОС, так и предоставлять выбор загрузки из нескольких ОС. Для этого загрузчику необходимо знать, где находиться ядро ОС и произвести его считывание (в случае с Debian, уметь считать данные из файловой системы ext4). В помощь в загрузке Linux GRUB использует начальный образ загрузки.

По мимо роли загрузчика, GRUB еще умеет строить интерфейсы для выбора загрузки, имеет богатое оснащение расширяемыми модулями.

Ядро

Ядро операционной системы, созданное, чтобы работать с POSIX-совместимыми окружениями и прикладными программами. Чаще всего находиться в /boot/ и содержит в названии слово vmlinuz, где «vm» напоминает нам о поддержке виртуальной памяти, а «z» указывает, что файл сжат. В рамках одного дистрибутива может поддерживаться несколько вариантов ядра, с разным циклом поддержки и обновления.

Начальный образ загрузки

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

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

В чистом Linux данный образ не поставляется. Но в уже готовых дистрибутивах например Debian, Ubuntu, Fedora и других, данный загрузочный образ уже поставляется как преопределенным под формат изначальной вариации установки системы.

Для создания таких образов существуют специальные фреймворки: initramfs-tools, Dracut, mkinitcpio, make-initrd.

Система инициализации (init)

Система инициализации – это сердце любой Linux. Данная система позволяет инициализировать, останавливать и отслуживать состояние всех сервисов которые существуют в системе. Система инициализации всегда стартует первой в системе и занимает PID 1. Независимо от того, что за система инициализации представлена, она предлагает исполняемые файлы /sbin/init (или /usr/bin/init, или подобный вариант в зависимости от нестандартности сборки).

На данный момент существует несколько систем инициализации: OpenRC от Gentoo, Upstart от Canonical, Systemd от Red Hat. Но по итогу в большинстве дистрибутивов сейчас можно встретить только systemd.

Командная оболочка

Командная оболочка или по простому shell, случат частью системы и стандарта POSIX. Shell необходим для работоспособности всей ОС в целом. Также существует так называемый (login shell — это первый процесс, запускаемый при входе пользователя. Он подтягивает опции и переменные окружения из конфигурационных файлов, все последующие процессы запускаются в контексте этого шелла. Что будет запущено в качестве оболочки входа, определяется в /etc/passwd.

Во второй части мы с вами рассмотрим основные компоненты, которые необходимы Linux для работы в варианте desktop-системы.