SlideShare a Scribd company logo
Virtualiza)on	
  in	
  General	
  
Sartakov	
  A.	
  Vasily	
  
ksys	
  labs	
  
	
  
Offline	
  Test	
  Day/2013-­‐06-­‐01	
  Virtualiza)on	
  
Structure	
  
•  Intro	
  
•  Virtualiza)on::Theory	
  
•  VT-­‐x	
  
•  ARM	
  TrustZone	
  
•  Microkernels	
  
•  L4	
  microkernel	
  family	
  
•  Paravirtualiza)on:	
  L4Linux	
  
•  Baremetal	
  microhypervisor	
  NOVA	
  
•  Conclusion	
  
About	
  
•  Аспирант	
  Technische	
  Universität	
  
Braunschweig	
  
•  ~8	
  лет	
  в	
  EE	
  &	
  CS	
  
•  RnD	
  bootstrapping	
  @	
  ksys	
  labs	
  
	
  
Virtualiza)on::Theory	
  
All problems in computer science can be
solved by another level of indirection"
Butler Lampson, 1972"
Система	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Kernel	
  
MC	
   bash	
   WM	
   apache	
  
Browser	
  
FLV	
   PIDN	
  
PIDK	
  
PID6	
  
PID10	
  
Двоичная	
  трансляция,	
  эмуляция	
  
CPU:	
  ARM	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Linux	
  Kernel	
  
X86	
  	
  
Proprietary	
  sovware	
  
MC	
   bash	
  
PID1	
  
FLV	
   Apache	
  
WM	
  
транслятор	
  
Аппаратная	
  виртуализация	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Linux	
  kernel	
  
MC	
   bash	
   косынка	
   минер	
  
IE9	
  Q3	
  Browser	
   CS	
  
Windows	
  Kernel	
  
Hypervisor	
  (Virtual	
  Machine	
  Monitor)	
  
CPU	
   Mem	
   IO	
   CPU	
   Mem	
   IO	
  
Аппаратная	
  виртуализация	
  
•  Аппаратная	
  поддержка	
  (Intel	
  VT,	
  ARM	
  TZ)	
  
•  Не	
  требует	
  модификации	
  гостевых	
  систем	
  
•  VMM	
  эмулирует	
  платформу	
  	
  
FLV	
   FLV	
  
FLV	
   FLV	
  
FLV	
  
Паравиртуализация	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Host	
  Kernel	
  
Guest	
  ABI	
  
Host	
  API	
  
Browser	
  
FLV	
   PID1	
  
WM	
  
MC	
   bash	
  
PID1	
  
FLV	
   Apache	
  
WM	
  
Паравиртуализация	
  
•  Требует	
  портирования	
  гостевого	
  ядра	
  
•  Позволяет	
  исполнять	
  двоичный	
  код	
  в	
  гостевой	
  
системе	
  
•  Драйвера	
  паравиртуализированного	
  ядра	
  
могут	
  работать	
  в	
  пространстве	
  пользователя	
  
Виртуализация	
  на	
  уровне	
  ОС	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Linux	
  Kernel	
  
MC	
   bash	
  
Browser	
  
FLV	
   PID1	
  
WM	
  
MC	
   bash	
  
PID1	
  
FLV	
   Apache	
  
WM	
  
Unix	
  kernel	
  interface	
  as	
  service	
  
•  write,	
  read	
  
•  stat,	
  lstat,	
  fstat,	
  fcntl	
  ioctl	
  
•  open,	
  close,	
  lseek	
  dirent	
  
•  getcwd,	
  fchdir	
  
•  select	
  
•  execve,	
  fork,	
  wait4	
  
getpid	
  
•  pipe	
  
•  dup2	
  
•  unlink,	
  rename,	
  mkdir	
  
•  networking	
  
•  socket	
  
•  getsockopt,	
  setsockopt	
  accept	
  
•  bind	
  
•  listen	
  
•  send,	
  sendto	
  
