Разработанный проектом NetBSD гипервизор Rump портирован для ядра Linux
Представленные наработки позволяют загружать ядром Linux немодифицированные драйверы, написанные для ядра NetBSD. Запускаемые компоненты NetBSD выполняются в виде RUMP-ядер, работающих поверх гипервизора RUMP, который предоставляет высокоуровневый интерфейс к возможностям хост-системы, таким как распределение памяти и создание нитей. В данном случае хост-системой является ядро Linux, а запуск rump-ядра осуществляется через загрузку специально подготовленного модуля для ядра Linux.
Для демонстрации возможностей rump-гипервизора в Linux-окружении осуществлен запуск TCP/IP-стека NetBSD, что позволило организовать функцинирование отдельного TCP/IP стека NetBSD параллельно с TCP/IP-стеком Linux. Аналогичным образом могут быть запущены и другие подсистемы ядра NetBSD, такие как драйверы файловых систем. В качестве возможных применений представленной разработки называется возможность использования немодифицированных драйверов NetBSD во встраиваемых прошивках, для чего достаточно интегрировать в прошивки компоненты с реализацией легковесной прослойки для обеспечения работы гипервизора RUMP.
Pежим RUMP также даёт возможность организовать выполнение частей ядра NetBSD в адресном пространстве пользователя. В частности, RUMP позволяет в виде оформленного в стиле микроядра серверного процесса выполнять в пространстве пользователя драйверы, изначально работающие на уровне монолитного ядра системы. По сути rump-ядро является частично паравиртуализированным ядром, запускаемым поверх высокоуровневного гипервизора. Указанная возможность позволяет легко портировать NetBSD под различные системы, так как для обеспечения работы rump-ядра достаточно подготовить для платформы только соответствующий небольшой гипервизор.
Напомним, что ранее уже была обеспечена возможность использования модулей ядра NetBSD в Linux (например, можно было использовать драйверы с реализацией поддержки файловой системы FFS), но при этом RUMP-компоненты запускались в форме пользовательских процессов. Также ядро и драйверы NetBSD были адаптированы для запуска в web-браузере, путём их компиляции в JavaScript при помощи пакета Emscripten.
Источник: http://www.opennet.ru/opennews/art.shtml?num=36768
|
0 | Tweet | Нравится |
|