Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
QNX 4 Руководство пользователя.doc
Скачиваний:
248
Добавлен:
02.05.2014
Размер:
1.02 Mб
Скачать

Глава 11. Построение заданного образа операционной системы

В этой главе...

Создание файла построения

11.1. Введение

QNX - модульная операционная система, состоящая из микроядра и

одного или более процессов, которые обеспечивают сервисные функции.

Например, процесс с именем Fsys обеспечивает обслуживание файловой

системы, а процесс с именем Dev обеспечивает обслуживание устройств.

Когда Вы формируете образ операционной системы, Вы должны выбрать

сервисные функции, которые Вы хотите иметь доступными немедленно пос-

ле загрузки, и включить процессы, которые обеспечивают этот сервис в

построенном образе операционной системы. Этот образ создается утили-

той buildqnx. Образ может быть загружен с диска программой-загрузчи-

ком раздела QNX или загружен через сеть утилитой netboot.

11.2. Создание файла построения

Утилита buildqnx берет текстовый файл, содержащий список имен

процессов, как входные данные, и создает файл бинарного образа, со-

держащий эти процессы, как выходные данные. Входной файл называется

файл построения. Файлы построения содержатся в каталоге /boot/bu-

ild, а файлы образа содержатся в каталоге /boot/images. Вы можете

создать образ, вызывая buildqnx непосредственно или используя ути-

литу make и Makefile в каталоге /boot. Например, Вы можете исполь-

зовать:

buildqnx build/hard.1 images/hard.1

или

make b=hard.1

Каждая программа, которую Вы хотите включить в создаваемый об-

раз, занимает две строки в файле построения. Пустые строки игнори-

руются. Первая строка - полное имя программы, которую Вы хотите

включить. Вторая строка начинается с $, за которым следует число,

представляющее размер памяти (в динамической области), которая

должна использоваться, затем - команда.

.

- 135 -

11.2.1. Установка размеров памяти в динамической области

Когда образ создается для процесса, в сегменте данных образа

резервируется пространство для локального распределения памяти. Ес-

ли это пространство устанавливается слишком маленьким, система

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

в результате чего уменьшается фрагментация памяти. Если пространс-

тво устанавливается слишком большим, у Вас будет неиспользованная

память. Для получения дополнительной информации об установке подхо-

дящих размеров распределяемой памяти смотрите Proc в "Utilities Re-

ference".

11.2.2. Установка приоритетов

Вы можете дополнительно установить начальный приоритет процес-

са, для этого за размером распределяемой памяти через ":" указыва-

ется желаемый приоритет. Например, следующая команда запустит Адми-

нистратор устройств (Dev) с объемом памяти 4К и приоритетом 24:

/bin/Dev

$ 4000:24 Dev

Устанавливая приоритет таким образом, Вы можете управлять по-

рядком запуска процессов.

11.2.3. Выбор процессов для образа

Процессы, которые Вы включаете в образ операционной системы,

определяются некоторыми факторами.

Образы делятся на три класса:

- образы, которые загружаются с диска;

- образы, которые загружаются через сеть;

- образы для встроенных систем.

Для образов, которые загружаются с диска или через сеть, Вы

можете запустить большинство процессов после загрузки, размещая их

в командной строке в файле системной инициализации, который QNX вы-

