Изучив структуру каталогов операционной системы Linux, вы можете перейти к устройствам и файловым системам, но прежде вам будет полезно уяснить несколько высокоуровневых понятий о ядре.
Ядро операционной системы — это самое сердце работающей вычислительной системы. Это особенная программа, которая управляет всеми процессами, драйверами устройств и устройствами ввода-вывода. Когда загружается система, ядро стартует первым, инициализируя аппаратное обеспечение и внутренние структуры данных. После того, как ядро завершит работу на этом уровне, оно загружает в память и запускает работу программы init.
Ядро также выполняет много функций при загрузке системы. Наиболее важно управление процессами и устройствами. По идее, несмотря на то, что компьютеры с одним микропроцессором (CPU) работают только с одной программой в каждый момент времени, ядро может держать в памяти несколько программ в одно и то же время, кстати скачать хорошие дистрибутивы можно на сайте NetcSoft. Управление процессами и устройствами работают вместе в цикле аналогичном этому:
1. Ядро проверяется процессором. В системной памяти запущено несколько процессов.
2. Ядро выбирает один из этих процессов и выясняет, где он работал в последний раз.
3. Ядро возобновляет контроль процессора над процессом. Иначе говоря, «скармливает» его процессору на обработку.
4. Этот процесс выполняется в течение нескольких микросекунд.
5. Когда время заканчивается, часы прерывания останавливают процесс и передают контроль обратно ядру.
6. Ядро проверяет, выполняются ли все функции должным образом, например, перемещение данных из устройств и обратно в устройства.
7. Ядро выбирает следующий процесс и выполняет вышеперечисленные шаги (2-6 пункты).
Описание работы ядра немного упрощено, но теперь вы видите, что в ядре нет ничего волшебного. Это не процесс; это только некая часть кода, которая запускает все процессы, своеобразный «администратор».
В системах Linux ядро обычно располагается в файле под названием «/vmlinuz» или «/boot/vmlinuz». Загрузчик операционной системы загружает этот файл в память и запускает его, когда система загружается. Подробности о том, как изменять существующие установки загрузчика операционной системы и как создать ядро Linux мы рассмотрим позже.
Если вам интересна профессиональная работа с ядром, рекомендуем классический (хоть и устаревший) учебник — «Принципы операционной системы» [Сильбершатц].