OpenBoot задачи

В процессе запуска системы OpenBoot выполняет следующие задачи:

1. Встроенное программное обеспечение может перезапустить машину, если какая-нибудь клиентская программа была выполнена с момента последнего перезапуска. В качестве клиентской программы обычно выступает операционная система или загрузчик операционной системы, однако команда boot также может быть использована для загрузки и исполнения других типов программ, таких как диагностические. Например, если вы только что выдали команду test net, то, когда в следующий раз будет выдана команда boot, система будет перезапущена до старта.

2. Программа boot загружается в память, используя протокол, зависящий от типа выбранного устройства. Вы можете выполнить запуск системы с жесткого диска, магнитной ленты, гибкого диска или из сети. Процедура запуска с диска может считать некоторое фиксированное количество блоков от начала диска, тогда как процедура запуска с магнитной ленты - определенный файл.

3. Загруженная программа boot исполняется. В дальнейшем поведение программы boot может управляться строкой argument, если она была передана команде boot через командную строку.

Программа, которая загружается и исполняется в процессе запуска системы - это вторичная программа загрузки, назначение которой-загрузка заданной автономной программы. Программой загрузки второго уровня является либо ufsboot, когда запуск производится с какого-нибудь диска, либо inetboot, когда запуск производится через сеть.

Если запуск производится с диска, процесс начальной загрузки состоит из двух концептуально различных фаз: первичный запуск и вторичный запуск. OpenBoot PROM предполагает, что программа для выполнения фазы первичного запуска (bootblk) находится в основном загрузочном блоке, который занимает на устройстве запуска сектора с 1 по 15. Загрузочный блок создается с использованием команды installboot. В процессе инсталляции программного обеспечения загрузочный блок обычно устанавливается, поэтому нет никакой необходимости выдавать эту команду, если только вы не восстанавливаете поврежденный загрузочный блок. Для инсталляции загрузочного блока на диске c0t3d0s0 введите следующую командную строку:

installboot /usr/platform/'uname -i' /lib/fs/ufs/bootblk /dev/rdsk/c0t3d0s0

Вы не можете видеть загрузочный блок. Он находится в защищенной области диска, не подлежащей просмотру. Программа, находящаяся в области загрузочного блока, будет загружать вторичную программу запуска, которая называется ufsboot.

В процессе исполнения команды boot, если было указано имя файла, то оно рассматривается как имя автономной программы запуска, которая подлежит загрузке. Если имя маршрута задано в относительной форме (не начинается со слэша), то программа ufsboot будет искать автономную программу запуска в платформо-зависимом маршруте поиска. Другими словами, относительный маршрут к автономной программе будет начинаться с префикса lplatforml. При этом выражение будет специфичным для используемого вами аппаратного обеспечения.

С другой стороны, если маршрут к имени файла является абсолютным, то программа boot будет использовать именно заданный маршрут. Затем программа запуска загрузит автономную программу и передаст ей управление системой.

Используйте команду uname -i для определения имени платформы вашей системы. Например, на системе SPARCstation 10 маршрут будет иметь следующий вид: /platform/SUNW,SPARCstation-10. Для определения имени класса аппаратного обеспечения (hardware-class-name) вашей системы используйте команду uname -m; например, для SPARCstationIO имя класса аппаратного обеспечения будет иметь следующий вид: sun4m. Если вы заглянете в каталог /platform, то увидите, что I platform/SUNW,SPARCstation-10 является просто ссылкой на /platform/sun4m.

В приведенном ниже примере показано, как задать автономную программу запуска из приглашения ok:

ok boot disks kernel/unix -s

В этом примере OpenBoot PROM будет искать первичную программу запуска (bootblk) на устройстве с псевдонимом disk5 (/iommu/sbus/espdma@f,400000/esp@f,800000/sd@0,0). Затем первичная программа запуска загрузит программу ufsboot. Эта программа, в свою очередь, будет загружать автономную программу по имени /platform/SUNW,SPARCstation- 10/kernel/unix, используя флаг -s. Обычно вторичная программа запуска, такая как kernel/ unix, принимает аргументы в форме filename -flags, где filename - это маршрут к автономной программе, a -flags - это список опций, который будет передан данной автономной программе. В приведенном примере будет загружаться ядро операционной системы, которое описывается в следующее разделе. Флаг -s инструктирует ядро загружать систему в однопользовательском режиме.


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок