реклама
Бургер менюБургер меню

Инженер – Архитектура системы Linux (страница 3)

18

Программные прерывания — вызов ядра из пользовательского кода через int 0x80 или инструкцию syscall.

Пример системного вызова:

#include <unistd.h>

int fd = open("/etc/passwd", O_RDONLY); // Вызов ядра через glibc

2.4. Модульная архитектура ядра

Linux использует модульное монолитное ядро — компромисс между производительностью и гибкостью:

Монолитность: все компоненты работают в одном адресном пространстве (режим ядра), что ускоряет вызовы.

Модульность: драйверы и функции можно загружать/выгружать динамически (insmod, rmmod).

Преимущества:

высокая скорость работы (нет накладных расходов IPC, как в микроядрах);

простота разработки драйверов;

поддержка «горячей» замены модулей.

Управление модулями:

lsmod — список загруженных модулей;

modinfo — информация о модуле;

/etc/modprobe.d/ — конфигурация загрузки модулей.

2.5. Загрузка ядра и инициализация

Этапы загрузки:

BIOS/UEFI передаёт управление загрузчику (GRUB).

Загрузчик загружает ядро (vmlinuz) и initramfs в память.

Ядро:

распаковывается и инициализирует базовые структуры данных;

монтирует initramfs как временную корневую ФС;

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.