Ядро ОС Linux

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

Ядро операционной системы — это самое сердце работающей вычислительной системы. Это особенная программа, которая управляет всеми процессами, драйверами устройств и устройствами ввода-вывода. Когда загружается система, ядро стартует первым, инициализируя аппаратное обеспечение и внутренние структуры данных. После того, как ядро завершит работу на этом уровне, оно загружает в память и запускает работу программы init.

Ядро также выполняет много функций при загрузке системы. Наиболее важно управление процессами и устройствами. По идее, несмотря на то, что компьютеры с одним микропроцессором (CPU) работают только с одной программой в каждый момент времени, ядро может держать в памяти несколько программ в одно и то же время, кстати скачать хорошие дистрибутивы можно на сайте NetcSoft. Управление процессами и устройствами работают вместе в цикле аналогичном этому:

1. Ядро проверяется процессором. В системной памяти запущено несколько процессов.
2. Ядро выбирает один из этих процессов и выясняет, где он работал в последний раз.
3. Ядро возобновляет контроль процессора над процессом. Иначе говоря, “скармливает” его процессору на обработку.
4. Этот процесс выполняется в течение нескольких микросекунд.
5. Когда время заканчивается, часы прерывания останавливают процесс и передают контроль обратно ядру.
6. Ядро проверяет, выполняются ли все функции должным образом, например, перемещение данных из устройств и обратно в устройства.
7. Ядро выбирает следующий процесс и выполняет вышеперечисленные шаги (2-6 пункты).

Описание работы ядра немного упрощено, но теперь вы видите, что в ядре нет ничего волшебного. Это не процесс; это только некая часть кода, которая запускает все процессы, своеобразный “администратор”.

В системах Linux ядро обычно располагается в файле под названием “/vmlinuz” или “/boot/vmlinuz”. Загрузчик операционной системы загружает этот файл в память и запускает его, когда система загружается. Подробности о том, как изменять существующие установки загрузчика операционной системы и как создать ядро Linux мы рассмотрим позже.

Если вам интересна профессиональная работа с ядром, рекомендуем классический (хоть и устаревший) учебник — “Принципы операционной системы” [Сильбершатц].