МЕНЮГостевая книга Форум |
КАК ЗАГРУЖАЕТСЯ FREEBSD
Ну, для начала, опишем пациента. Я разбирал FREEBSD 8.0 Stable, а именно
самый минимальный образ для загрузки с CD-ROM (44 мб). Я выбрал именно
его, так как он самый маленький и удобный.
Что делает этот файл CDBOOT? Довольно много всего. Во-первых, грузит файл /boot/loader по адресу 0000:9000, но сразу же переносит его в область под два мегабайта (00200000). Файл этот состоит из трех частей. Назовем их BTXLDR, BTX и LOADER.
Потом он переносит BTX обратно (на адрес 0000:9000).
Потом он переносит заглушку на адрес 0000:A000 и запускает программу BTX (с адреса 0000:9000). Все, CDBOOT больше не работает, поэтому рисовать его не будем:
Дальше работает BTX. Единственная задача данной программы - настроить
среду защищенного режима и запустить другую программу (с адреса A000).
Поэтому BTX настраивает прерывания, таблицу дескрипторов, сегмент задачи
и другие премудрости защищенного режима и запускает программу с адреса
A000. А там, как вы видите, у нас заглушка. Вот она и запускается.
А дальше... Происходит переход на адрес 0000:9000. Там у нас BTX.
Да! BTX работает во второй раз. Как вы помните - он настраивает
защищенный режим и запускает программу с адреса 0000:A000. Вот только
там уже не заглушка, а полноценная программа - LOADER, без всяких
заголовков, только код.
|