LINUX.ORG.RU

К вопросу о начальных загрузичках


0

0

Сначала загружается сектор MBR (512 - 2 - 16*4 = ~446 байт), который загружает тушку загрузчика (stage 1.5), которая считывает файлы конфигурации и затем ядро операционной системы.

Для того, чтобы считать тушку загрузчика, необходимо в принципе выполнять простые действия (считывание секторов, вычисления).

Можно в принципе сделать большую внешнюю программу-компилятор, например на java, которая зная разные настройки собирает версию загрузчика в MBR для конкретных условий (количества дисков и типов файловых систем). Скомпилированный загрузчик содержал бы только необходимые команды и мог бы, например, загружать с RAID (в режиме stripe).

Правильно ли я понимаю, что так не делают, из-за того что такой набор команд не умещается в 446 байт?


Ответ на: комментарий от lv

> Судя по всему, grub.

lilo ближе по идее

В лило (в отличие от grub или bsd'шного загрузчика) нет кода, распознающего файловую систему -- вместо этого сектора в которых находится ядро засовываются в загрузчик при компиляции -- это как раз близко к тому что написано в первом посте -- выкидывать generic код заменяя ее на нечто предкомпилированное.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

>> Судя по всему, grub.

> lilo ближе по идее

Именно на это я и намекал. Даже не то, чтобы ближе... автор довольно точно описал именно lilo :)

const86 ★★★★★
()

А зачем этому коду влезать в 446 байт? Посмотри на исходики SBM (SBMinst).

kmeaw ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.