Описание первичного загрузчика.
Первичный загрузчик представляет собой программный модуль, задача которого произвести считывание с физического устройства код вторичного загрузчика в память, передать управление вторичному загрузчику и осуществить поддержку callback сервиса. Спецификация на первичный загрузчик (Приложение А), оговаривает каким образом происходит взаимодействие между первичным и вторичным загрузчиками. Первичный загрузчик может быть реализован в виде отдельного модуля, если программный код, заложенный в нем, может уместиться в предоставленный объем первого сектора носителя. Возможен случай, когда дополнительные функции, размещены в виде дополнительных файлов - модулей, расположенных на носителе. Задача первичного загрузчика произвести дозагрузку нужных функций и процедур в ОЗУ, и затем, уже загрузить вторичный загрузчик, который в попросит через callback сервис загрузить файл startos.ini, и обработов его, так же загрузит необходимые модули в ОЗУ через тот же механизм.
Модульная структура вторичного загрузчика
Вторичный загрузчик спроектирован как набор модулей, задача который обеспечить наивысшую производительность и в тоже время гибкость. Загрузчик состоит из следующих модулей:
SL - основной модуль вторичного загрузчика. Данный модуль самодостаточный и может работать без других модулей. Т.е. если по каким - либо причинам нам не удалось загрузить другие модули, то минимальный сервис нам будет доступен, его предоставит SL по дефолтным(default) настройкам. Размер SL имеет ограничение в 64 кб, т.к. в реальном режиме работы ЦП(CPU) резмер сегмента ограничен 64 кб. Такого объема более чем достаточно для реализации всех возможностей.
startos.ini - Файл конфигурации, в этом файле содержиться список конфигураций и логика загрузки модулей/логика загрузки самой ОС. Размер файла не должен превышать 64 кб. При отсутствии этого файла, используется настройки по умолчанию, которые встроены в логику модуля SL при компиляции.
Модули расширения. Всевозможные модули, которые работают в реальном режиме, имеют интерфейс взаимодействия с SL, и позволяют расширять функциональные возможности SL.
Ядро ОС. Файл ядра который размещается в ОЗУ по определенным адресам.
Драйвера устройств. Размещаются в области ОЗУ по определенным адресам.