- •Часть I. Подготовка к работе
- •Глава 1. Использование клавиатуры 11
- •Глава 2. Основные команды языка 19
- •Глава 3. Работа с файловой системой qnx 29
- •Часть II. Управление системой 34
- •Глава 4. Основная установка 34
- •Глава 5. Установка сети 48
- •Глава 6. Ввод учитываемых пользователей 58
- •Глава 7. Подключение терминалов, принтеров и модемов 71
- •Глава 8. Установка второй файловой системы 88
- •Глава 9. Развитие конфигурации сети 99
- •Глава 10. Буферизация печати 112
- •Глава 11. Построение заданного образа операционной системы 134
- •Глава 12. Использование системы управления версиями 140
- •Глава 13. Изготовление копий 149
- •Глава 14. Восстановление дисков и файлов 156
- •Глава 15. Система обновления версий Quantum 176
- •Часть I. Подготовка к работе
- •Глава 1. Использование клавиатуры
- •Глава 2. Основные команды языка
- •Глава 3. Работа с файловой системой qnx
- •Часть II. Управление системой
- •Глава 4. Основная установка
- •Глава 5. Установка сети
- •Глава 6. Ввод учитываемых пользователей
- •Глава 7. Подключение терминалов, принтеров и модемов
- •Глава 8. Установка второй файловой системы
- •Глава 9. Развитие конфигурации сети
- •Глава 10. Буферизация печати
- •Глава 11. Построение заданного образа операционной системы
- •Глава 12. Использование системы управления версиями
- •Глава 13 изготовление копий
- •Глава 14. Восстановление дисков и файлов
- •Глава 15. Система обновления версий quantum
Глава 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 -