•  recv,	
  recvfrom	
  getpeername	
  
•  shutdown	
  
•  connect	
  
•  getaddrinfo	
  
В	
  то	
  время	
  как	
  в	
  Linux	
  более	
  300	
  системных	
  вызовов	
  
Виртуализация	
  на	
  уровне	
  ОС	
  на	
  примере	
  
Genode	
  
CPU:	
  ARM	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Fiasco.OC	
  
Recompiled	
  Unix	
  Program	
  
NOUX	
  
Core	
  
Init	
  
FreeBSD	
  libc	
  
libc	
  plugin	
  
VFS	
   IO	
  
Аппаратная	
  виртуализация	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Linux	
  kernel	
  
MC	
   bash	
   косынка	
   минер	
  
IE9	
  Q3	
  Browser	
   CS	
  
Windows	
  Kernel	
  
Hypervisor	
  (Virtual	
  Machine	
  Monitor)	
  
CPU	
   Mem	
   IO	
   CPU	
   Mem	
   IO	
  
Терминология	
  
Linux	
  kernel	
  
MC	
   bash	
  
Q3	
  Browser	
  
Виртуальная	
  машина	
  
Baremetal	
  hypervisor	
  
Гипервизор	
  первого	
  порядка	
  
CPU	
   Mem	
   IO	
  
hypervisor	
  
Гипервизор	
  Второго	
  порядка	
  
CPU	
   Mem	
   IO	
  
Kernel	
  
Structure	
  
•  Intro	
  
•  Virtualiza)on::Theory	
  
•  VT-­‐x	
  
•  ARM	
  TrustZone	
  
•  Microkernels	
  
•  L4	
  microkernel	
  family	
  
•  Paravirtualiza)on:	
  L4Linux	
  
•  Baremetal	
  microhypervisor	
  NOVA	
  
•  Conclusion	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Linux	
  kernel	
  
MC	
   bash	
  
Q3	
  Browser	
  
Hypervisor	
  (Virtual	
  Machine	
  Monitor)	
  
CPU	
   Mem	
   IO	
  
Ring	
  3	
  
Ring	
  2	
  
Ring	
  1	
  
Ring	
  0	
  
Ring	
  ??	
  
Кольца	
  x86	
  
VT-­‐x	
  
•  Технология	
  виртуализации	
  x86	
  
•  Два	
  режима	
  работы	
  процессора:	
  
– VMX	
  “root”	
  mode	
  (VM-­‐manager)	
  
– VMX	
  	
  “non-­‐root”	
  mode	
  (VM-­‐guests)	
  
	
  
VMM	
  
Host	
  
VM1	
  
Guest	
  
VM2	
  
Guest	
  
VMXON	
   VMXOFF	
  
VM	
  Entry	
  
VM	
  Exit	
  
VM	
  Entry	
  
VM	
  Exit	
  
VT-­‐x	
  
CPU	
   Mem	
   IO	
  
Linux	
  kernel	
  
MC	
   bash	
  
Q3	
  Browser	
  
Ring	
  3	
  
Ring	
  0	
  
Ring	
  3	
  
VT-­‐x	
  
VMM	
   Ring	
  0	
  
Non-­‐root	
  mode	
  root	
  mode	
  
Что	
  дальше?	
  
•  Extended	
  Page	
  Tabes	
  
•  Address	
  Transla)on	
  
•  Page-­‐table	
  shadowing	
  
•  I/O	
  Virtualiza)on	
  
•  DMA	
  в	
  гостевую	
  машину	
  
•  IOMMU	
  	
  
•  Миграция	
  
	
  
Structure	
  
•  Intro	
  
•  Virtualiza)on::Theory	
  
•  VT-­‐x	
  
•  ARM	
  TrustZone	
  
•  Microkernels	
  
•  L4	
  microkernel	
  family	
  
•  Paravirtualiza)on:	
  L4Linux	
  
•  Baremetal	
  microhypervisor	
  NOVA	
  
