Компиляция ядер
Исходные тексты ядер Plan 9 находятся в каталоге /sys/src/9. Дистрибутив системы включает ядра для таких платформ как Intel PC, Alpha PC, MIPS-основанная рабочая станция под названием Carrera, Compaq iPAQ (bitsy) и PowerPC-основанная встроенная система.
Машинно-независимый исходный код находится в каталоге /sys/src/9/port. Каждая архитектура также имеет машинно-зависимый подкаталог: pc, alphapc, carrera, и mpc, соответственно.
Различия между архитектурами составляют ядра терминалов и CPU серверов: они компилируются с разными комплектами драйверов, разными вариантами загрузки, и разными ядро-пользователь коэффициентами памяти.
Каждое ядро описано файлом конфигурации. К примеру, ниже представлена сокращенная версия файла pcdisk конфигурации терминала /sys/src/9/pc/pcdisk.
dev root cons arch env ip link ether2000 ether8390 ethermedium misc archmp mp apic kfs.root vgamach64xx +cur vgamga2164w +cur ip il tcp port int cpuserver = 0; boot boot #S/sdC0/ il local
Формат файла довольно прост: строки без отступов определяют секции, каждое слово на строках с отступами — имя объектного файла, для компоновки. Вы можете добавлять или удалять различные драйверы, добавляя или удаляя строки.
В середине декабря 2002 года появилась новая секция, под названием bootdir, которая описывает новый загрузочный каталог #//boot.
К примеру, если вы хотите построить автономный CPU/аутентификационный сервер, но по умолчанию сервер не имеет драйвера вашей видео карты. Тогда, чтобы перезаписать ядро CPU сервера 9pccpudisk с драйвером вашей видеокарты, отредактируйте /sys/src/9/pc/pccpudisk и добавьте подходящую строку vga.
Для многопроцессорных машин, вставьте строку
archmp mp apic
в ваш конфигурационный файл, в противном же случае, новое ядро будет использовать один процессор.
Чтобы пересобрать и установить это ядро, выполните
cd /sys/src/9/pc mk 'CONF=pccpudisk cp 9pccpudisk /386 9fat: cp 9pccpudisk /n/9fat/9pccpudisk
Аргумент mk определяет какой файл конфигурации следует использовать. По умолчанию для ядер ПК — это «pc».
Наиболее безопасный вариант — работать с копией конфигурационного файла, а не редактировать его непосредственно. Затем вы можете поставить такой аргумент mk:
mk 'CONF=pc_имя_пользователя'
И наконец, сохраните старые конфигурационные файлы, если вы хотите ссылаться на них вновь.
Copyright © 2003 Перевод Андрей С. Кухар. Последняя модификация 23.08.2003