полняет после загрузки (смотрите раздел "Файл системной инициализа-

ции" в главе 4). Это позволит Вам держать образ загрузки небольшим

и простым.

Когда Вы строите образ, запомните, что есть два обязательных

процесса:

- Администратор процессов/Микроядро (/boot/sys/Proc),

- системная разделяемая библиотека (/boot/sys/Slib)

- 136 -

11.2.4. Образы диска

Для загрузки с жесткого диска Вы должны включить:

- два обязательных системных процесса (Proc и Slib),

- Администратор файловой системы (Fsys),

- драйвер, необходимый для доступа к накопителю (Fsys.driver)

ВНИМАНИЕ. Для получения дополнительной информации смотрите bu-

ildqnx и sinit в "Utilities Reference".

Makefile для загрузки с диска

Makefile в каталоге /boot содержит информацию для выполнения

общей загрузки с жесткого диска. Вы можете задать макроопределение

в командной строке, чтобы изменить значения по умолчанию:

-------------------------------------------------------------------

Макрокоманда Аргумент make По умолчанию Описание

-------------------------------------------------------------------

$b b=buildfile no default файл построения

$d d=driver Fsys.wd дисковый драйвер

$h h=hard disk /dev/hd0 жесткий диск

$i i=imagefile images/buildfile файл образа

$p p=parameters no default параметры жестко-

го диска

-------------------------------------------------------------------

Далее следует пример содержания makefile:

FILES = @build/$b

# Определяет некоторые значения по умолчанию, которые могут

быть переопределены # посредством h=xx и d=xx

d = Fsys.wd

h = /dev/hd0

i = $b

$b: images/$b

# Каждый файл образа операционной системы зависит от входя-

щих в него модулей ядра

images/$b: build/$b $(FILES)

- 137 -

buildqnx -v d=$d h=$h p=$p build/$b images/$i

Примеры

Следующие примеры помогут разъяснить использование Makefile:

Используйте файл построения /boot/build/hard.1 и создайте образ

/boot/images/hard.1, который содержит драйвер Western Digital и ко-

манду mount, которая устанавливает файловую систему QNX

на /dev/hd0t77:

make b=hard.1

Используйте файл построения /boot/build/hard.1 и cоздайте об-

раз /boot/images/hard.1, который содержит драйвер PS/2 SCSI вместо

драйвера Western Digital и команду mount, которая устанавливает

файловую систему QNX на SCSI ID_6:

make b=hard.1 d=Fsys.ps2s h=/dev/hd6

Используйте файл построения /boot/build/hard.1 и cоздайте об-

раз /boot/images/ps2s, который содержит драйвер PS/2 SCSI вместо

драйвера Western Digital и команду mount, которая устанавливает

файловую систему QNX на SCSI ID_6. Образ записывается в файл_0 образа

ps2s, а не в файл по умолчанию, который имеет имя в опции b= (в

этом случае hard.1).

make b=hard.1 d=Fsys.ps2s h=/dev/hd6 i=ps2s

Копирование образа в /.boot

Сформированный Вами образ не станет образом новой загрузки до

тех пор, пока Вы не скопируете его в файл /.boot. Однако, прежде,

чем сделать это, Вам следует сохранить текущий файл /.boot, копируя

его в файл /.altboot:

cp /.boot /.altboot

Если по некоторой причине Ваш новый образ не будет работать

правильно, Вы можете нажать <Esc> после подсказки во время процесса

загрузки и загрузить файл /.altboot вместо файла /.boot. Когда Вы

выберете образ альтернативной загрузки, обычная проверка для файла

/etc/config/sysinit.node заменяется проверкой для файла /etc/con-

fig/altsysinit. Вам следует убедиться, что файл altsysinit содержит

самую последнюю копию Вашего работающего файла sysinit:

- 138 -

cp /etc/config/sysinit.nodе /etc/config/altsysinit

Имейте в виду, что файл построения hard.1 не содержит Адми-

нистратор устройств /bin/Dev. Администратор устройств и его драйве-

ры обычно запускаются из файла системной инициализации после заг-

рузки системы.

ВНИМАНИЕ. Если файл системной инициализации не выполняется,

Администратор устройств не запустится. В результате,

Ваша клавиатура и системная консоль не будут функци-

онировать.

11.2.5. Сетевые образы

Для загрузки через сеть Вы должны включить:

- два необходимых системных процесса (Proc и Slib),

- Сетевой Администратор (Net),

- драйвер, необходимый для доступа в сети (Net.driver).

Makefile для сетевой загрузки

Makefile в /boot содержит информацию для выполнения загрузки

рабочей станции. Следующий пример использует файл построения /bo-

ot/build/ws.arcnet и создает образ /boot/images/ws.arcnet:

make b=ws.arcnet

Когда Вы загружаетесь через сеть, Вы можете загрузить заранее

сформированный образ или сформировать его в процессе загрузки. Если

Вы формируете образ в процессе загрузки, что рекомендуется, то Вам

не требуется формировать его вручную, как показано выше. Этот вари-

ант задается в файле /etc/boot/netboot и регистрируется утилитой

netboot.

ВНИМАНИЕ. Когда утилита netboot вызывает buildqnx, чтобы пост-

роить образ в процессе загрузки, файл образа не за-

писывается на диск.

11.2.6. Встроенные образы

Встроенной системе не требуется файловая система или Сетевой

администратор. Поэтому образ должен содержать все процессы, необхо-

димые для работы системы. Этот образ затем должен быть передан во

- 139 -

встроенную систему (наиболее вероятно, в ПЗУ).

.

- 140 -