•  Conclusion	
  
Arm	
  Trust	
  Zone	
  
•  ARM1176JZ(F)-­‐S	
  processor	
  	
  
•  Cortex-­‐A8	
  processor	
  	
  
•  Cortex-­‐A9	
  processor	
  	
  
•  Cortex-­‐A9	
  MPCore	
  processor	
  	
  
	
  
•  Криптография	
  
•  Доверенное	
  хранилище	
  ключей	
  
•  Безопасный	
  процессинг	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Kernel	
  
MC	
   bash	
   VPN	
  
Trusted	
  
screen	
  
DRM	
  
FLV	
   crypto	
  
PIDK	
  
PID6	
  
PID10	
  
Kernel	
  
Secure	
  world	
  Normal	
  world	
  
Monitor	
  
Arm	
  Trust	
  Zone	
  
•  Виртуальный	
  процессор	
  
•  Управление	
  виртуальными	
  процессорами	
  в	
  
Monitor	
  Mode	
  
•  Виртуальный	
  MMU	
  
•  NS	
  bit	
  определяет	
  виртуальный	
  CPU	
  и	
  мир	
  
	
  
TZ	
  Example	
  
Source:	
  ARM	
  Security	
  Technology	
  Building	
  a	
  Secure	
  System	
  using	
  TrustZone®	
  Technology	
  
Arm	
  Trust	
  Zone	
  
Power	
  On	
  
ROM	
  boot	
  
First	
  loader	
  
Second	
  loader	
  
Secure	
  World	
  	
  
OS	
  boot	
  
Normal	
  World	
  
OS	
  boot	
  
System	
  Running	
  
Конец	
  первой	
  части	
  
Structure	
  
•  Intro	
  
•  Virtualiza)on::Theory	
  
•  VT-­‐x	
  
•  ARM	
  TrustZone	
  
•  Microkernels	
  
•  L4	
  microkernel	
  family	
  
•  Paravirtualiza)on:	
  L4Linux	
  
•  Baremetal	
  microhypervisor	
  NOVA	
  
•  Conclusion	
  
Microkernel	
  
•  Расскажу	
  немного	
  о	
  микроядрах	
  
•  Расскажу	
  об	
  L4	
  
•  Паравиртуализация	
  на	
  примере	
  L4Linux	
  
•  На	
  примере	
  NOVA	
  расскажу	
  о	
  bare-­‐metal	
  
hypervisor	
  
	
  
Система	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Kernel	
  
MC	
   bash	
   WM	
   apache	
  
Browser	
  
FLV	
   PIDN	
  
PIDK	
  
PID6	
  
PID10	
  
Монолитно-­‐модульная	
  система	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
MC	
   bash	
   WM	
   apache	
  
FLV	
   PIDN	
  PID6	
   PID10	
  
HAL	
  
System-­‐Call	
  interface	
  
FS	
   IPC	
   NET	
   Drivers	
   Scheduler	
   Mem	
   Swap	
  
И	
  это	
  плохо	
  
•  Отказ	
  драйвера	
  приводит	
  к	
  отказу	
  системы	
  
•  Огромное	
  количество	
  компонент	
  имеют	
  
привилегированный	
  доступ	
  	
  
•  Linux	
  огромен	
  
А	
  микроядра	
  это	
  хорошо	
  
•  Чем	
  меньше	
  размер	
  ядра	
  тем	
  меньше	
  в	
  
нем	
  можно	
  сделать	
  ошибок	
  
•  Маленькое	
  ядро	
  можно	
  верифицировать	
  
•  Жесткая	
  изоляция	
  и	
  защита	
  компонентов	
  
системы	
  
Микроядро	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
MC	
   bash	
   WM	
   apache	
  
Hardware	
  access	
   System-­‐Call	
  interface	
  
FS	
  
IPC	
  
NET	
   Drivers	
  
Scheduler	
  
Mem	
  Swap	
  
