Интернет магазин китайских планшетных компьютеров



Компьютеры - Процесс загрузки Linux - Фаза ядра

25 апреля 2011


Оглавление:
1. Процесс загрузки Linux
2. Фаза загрузчика
3. Фаза ядра
4. Процесс init



Ядро Linux управляет главными функциями, такими как управление памятью, диспетчер задач, ввод-вывод, межпроцессное взаимодействие и общее управление системой. Загрузка проходит в два этапа: на первом ядро загружается в память и распаковывается, далее настраиваются такие базовые функции как основное управление памятью. Затем управление в последний раз передается основному процессу запуска ядра. Как только ядро становится полностью работоспособным, оно находит и запускает процесс init, который самостоятельно настраивает пользовательское пространство и процессы, необходимые для функционирования пользовательского окружения и итогового входа в систему. Само ядро переходит в режим бездействия и готовности к вызовам со стороны других процессов.

Этап загрузки ядра

Ядро при загрузке обычно имеет вид файла-образа, сжатого в формат zImage или bzImage с помощью zlib. В нём содержится головная программа, которая проводит минимальную настройку оборудования, распаковывает образ целиком в верхнюю память и монтирует RAM-диск, если он предусмотрен. После этого она выполняет запуск ядра посредством ./arch/i386/boot/head и процесса startup_32.

Этап запуска ядра

Источник: Описание процесса загрузки Linux фирмой «IBM»   + переведённая версия с того же сайта Подробности процесса загрузки Linux  

Функция запуска ядра организует управление памятью, определяет тип процессора и дополнительные возможности, а затем переключается к архитектурно-независимому функционалу ядра Linux путём вызова start_kernel.

start_kernel выполняет множество задач инициализации. Она настраивает обработчики прерываний, затем настраивает память, запускает процесс Init, а затем запускает задачу бездействия вызовом cpu_idle. Следует заметить, что процесс запуска ядра также монтирует инициирующий RAM-диск, который ранее был загружен в роли временной корневой файловой системы в фазе загрузки. Это позволяет загружать модули драйверов, не опираясь на другие физические устройства и драйверы, и поддерживать небольшой размер ядра. Корневая файловая система впоследствии подменяется с помощью вызова pivot_root, который размонтирует временную и заменяет её настоящей корневой ФС, как только последняя станет доступна. Использованная временной системой память затем освобождается.

Таким образом, ядро инициализирует устройства, монтирует указанную загрузчиком файловую систему в режиме «только чтение» и запускает процесс Init, который обозначается как первый процесс, запущенный системой. Соответствующие сообщения выводит ядро и Init. Ядро также может выполнить Initrd для обработки настроек и инициализации устройств до монтирования корневой файловой системы.

По заявлению компании «Red Hat», детали процесса загрузки на этом этапе можно подытожить так:

« Когда загружается ядро, оно сразу же инициализирует и конфигурирует память компьютера и настраивает различное подключённое к системе оборудование, включая все процессоры, подсистемы ввода-вывода и устройства хранения данных. Затем оно ищет сжатый образ initrd в заранее определённом участке памяти, распаковывает его, монтирует и загружает все необходимые драйверы. Затем оно инициализирует виртуальные устройства, связанные с файловой системой, например LVM или программные RAID-массивы, прежде чем демонтировать образ диска initrd и освободить всю память, ранее занимаемую образом. Потом ядро создает корневое устройство, монтирует корневой раздел только для чтения и освобождает всю неиспользованную память. К этому времени ядро загружено в память и работоспособно. Тем не менее, поскольку нет пользовательских программ для осуществления осмысленного ввода данных в систему, с ней мало что можно делать. »

Теперь, когда включены прерывания, диспетчер может принять общее управление системой, чтобы обеспечить вытесняющую многозадачность, а процесс init остается продолжать загрузку пользовательского окружения в пространстве пользователя.



Просмотров: 4463


<<< Главная загрузочная запись
ATI Technologies >>>