uKernel devroom report
Sartakov A. Vasily Ksys labs
Fedora Virtualiza:on Day 2014 / "FOSDEM AEer-‐party"
Syuzhet
• Intro • FOSDEM 2014: Microkernel-‐based opera:ng systems devroom
• Flashback: Offline Test Day (01.06.2013) • Недовиртуализация – встраиваемые системы
• Виртуализация
FOSDEM 2014: Microkernel-‐based opera:ng systems devroom
• 60-‐70 человек, на каких-‐то докладах больше, на каких-‐то меньше. • HelenOS, Genode FW, GNU/Hurd, OS Escape, L4Re
Security Gap
Sartakov A. Vasily ksys labs 2014
Red FOSDEM ‘ 14
Flashback: Offline Test Day (01.06.2013)
• Общие сведения о виртуализации • Виртуализируется все – от API библиотек до аппаратных платформ.
• О применении виртуализации в микроядерных проектах говорят: – Паравиртуализация L4Linux – Виртуализация (эмуляция) API (posix, lib*, драйвера) – Аппаратная виртуализация (VT-‐x)
• В этом году пожалуй самым интересным были как раз проекты связанные с поддержкой аппаратной виртуализации
Syuzhet
• Intro • FOSDEM 2014: Microkernel-‐based opera:ng systems devroom
• Flashback: Offline Test Day (01.06.2013) • Недовиртуализация – встраиваемые системы
• Виртуализация
ARM TrustZone
• ARM TrustZone – виртуальный процессор для исполнения изолированного доверенного ПО.
• По сути своей является дополнительным режимом ARM
• Позволяет запускать две операционные системы, одна из которых ничего не будет знать о другой
• Много где есть, но доступа к TZ нет
TZ Example
Source: ARM Security Technology Building a Secure System using TrustZone® Technology
Зачем это вообще нужно?
• Во встраиваемых системах хочется использовать виртуализированую среду, как инструмент жесткого разграничения ресурсов
• Около «Рыночный» пример – телефон с двумя андроидами внутри – один для относительно безопасных приложений, другой -‐ помойка
И как такое делается?
• Вопрос религии идеологии: взять Linux и свопить roo�s и программы местами – плохо с идеологической точки зрения, в виду общего ядра для обоих режимов
• Давайте больше изоляции! • Давайте будем использовать микроядра!
И как такое делается?
• Вопрос религии идеологии: взять Linux и свопить roo�s и программы местами – плохо с идеологической точки зрения, в виду общего ядра для обоих режимов
• Давайте больше изоляции! • Давайте будем использовать микроядра!
Ну давайте..
L4Linu
x
FLV FLV
FLV FLV
FLV
Паравиртуализация
CPU main memory
I/O devices
Host Kernel
Guest ABI Host API
APP
APP PID1
APP FLV FLV
FLV FLV
FLV Guest ABI Host API
APP
APP PID1
APP
L4Linu
x
FB
IO
vETH
Вполне себе успешное решение
• На уровне прототипа работает красиво • T-‐Lab (simko3 project) довел вроде бы телефон до конца • Но вообще это бесконечно далеко от продакшена
Genode+2xL4Linux
Сейчас
• Сейчас интерес к паравиртуализации по-‐убавился.
• L4Linux тяжело «усилить» в виду некоторых особенностей архитектуры
• Под L4Linux нужно адаптировать драйвера • Модные процессора имеют TZ, а совсем модные – аппаратную виртуализацию
И так, нова TZ
• Идея: запускать в Secure world операционную систему, управляющую ресурсами, а в normal world – контролируемую операционную систему.
• Реализация от Genode Labs: Genode base-‐hv ядро в secure world, Android в normal world.
• Подобное же решение от L4Re: Fiasco.OC в secure world
Архитектура
Source: h�ps://fosdem.org/2014/schedule/event/08_uk_arm_virtualiza:on_dungeon/a�achments/slides/390/export/events/a�achments/08_uk_arm_virtualiza:on_dungeon/slides/390/genode_trustzone.pdf
Демо от Genode Labs
• IMX53 based Sabre board.
Syuzhet
• Intro • FOSDEM 2014: Microkernel-‐based opera:ng systems devroom
• Flashback: Offline Test Day (01.06.2013) • Недовиртуализация – встраиваемые системы
• Виртуализация
Микрогипервизор
• NOVA – baremetal microhypervisor • Написанный с нуля • L4 идеология • Да, микроядро
CPU Mem IO
Linux kernel
Linux user-‐space
VMM
R3
R0
R3
NOVA R0
Non
-‐roo
t mod
e root m
ode
Linux kernel
Linux user-‐space
VMM DRV Sigma0
NOVA
Non
-‐roo
t mod
e Ro
ot m
ode
Hardware
Virtual Busses
NOVA, VMM, Окружение
messaging
NOVA
CPU
Driver vDriver vBIOS VMM
Ioctl(0x5,’a’);
Iomem opera:on: *0x5=‘a’;
R3
R0
R3
R0
За что борются?
• Борются за разработку хорошего VMM, поддерживающего не только Linux – Vancouver
• Linux – Seoul
• Борются за разработку хорошего окружения – NUL – NRE – Genode
Вести с полей
• Seoul – VMM, поддерживается в Genode, реализована live-‐migra:on, сейчас мержится с основным бранчем
• Genode портировали Virtualbox в качестве VMM, продемонстрировали Windows on top of NOVA. Сорцы будут опубликованы в ближайшем релизе.
State of the Art
• Есть один микрогипервизор NOVA • Есть несколько окружений • Есть поддержка TZ в микроядрах, и есть минимум один VMM для TZ
• Нет аппаратной поддержки виртуализации ARM
• Есть несколько VMM • Windows поддержка есть только в VirtualBox (почему-‐то поддержка Windows беспокоит всех)
Спасибо.
Sartakov A. Vasily [email protected]
Ksys labs LLC
h�p://ksyslabs.com, h�p://ksyslabs.org, [email protected]
* Please do not fork me on github