На днях с одним знакомым обсуждали скорость загрузки наших компьютеров, мол почему у одного ОС загружается быстрее, чем другого. В итоге начали обсуждать что происходит с компьютером во время загрузки, то есть до появления рабочего стола. В связи чем и родилась эта статья.(На примере Ubuntu)
Самый первый шаг – мы нажимаем на кнопку включения компьютера. С этого момента начинает загружаться BIOS компьютера. BIOS опрашивает все компоненты компьютера, проверяет их работоспособность. Дальше он ищет и загружает программу-загрузчик ОС в память. Далее все управление загрузкой передается загрузчики (MBR).
MBR — это главная загрузочная запись, размещенная в 1-м секторе загрузочного диска. MBR загружает и выполняет загрузчик Grub (или Lilo).
Grub дает возможность выбрать, какое ядро следует загружать (если их несколько), а также вы сможете выбрать другую установленную ОС (например, Windows).
После Grub-а загружается выбранное ядро (kernel). Ядро монтирует временную файловую систему в оперативную память initrd – Initial RAM Disk. Он используется самим ядром как корневая файловая система, пока kernel не загрузится в реальную файловую систему. На этом содержатся драйверы, необходимые для загрузки и позволяющие получить доступ к разделам дисков и другому установленному на компьютере оборудованию.
Затем ядро монтирует файловую систему и выполняет самую первую программу /sbin/init.
В свою очередь init смотрит в файл /etc/inittab для того, чтобы определить уровень выполнения (run level). Всего их семь:
0 – прервать выполнение,
1 – однопользовательский режим (single user mode), т. е. консоль восстановления,
2 – многопользовательский режим без поддержки NFS,
3 – полноценный многопользовательский режим,
4 – этот уровень не используется,
5 – X11,
6 – перезагрузка.
И последний шаг загрузки – уровень выполнения программ (Runlevel).
На этом этапе загружаются основные службы. Они запускаются из директории, которая соответствует нужному уровню выполнения.
Всего имеется семь каталогов, по одному на каждый уровень, от 0 до 6: /etc/rc0.d/, /etc/rc1.d/, /etc/rc2.d/, /etc/rc3.d/, /etc/rc4.d/, /etc/rc5.d/, /etc/rc.d/rc6.d/.
В этих каталогах расположены программы (вернее ссылки на них в каталоге /etc/init.d), имена которых начинается из букв S и K. S - используются для запуска (startup). K – для завершения работы (kill).
Номера рядом с буквами S и K в именах программ используются для определения порядка запуска этих программ.
После всей этой магии появляется рабочий стол. Стоит отметить, что в зависимости от вашей ОС, загрузка может проходить немного иначе.
Немає коментарів:
Дописати коментар