Сборка системы виртуализации crosvm из Chrome OS в обычном дистрибутиве Linux |
[исправить] |
В Chrome/Chromium OS для изоляции приложений развивается система crosvm,
основанная на использовании гипервизора KVM. Код crosvm написан на языке Rust
и примечателен наличием дополнительного уровня защиты на основе пространств
имён, применяемого для защиты от атак на инструментарий виртуализации.
Из других особенностей crosvm отмечаются встроенные средства для запуска
Wayland-клиентов внутри изолированных окружений с выполнением композитного
сервера на стороне основного хоста и возможность эффективного использования GPU
из гостевых систем. Подобные возможности делают crosvm интересным решением для
изолированного запуска графических приложений.
Crosvm не привязан к Chromium OS и может быть собран и запущен в любом
дистрибутиве Linux (протестировано в Fedora 26).
Собираем ядро Linux для гостевой системы:
cd ~/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
cd linux
git checkout v4.12
make x86_64_defconfig
make bzImage
cd ..
Собираем инструментарий minijail для запуска программ в изолированных окружениях:
git clone https://android.googlesource.com/platform/external/minijail
cd minijail
make
cd ..
Собираем crosvm:
git clone https://chromium.googlesource.com/a/chromiumos/platform/crosvm
cd crosvm
LIBRARY_PATH=~/src/minijail cargo build
Генерируем образ корневой ФС (rootfs) для изолированного окружения:
cd ~/src/crosvm
dd if=/dev/zero of=rootfs.ext4 bs=1K count=1M
mkfs.ext4 rootfs.ext4
mkdir rootfs/
sudo mount rootfs.ext4 rootfs/
debootstrap testing rootfs/
sudo umount rootfs/
Запускаем crosvm:
LD_LIBRARY_PATH=~/src/minijail ./target/debug/crosvm run -r rootfs.ext4 --seccomp-policy-dir=./seccomp/x86_64/ ~/src/linux/arch/x86/boot/compressed/vmlinux.bin
|
|
|
|
Раздел: Корень / Безопасность / Виртуализация - Xen, OpenVZ, KVM, Qemu |
1.1, pavlinux (ok), 16:52, 11/11/2017 [ответить]
| +/– |
> Запуск виртуалки в jail
Мало слоёв, давай ищо!!!
# kvm chroot minijail crosvm run -r rootfs.ext4
| |
|