Инженер – Архитектура системы Linux (страница 3)
Программные прерывания — вызов ядра из пользовательского кода через int 0x80 или инструкцию syscall.
Пример системного вызова:
#include <unistd.h>
int fd = open("/etc/passwd", O_RDONLY); // Вызов ядра через glibc
Linux использует модульное монолитное ядро — компромисс между производительностью и гибкостью:
Монолитность: все компоненты работают в одном адресном пространстве (режим ядра), что ускоряет вызовы.
Модульность: драйверы и функции можно загружать/выгружать динамически (insmod, rmmod).
Преимущества:
высокая скорость работы (нет накладных расходов IPC, как в микроядрах);
простота разработки драйверов;
поддержка «горячей» замены модулей.
Управление модулями:
lsmod — список загруженных модулей;
modinfo — информация о модуле;
/etc/modprobe.d/ — конфигурация загрузки модулей.
2.5. Загрузка ядра и инициализация
Этапы загрузки:
BIOS/UEFI передаёт управление загрузчику (GRUB).
Загрузчик загружает ядро (vmlinuz) и initramfs в память.
Ядро:
распаковывается и инициализирует базовые структуры данных;
монтирует initramfs как временную корневую ФС;
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.