Хорошо, наконец я должен был копаться в этом сам ..
Используемая "технология виртуализации" - это просто 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 "виртуальной" системы).
.. надеюсь, я понял это правильно, я не запускал систему, а просто проверял изображение и какой-то источник.
некоторые справочные ссылки: