Буду очень благодарен, если вы кликните по баннеру внизу - этим вы поддержите рассылку - следующий выпуск выйдет быстрее.
Процесс загрузки Linux достаточно сложен, чтобы подробно описать его в одном выпуске рассылки. Я опишу лишь те аспекты загрузки, которые могут дальше помочь в работе:
Загрузчик Linux.
Загрузчик Linux - это программа, которая загружает в память и передаёт управление ядру Linux (это условно, т.к. загрузчик выполняет промежуточные процессы (перевод процессора в Proteced Mode, распаковка ядра и т.д.), но суть такова). Загрузчики Linux достаточно большие по размеру. Они состоят из двух частей, т.к. размер загрузочного сектора всего 512 байт. Сначала грузится первая часть загрузчика, которая загружает вторую часть - основную. Благодаря своему размеру (Grub - 130340 байт ~ 127 Кбайт) загрузчики Linux имеют графическое меню и некоторые дополнительные функции загрузки. Вам предлагается на выбор два загрузчика: Lilo и Grub. Если вам нужно просто загрузить Linux - выбирайте любой. Они разлиаются, если вам нужны дополнительные функции загрузки. По внешнему виду, красивее Grub.
Монтирование и проверка файловой системы.
После загрузки ядра и выполнения некоторых операций, который я не описываю. Монтируются файловые системы. Это корневая файловая система, служебные (/dev/pts, /proc, /dev/shm) и дополнительные файловые системы, описанные в файле /etc/fstab. Этот процесс почти прозрачен для пользователя. Последняя цифра в описании файлвой системы в файле /etc/fstab указывает на необходимость и порядок проверки файловых систем. Число 1 обязательно следует указывать для корневой файловой системы. Если вы захотите проверять что-нибудь кроме нее, то ставьте число 2, в противном случае - 0.
Обнаружение новых устройств.
За обнаружение новых устройств отвечает утилита Kudzu. Она предусматривает некоторую автоматизацию, в том смысле, что через 30 секунд загрузка продолжится, если вы не нажали какую-нибудь клавишу. Она предлагает не только установку, но и удаление устройств, если они были отключены. Это создаёт некоторые неудобства - выключенный принтер предлагается удалить.
Далее запускаются различные службы. Будет ли загружатся графическая оболочка - зависит от параметра, указанного в файле /etc/inittab. Строка выглядит так:
id:5:initdefault:
Цифра 5 определяет загрузку графической оболочки. Возможны следующие варианты (цитата из файла /etc/inittab):
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
Вот и всё, что я хотел сказать о загрузке. Возможно некоторым быдут интересны некоторые файлы, относящиеся к загрузке (они находятся в папке /usr/src/linux на вашей машине):
arch/i386/boot/bootsect.S и setup.S
Содержит ассемблерный код загрузочного сектора.
arch/i386/boot/compressed/misc.c
Содержит код декомпрессии ядра.
arch/i386/kernel/
Каталог, содержащий код инициализации ядра. setup.c определяет слово ramdisk.
drivers/block/rd.c
Содержит драйвер ramdisk. Процедуры rd_load и rd_load_image загружают блоки из устройства в ramdisk.
Процедура identify_ramdisk_image определяет тип
найденной файловой системы и сжата ли она.
У нашей рассылки есть сайт. Я его несколько модернизировал, добавил форум. Испытывал у себя на компьютере (Linux+Apache+Perl+PHP), но разместить его на Narod'е я не могу, т.к. этот хостинг не поддерживает скрипты. Буду благодарен, если кто-нибудь подскажет бесплатный (без баннера) хостинг с поддержкой скриптов. Мой вариант - платный хостинг, но это возможно только при вашей поддержке - клику по баннеру внизу.
В нескольких следующих выпусках я более подробно расскажу о загрузке Linux. Следующий номер нашей рассылки будет посвящён теме "Загрузчик Lilo".