Эксперимент по использованию бинарных модулей ядра NetBSD в Linux
В проекте задействованы недавно внесённые в подсистему RUMP (Runnable Userspace Meta Program) улучшения, позволяющие запустить собранное в режиме RUMP ядро NetBSD на платформах, отличных от NetBSD. После небольшой доработки удалось обеспечить запуск rump-ядра в форме пользовательского процесса в Linux и реализовать функции загрузки модулей, собранных для ядра NetBSD. Для демонстрации разработки подготовлено небольшое приложение, запускающее в Linux процесс с ядром NetBSD и позволяющее монтировать разделы с файловой системой FFS, используя для работы с ними модуль ffs.kmod из состава NetBSD. При этом используется уже собранный для NetBSD набор модулей и загрузка модулей rump-ядром происходит динамически.
Напомним, что режим RUMP даёт возможность организовать выполнение частей ядра NetBSD в адресном пространстве пользователя. В частности, RUMP позволяет в виде оформленного в стиле микроядра серверного процесса выполнять в пространстве пользователя драйверы, изначально работающие на уровне монолитного ядра системы. По сути rump-ядро является частично паравиртуализированным ядром, запускаемым поверх высокоуровневного гипервизора. Указанная возможность позволяет легко портировать NetBSD под различные системы, так как для обеспечения работы rump-ядра достаточно подготовить для платформы только соответствующий небольшой гипервизор.
Источник: http://www.opennet.ru/opennews/art.shtml?num=35602
|
0 | Tweet | Нравится |
|