AS	
  Isola)on	
  
•  Первое	
  поколение:	
  Mach,	
  CMU	
  (1985-­‐1994)	
  
•  Второе	
  поколение	
  Minix3	
  (Andrew	
  
Tanenbaum,	
  VU	
  Amtrerdam)	
  
•  Семейство	
  операционных	
  систем	
  
построеных	
  на	
  идеологии	
  L4	
  	
  
Краткий	
  экскурс	
  в	
  историю	
  
Краткий	
  экскурс	
  в	
  историю	
  
Концепция	
  L4	
  
	
  
•  Ядро	
  предоставляет	
  минимальный	
  набор	
  
механизмов,	
  таких	
  как:	
  
–  Изоляция	
  адресного	
  пространства	
  
–  Управление	
  исполняемыми	
  единицами	
  (треды)	
  
–  Маппинг	
  ресурсов	
  
–  Механизм	
  коммуникации	
  
FLV	
   FLV	
  
FLV	
   FLV	
  
FLV	
  
Паравиртуализация::L4Linux	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
L4	
  
L4Linux	
  
Browser	
  
X11	
   PID15	
  
WM	
  
Ned	
   TCP/IP	
  
Sigma0	
  
tg3	
   Apache	
  
Moe	
  
L4Re	
  
L4Re	
  as	
  hardware	
  architecture	
  
L4	
  IPC	
  
FS	
   IPC	
   NET	
   Drivers	
   Scheduler	
   Mem	
   Swap	
  
L4Linux	
  в	
  разрезе	
  
L4Re	
  
Applica)on	
  
Компонент	
  ядра	
  
Пример	
  #1:	
  
Genode	
  +	
  2xL4Linux	
  +	
  Fiasco.OC	
  
FLV	
   FLV	
  
FLV	
  
CPU	
  
	
  main	
  
	
  memory	
  
I/O	
  
devices	
  
Fiasco.OC	
  
L4Linux	
  
bash	
  init	
  
Nitpicker	
  
Qt	
  
FB	
  
FLV	
   FLV	
  
FLV	
  L4Linux	
  
bash	
  init	
  
Fiasco.OC	
  +	
  Genode	
  FW	
  +	
  2xL4Linux	
  
NOVA	
  
•  NOVA	
  –	
  гипервизор	
  первого	
  порядка	
  
(baremetal)	
  
•  Поддерживает	
  только	
  x86	
  
•  Создан	
  в	
  TU	
  Dresden	
  
•  Гипервизоры	
  как	
  и	
  операционные	
  системы	
  
строятся	
  на	
  монолитной	
  идеологии.	
  NOVA	
  -­‐	
  
микроядерный	
  гипервизор	
  
CPU	
   Mem	
   IO	
  
Linux	
  kernel	
  
Linux	
  user-­‐space	
  
VMM	
  
R3	
  
R0	
  
R3	
  
NOVA	
  R0	
  
Non-­‐root	
  mode	
  root	
  mode	
  
Linux	
  kernel	
  
Linux	
  user-­‐space	
  
VMM	
   DRV	
   Sigma0	
  
NOVA	
  
Ссылки	
  
•  h£p://ksyslabs.ru	
  (.org,.com)	
  
•  h£p://hypervisor.org	
  
•  h£p://genode.org	
  
•  h£p://os.inf.tu-­‐dresden.de/L4Re/	
  
•  h£p://os.inf.tu-­‐dresden.de/fiasco/	
  
Летняя	
  Школа	
  Системного	
  
Программирования	
  2013	
  
•  5-­‐6	
  Августа	
  2013,	
  Москва	
  
•  Лекторы:	
  
– Bjoern	
  Doebel	
  (TU	
  Dresden)	
  
– Norman	
  Feske	
  (ex.	
  TU	
  Dresden,	
  Genode	
  Labs)	
  
– Udo	
  Steinberg	
  	
  (ex.	
  TU	
  Dresden,	
  Intel	
  Labs)	
  
