Tuesday, Sep 07th

Last update09:09:00 PM GMT

Вы находитесь на: FreeBSD Запуск и выключение Обзор. Команда boot. FreeBSD boot

Обзор. Команда boot. FreeBSD boot

Ядро FreeBSD является всего лишь программой, хотя и сложной. Подобно любой программе, его двоичный образ находится на файле в файловой системе до тех пор, пока он не будет загружен и запущен. FreeBSD boot предполагает, что исполняемый образ ядра находится в файле с именем /boot/kernel/kernel в файловой системе, которая определена в качестве корневой файловой системы.

Процесс начальной загрузки является машинно-зависимым. Часто небольшая загрузочная программа помещается в зарезервированную область в начале первичного диска.

Эта программа обычно ограничена небольшой областью - всего лишь одним 512-байтным сектором диска - и просто загружает более крупную программу из следующей области диска. Эта программа или некоторый другой механизм обычно используется всего лишь для загрузки и запуска специальной команды boot. Задачей команды boot в FreeBSD является загрузка и инициализация исполняемого образа программы и ее запуск, boot FreeBSD может находиться на том же устройстве хранения, что и файл, осуществляющий начальную загрузку, или она может быть загружена с сетевого файлового сервера.

Команды программы boot

Команда

bcachestat

boot

autoboot

help

?

show

set

unset

echo

read

more

Isdev

include

Is

load

unload

Ismod

pnpscan


Описание

Получить статистику кеша дисковых блоков

Загрузить файл или ядро

Загрузить автоматически после задержки

Подробная справка

Список доступных команд

Показать переменную(-ые)

Установить переменную

Сбросить переменную

Отобразить вывод, аналогично эхо-отображению оболочки

Имитирование команды чтения оболочки

Показать содержание файла с постраничным выводом

Перечислить все устройства

Прочесть команды из файла

Перечислить файлы, которые может видеть программа загрузки

Загрузить ядро или модуль

Выгрузить все модули

Перечислить все загруженные модули

Сканировать самонастраивающиеся (plug-and-play - РпР) устройства

Когда запускается программа командой boot, она загружает /boot/kernel/kernel, а затем начинает обратный отсчет, который может быть прерван пользователем. Если обратный отсчет программы boot прерывается, она предоставляет пользователю в консоли интерпретатор командной строки и ожидает ввода. Интерпретатор командной строки помогает отлаживать проблемы, возникающие во время загрузки. Чаще всего использующимися командами является команда unload для удаления ядра по умолчанию, за которой следует команда load для загрузки альтернативного ядра.

Обычно загружаемым альтернативным ядром является /boot/kernel/kernel.old, сохраненное системой построения ядра при инсталляции нового ядра на случай, если новое ядро окажется неисправным. Ядро запускается по команде boot либо пользователем, либо при достижении обратным отсчетом 0. Команда FreeBSD - boot начинается с инициализации процессора, обеспечивая отключение трансляции виртуальных адресов и запрещая прерывания. Загруженная программа отвечает за включение этих возможностей и любого дополнительного аппаратного обеспечения, такого, как устройства ввода/вывода, которые она намеревается использовать.

Когда ядро FreeBSD загружено командой boot, ядро проходит через несколько этапов аппаратной и программной инициализации, подготавливая нормальную работу системы. Первый этап отвечает за установку начального состояния процессора, включая стек времени исполнения и отображение виртуальной памяти. Отображение памяти, включая трансляцию виртуальных адресов, включается в самом начале процедуры запуска, чтобы минимизировать объем кода специального назначения на языке ассемблера, который должны создавать те, кто портирует ядра.

После включения отображения виртуальной памяти система выполняет машинно-зависимую инициализацию, а затем машинно-независимую инициализацию. Машинно-зависимые операции включают установку мьютексов и таблиц страниц виртуальной памяти и конфигурирование устройств ввода/вывода; машинно-независимые действия включают монтирование корневой файловой системы и инициализацию множества системных структур данных.

Такой порядок необходим, поскольку значительная часть машинно-независимой инициализации зависит от должной инициализации устройств ввода/вывода. После настройки машинно-независимых частей ядра система оказывается в рабочем состоянии. Создаются и запускаются системные процессы, и программы уровня пользователя загружаются из файловой системы для выполнения. В этот момент система готова к запуску обычных приложений.

Сейчас 22 гостей онлайн

Реклама на сайте: