Структура системы

Xameleon использует стандартную схему загрузки микроядра. Процесс загрузки происходит следующим образом. Загрузик grub читает файл /boot/grub/menu.lst, в котором находится список модулей для начальной загрузки.

title = Xameleon on L4Ka::Pistachio/ia32
kernel=/boot/kickstart.gz bootinfo=on mbi=on decode-all=on
module=/boot/ia32-kernel.gz
module=/boot/sigma0.gz
module=/Supervisor
module=/tty.drv
module=/rs232.drv
module=/ramdisk.drv
module=/floppy.drv
module=/ide.drv
module=/FileSystem.drv
module=/init initrd

Затем grub последовательно загружает модули в оперативную память и формирует запись MBI, которая впоследствии используется модулем kickstart и Supervisor. Затем загрузчик передаёт управление модулю kickstart.

Задача модуля kickstart подготовить и запустить микроядро L4Ka::Pistachio (модуль ia-32kernel). Ещё один модуль, поставляемый вместе L4Ka::Pistachio, это сервер виртуальной памяти sigma0. В момент инициализации sigma0 становится владельцем всей оперативной памяти в системе. Этот сервер поддерживает простейший протокол, который умеет только отдавать страницы физической памяти в адресное пространство запрашивающего процесса и обрабатывать запросы на выделение памяти микроядром.

Модули kickstart, kernel и sigma0 входят в микроядро L4Ka::Pistachio и распрстраняются под лицензией BSD.

Структуру Хамелеона можно отобразить следующим графиком:

Более подробную информацию о подсистемах Хамелеона смотрите в следующих подразделах.