– Sartakov	
  A.	
  Vasily	
  (ksys	
  labs)	
  
•  Стажировка/практика/трудоустройство	
  
•  Регистрация	
  на	
  сайте	
  h£p://sss.ksyslabs.org	
  
Спасибо	
  
Sartakov	
  A.	
  Vasily	
  
sartakov@ksyslabs.org	
  

More Related Content

PPTX
Серверы стандартной архитектуры
PPTX
ESXi 5.x CPU scheduler
PPTX
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
PDF
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
PPTX
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
PDF
linux and freebsd monitoring
PPTX
VMUG Moscow 2014 Проблемы с дисками?
ODP
Работа высоконагруженного DNS-сервера
Серверы стандартной архитектуры
ESXi 5.x CPU scheduler
Алексей Котов. "Разделяй и властвуй". IT-пятница, октябрь 2018
Whats new in_mikro_tik_ros_6_(megis,_mosсow_2013)_(russian_translate_by_white...
Ликбез по Эльбрусу, Константин Трушкин (МЦСТ)
linux and freebsd monitoring
VMUG Moscow 2014 Проблемы с дисками?
Работа высоконагруженного DNS-сервера

What's hot (15)

PPT
Лекция №7 Организация ЭВМ и систем
PDF
Лазейки в прошивке ядра LTE-модема
PDF
Новости семейства Cisco UCS.Технические подробности
PPTX
Практический опыт применения виртуализации для web-систем
PDF
Что нового в NOVA Microhypervisor
PPTX
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
PDF
3. Kulemin. kvm. June 01, 2013
PDF
PDF
Новейшие серверные решения от Fujitsu и как они позволяют экономить
PPT
Лекция №6 Организация ЭВМ и систем
ODP
ногинов Aoe Stripped
PDF
Новейшие серверные решения от Fujitsu и как они позволяют экономить
PPTX
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
PDF
Замкнутая программная среда. Виртуализация XEN
PDF
Вячеслав Бирюков - Linux инструменты системного администратора
Лекция №7 Организация ЭВМ и систем
Лазейки в прошивке ядра LTE-модема
Новости семейства Cisco UCS.Технические подробности
Практический опыт применения виртуализации для web-систем
Что нового в NOVA Microhypervisor
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
3. Kulemin. kvm. June 01, 2013
Новейшие серверные решения от Fujitsu и как они позволяют экономить
Лекция №6 Организация ЭВМ и систем
ногинов Aoe Stripped
Новейшие серверные решения от Fujitsu и как они позволяют экономить
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Замкнутая программная среда. Виртуализация XEN
Вячеслав Бирюков - Linux инструменты системного администратора
Ad

Similar to 1. Sartakov. Virtualization. June 01, 2013 (20)

PDF
TMPA-2013 Sartakov: Genode
PDF
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
PDF
Windows Azure Internals
PPTX
Опыт внедрения OpenStack
PPT
TMPA-2013 Smirnov
PDF
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
PPT
Myaso
PPT
Лекция №3 Организация ЭВМ и систем
PPT
Лекция № 3 Организация ЭВМ и систем
PDF
Как запустить виртуализированный ЦОД за час?
PDF
Вычислительная инфраструктура без американских производителей: реалии и возмо...
PPTX
Александр Чистяков - Практический опыт использования решений виртуализации в ...
PPT
025
PDF
Операционные системы
PPTX
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
PPT
Prez osob mikroproc
PPT
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
PDF
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
PDF
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
PDF
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
TMPA-2013 Sartakov: Genode
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Windows Azure Internals
Опыт внедрения OpenStack
TMPA-2013 Smirnov
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Myaso
Лекция №3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
Как запустить виртуализированный ЦОД за час?
Вычислительная инфраструктура без американских производителей: реалии и возмо...
Александр Чистяков - Практический опыт использования решений виртуализации в ...
025
Операционные системы
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Prez osob mikroproc
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
Ad

1. Sartakov. Virtualization. June 01, 2013

  • 1. Virtualiza)on  in  General   Sartakov  A.  Vasily   ksys  labs     Offline  Test  Day/2013-­‐06-­‐01  Virtualiza)on  
  • 2. Structure   •  Intro   •  Virtualiza)on::Theory   •  VT-­‐x   •  ARM  TrustZone   •  Microkernels   •  L4  microkernel  family   •  Paravirtualiza)on:  L4Linux   •  Baremetal  microhypervisor  NOVA   •  Conclusion  
  • 3. About   •  Аспирант  Technische  Universität   Braunschweig   •  ~8  лет  в  EE  &  CS   •  RnD  bootstrapping  @  ksys  labs    
  • 4. Virtualiza)on::Theory   All problems in computer science can be solved by another level of indirection" Butler Lampson, 1972"
  • 5. Система   CPU    main    memory   I/O   devices   Kernel   MC   bash   WM   apache   Browser   FLV   PIDN   PIDK   PID6   PID10  
  • 6. Двоичная  трансляция,  эмуляция   CPU:  ARM    main    memory   I/O   devices   Linux  Kernel   X86     Proprietary  sovware   MC   bash   PID1   FLV   Apache   WM   транслятор  
  • 7. Аппаратная  виртуализация   CPU    main    memory   I/O   devices   Linux  kernel   MC   bash   косынка   минер   IE9  Q3  Browser   CS   Windows  Kernel   Hypervisor  (Virtual  Machine  Monitor)   CPU   Mem   IO   CPU   Mem   IO  
  • 8. Аппаратная  виртуализация   •  Аппаратная  поддержка  (Intel  VT,  ARM  TZ)   •  Не  требует  модификации  гостевых  систем   •  VMM  эмулирует  платформу    
  • 9. FLV   FLV   FLV   FLV   FLV   Паравиртуализация   CPU    main    memory   I/O   devices   Host  Kernel   Guest  ABI   Host  API   Browser   FLV   PID1   WM   MC   bash   PID1   FLV   Apache   WM  
  • 10. Паравиртуализация   •  Требует  портирования  гостевого  ядра   •  Позволяет  исполнять  двоичный  код  в  гостевой   системе   •  Драйвера  паравиртуализированного  ядра   могут  работать  в  пространстве  пользователя  
  • 11. Виртуализация  на  уровне  ОС   CPU    main    memory   I/O   devices   Linux  Kernel   MC   bash   Browser   FLV   PID1   WM   MC   bash   PID1   FLV   Apache   WM  
  • 12. Unix  kernel  interface  as  service   •  write,  read   •  stat,  lstat,  fstat,  fcntl  ioctl   •  open,  close,  lseek  dirent   •  getcwd,  fchdir   •  select   •  execve,  fork,  wait4   getpid   •  pipe   •  dup2   •  unlink,  rename,  mkdir   •  networking   •  socket   •  getsockopt,  setsockopt  accept   •  bind   •  listen   •  send,  sendto   •  recv,  recvfrom  getpeername   •  shutdown   •  connect   •  getaddrinfo   В  то  время  как  в  Linux  более  300  системных  вызовов  
  • 13. Виртуализация  на  уровне  ОС  на  примере   Genode   CPU:  ARM    main    memory   I/O   devices   Fiasco.OC   Recompiled  Unix  Program   NOUX   Core   Init   FreeBSD  libc   libc  plugin   VFS   IO  
  • 14. Аппаратная  виртуализация   CPU    main    memory   I/O   devices   Linux  kernel   MC   bash   косынка   минер   IE9  Q3  Browser   CS   Windows  Kernel   Hypervisor  (Virtual  Machine  Monitor)   CPU   Mem   IO   CPU   Mem   IO  
  • 15. Терминология   Linux  kernel   MC   bash   Q3  Browser   Виртуальная  машина   Baremetal  hypervisor   Гипервизор  первого  порядка   CPU   Mem   IO   hypervisor   Гипервизор  Второго  порядка   CPU   Mem   IO   Kernel  
  • 16. Structure   •  Intro   •  Virtualiza)on::Theory   •  VT-­‐x   •  ARM  TrustZone   •  Microkernels   •  L4  microkernel  family   •  Paravirtualiza)on:  L4Linux   •  Baremetal  microhypervisor  NOVA   •  Conclusion  
  • 17. CPU    main    memory   I/O   devices   Linux  kernel   MC   bash   Q3  Browser   Hypervisor  (Virtual  Machine  Monitor)   CPU   Mem   IO   Ring  3   Ring  2   Ring  1   Ring  0   Ring  ??   Кольца  x86  
  • 18. VT-­‐x   •  Технология  виртуализации  x86   •  Два  режима  работы  процессора:   – VMX  “root”  mode  (VM-­‐manager)   – VMX    “non-­‐root”  mode  (VM-­‐guests)    
  • 19. VMM   Host   VM1   Guest   VM2   Guest   VMXON   VMXOFF   VM  Entry   VM  Exit   VM  Entry   VM  Exit   VT-­‐x  
  • 20. CPU   Mem   IO   Linux  kernel   MC   bash   Q3  Browser   Ring  3   Ring  0   Ring  3   VT-­‐x   VMM   Ring  0   Non-­‐root  mode  root  mode  
  • 21. Что  дальше?   •  Extended  Page  Tabes   •  Address  Transla)on   •  Page-­‐table  shadowing   •  I/O  Virtualiza)on   •  DMA  в  гостевую  машину   •  IOMMU     •  Миграция    
  • 22. Structure   •  Intro   •  Virtualiza)on::Theory   •  VT-­‐x   •  ARM  TrustZone   •  Microkernels   •  L4  microkernel  family   •  Paravirtualiza)on:  L4Linux   •  Baremetal  microhypervisor  NOVA   •  Conclusion  
  • 23. Arm  Trust  Zone   •  ARM1176JZ(F)-­‐S  processor     •  Cortex-­‐A8  processor     •  Cortex-­‐A9  processor     •  Cortex-­‐A9  MPCore  processor       •  Криптография   •  Доверенное  хранилище  ключей   •  Безопасный  процессинг  
  • 24. CPU    main    memory   I/O   devices   Kernel   MC   bash   VPN   Trusted   screen   DRM   FLV   crypto   PIDK   PID6   PID10   Kernel   Secure  world  Normal  world   Monitor  
  • 25. Arm  Trust  Zone   •  Виртуальный  процессор   •  Управление  виртуальными  процессорами  в   Monitor  Mode   •  Виртуальный  MMU   •  NS  bit  определяет  виртуальный  CPU  и  мир    
  • 26. TZ  Example   Source:  ARM  Security  Technology  Building  a  Secure  System  using  TrustZone®  Technology  
  • 27. Arm  Trust  Zone   Power  On   ROM  boot   First  loader   Second  loader   Secure  World     OS  boot   Normal  World   OS  boot   System  Running  
  • 29. Structure   •  Intro   •  Virtualiza)on::Theory   •  VT-­‐x   •  ARM  TrustZone   •  Microkernels   •  L4  microkernel  family   •  Paravirtualiza)on:  L4Linux   •  Baremetal  microhypervisor  NOVA   •  Conclusion  
  • 30. Microkernel   •  Расскажу  немного  о  микроядрах   •  Расскажу  об  L4   •  Паравиртуализация  на  примере  L4Linux   •  На  примере  NOVA  расскажу  о  bare-­‐metal   hypervisor    
  • 31. Система   CPU    main    memory   I/O   devices   Kernel   MC   bash   WM   apache   Browser   FLV   PIDN   PIDK   PID6   PID10  
  • 32. Монолитно-­‐модульная  система   CPU    main    memory   I/O   devices   MC   bash   WM   apache   FLV   PIDN  PID6   PID10   HAL   System-­‐Call  interface   FS   IPC   NET   Drivers   Scheduler   Mem   Swap  
  • 33. И  это  плохо   •  Отказ  драйвера  приводит  к  отказу  системы   •  Огромное  количество  компонент  имеют   привилегированный  доступ     •  Linux  огромен  
  • 34. А  микроядра  это  хорошо   •  Чем  меньше  размер  ядра  тем  меньше  в   нем  можно  сделать  ошибок   •  Маленькое  ядро  можно  верифицировать   •  Жесткая  изоляция  и  защита  компонентов   системы  
  • 35. Микроядро   CPU    main    memory   I/O   devices   MC   bash   WM   apache   Hardware  access   System-­‐Call  interface   FS   IPC   NET   Drivers   Scheduler   Mem  Swap   AS  Isola)on  
  • 36. •  Первое  поколение:  Mach,  CMU  (1985-­‐1994)   •  Второе  поколение  Minix3  (Andrew   Tanenbaum,  VU  Amtrerdam)   •  Семейство  операционных  систем   построеных  на  идеологии  L4     Краткий  экскурс  в  историю  
  • 38. Концепция  L4     •  Ядро  предоставляет  минимальный  набор   механизмов,  таких  как:   –  Изоляция  адресного  пространства   –  Управление  исполняемыми  единицами  (треды)   –  Маппинг  ресурсов   –  Механизм  коммуникации  
  • 39. FLV   FLV   FLV   FLV   FLV   Паравиртуализация::L4Linux   CPU    main    memory   I/O   devices   L4   L4Linux   Browser   X11   PID15   WM   Ned   TCP/IP   Sigma0   tg3   Apache   Moe   L4Re  
  • 40. L4Re  as  hardware  architecture   L4  IPC   FS   IPC   NET   Drivers   Scheduler   Mem   Swap   L4Linux  в  разрезе   L4Re   Applica)on   Компонент  ядра  
  • 41. Пример  #1:   Genode  +  2xL4Linux  +  Fiasco.OC   FLV   FLV   FLV   CPU    main    memory   I/O   devices   Fiasco.OC   L4Linux   bash  init   Nitpicker   Qt   FB   FLV   FLV   FLV  L4Linux   bash  init  
  • 42. Fiasco.OC  +  Genode  FW  +  2xL4Linux  
  • 43. NOVA   •  NOVA  –  гипервизор  первого  порядка   (baremetal)   •  Поддерживает  только  x86   •  Создан  в  TU  Dresden   •  Гипервизоры  как  и  операционные  системы   строятся  на  монолитной  идеологии.  NOVA  -­‐   микроядерный  гипервизор  
  • 44. CPU   Mem   IO   Linux  kernel   Linux  user-­‐space   VMM   R3   R0   R3   NOVA  R0   Non-­‐root  mode  root  mode   Linux  kernel   Linux  user-­‐space   VMM   DRV   Sigma0   NOVA  
  • 45. Ссылки   •  h£p://ksyslabs.ru  (.org,.com)   •  h£p://hypervisor.org   •  h£p://genode.org   •  h£p://os.inf.tu-­‐dresden.de/L4Re/   •  h£p://os.inf.tu-­‐dresden.de/fiasco/  
  • 46. Летняя  Школа  Системного   Программирования  2013   •  5-­‐6  Августа  2013,  Москва   •  Лекторы:   – Bjoern  Doebel  (TU  Dresden)   – Norman  Feske  (ex.  TU  Dresden,  Genode  Labs)   – Udo  Steinberg    (ex.  TU  Dresden,  Intel  Labs)   – Sartakov  A.  Vasily  (ksys  labs)   •  Стажировка/практика/трудоустройство   •  Регистрация  на  сайте  h£p://sss.ksyslabs.org  
  • 47. Спасибо   Sartakov  A.  Vasily   sartakov@ksyslabs.org