1

Там * демонстрируется переключение между несколькими запущенными операционными системами на beagleboard. Там также немного информации о своей вики здесь.

Интересно, какую технологию они используют для этого ..

Это напоминает какую-то виртуализацию, но вряд ли из-за низкой производительности используемого процессора. Кажется, что одновременно работает только одна система. Все операционные системы основаны на Linux, поэтому в нем может использоваться одно и то же работающее ядро и некоторое переключение пространства пользователя.


*) Внимание: источник на французско-английском языке

2 ответа2

2

Упоминание об ограничениях ОЗУ, затрудняющих запуск 3 операционных систем одновременно, указывает на то, что все они загружены в ОЗУ. У нас также есть фраза: «Пока что невозможно использовать графический процессор вашей beagleboard для AIOS и Android, когда они работают одновременно. При запуске Android из AIOS нам действительно необходимо выгрузить модули трехмерного ядра, чтобы Android мог использовать их на постоянной основе ».

Поэтому я подозреваю, что ОС Beagleboard, на которой работает устройство, действует как гипервизор с «голым железом», виртуализируя гостевые операционные системы. В частности, гостевая ОС работает в режиме паравиртуализации. В случае PV гипервизор фактически не виртуализирует компьютерное оборудование. Вместо этого гостевая ОС запускает ядро, созданное для непосредственного взаимодействия с гипервизором вместо обычного взаимодействия с оборудованием.

Примером такой системы является гипервизор Xen, проект с открытым исходным кодом, который (iirc) фактически разработал паравиртуализацию. Поскольку Xen является «железным гипервизором», он действует как сама ОС в том смысле, что он загружается напрямую (а не работает внутри другой ОС). ОС Linux может быть построена с ядром domU или гостевым ядром, которое затем выполняет ввод-вывод с Xen, а не напрямую с аппаратным обеспечением. Операционная система работает нормально, потому что ядро выполняет все, что должно делать ядро, но поскольку виртуализированное оборудование отсутствует, это не является строгой виртуализацией. Поскольку Xen не нужно тратить время на то, чтобы притвориться материнской платой (и всеми вещами на одной и подключенными к одной), затраты на нее намного меньше, чем в полностью виртуализированной среде (поэтому влияние на производительность намного меньше).

Поскольку ядро должно быть собрано для работы в такой среде, гостевая ОС обычно основана на Linux. Можно сделать другие ОС, правда, просто сложнее. Например, был разработан полный набор драйверов для запуска Windows на Xen PV.

Чтобы связать это, потому что Xen очень популярен и FOSS, я не удивлюсь, если система Beagleboard основана непосредственно на Xen или на компонентах Xen.

0

Хорошо, наконец я должен был копаться в этом сам ..

Используемая "технология виртуализации" - это просто chroot.

Система может быть выбрана из меню во время загрузки. Каждый из них имеет свой собственный образ squashfs доступный только для чтения (включая образ ядра и модули, все имеют одинаковую версию) и наложения aufs чтения и записи в отдельном каталоге на диске.

Однако только одна из систем, основная ОС - AI OS (Alwaysinnovating OS, производная от дистрибутива Ангстрем), имеет возможность запускать / переключаться на другую. Это можно сделать из меню « AI Multiple OS », которое представляет собой простое приложение Qt, просто интерфейс, запускающий несколько сценариев оболочки. Их проверка показывает, что запуск другой системы - это просто подготовка системного каталога chroot, монтирование там его образа suqashfs и каталога aufs, привязка (mount --bind) необходимых системных каталогов (таких как /dev , /proc , ..) и привязка к ним. , Например, система Ubuntu запускается, создавая ее структуру chroot, вставляя в нее скрипт инициализации (который содержит запуск таких сервисов, как dbus , hal , ... и заканчивающихся запуском Xsession). Затем запускается еще один сервер X11 с определенным номером дисплея (в данном случае :2) с помощью xinit . Наконец, это связано с упомянутым скриптом инициализации.

Таким образом, те системы, которые запускаются из основной AI-операционной системы, являются просто их изолированной средой, работающей поверх AI-OS - она отличается от того, когда она работала сама по себе, выбранная во время загрузки.

Теперь переключение между работающими системами (с помощью приложения меню multios в AI OS или с помощью встроенной аппаратной кнопки) - это просто переключение между виртуальными терминалами систем X11 (которые обнаруживаются при обработке вывода ps avx ) с помощью chvt . Остановка системы просто убивает все соответствующие процессы chroot (все процессы базовой системы, чей /proc/$PID/root соответствует каталогу chroot "виртуальной" системы).

.. надеюсь, я понял это правильно, я не запускал систему, а просто проверял изображение и какой-то источник.

некоторые справочные ссылки:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .