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

What's hot

Лекция №7 Организация ЭВМ и систем
Лекция №7 Организация ЭВМ и системЛекция №7 Организация ЭВМ и систем
Лекция №7 Организация ЭВМ и системpianist2317
 
Лазейки в прошивке ядра LTE-модема
Лазейки в прошивке ядра LTE-модемаЛазейки в прошивке ядра LTE-модема
Лазейки в прошивке ядра LTE-модема
Positive Hack Days
 
Новости семейства Cisco UCS.Технические подробности
Новости семейства Cisco UCS.Технические подробностиНовости семейства Cisco UCS.Технические подробности
Новости семейства Cisco UCS.Технические подробности
Cisco Russia
 
Практический опыт применения виртуализации для web-систем
Практический опыт применения виртуализации для web-системПрактический опыт применения виртуализации для web-систем
Практический опыт применения виртуализации для web-системAlex Chistyakov
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA Microhypervisor
Yandex
 
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреСХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуре
СХД DEPO Storage 4600 для консолидации данных в современной IT-инфраструктуреDEPO Computers
 
3. Kulemin. kvm. June 01, 2013
3. Kulemin. kvm. June 01, 20133. Kulemin. kvm. June 01, 2013
3. Kulemin. kvm. June 01, 2013
ru-fedora-moscow-2013
 
Storage Bitblaze
Storage BitblazeStorage Bitblaze
Новейшие серверные решения от Fujitsu и как они позволяют экономить
Новейшие серверные решения от Fujitsu и как они позволяют экономитьНовейшие серверные решения от Fujitsu и как они позволяют экономить
Новейшие серверные решения от Fujitsu и как они позволяют экономить
Fujitsu Russia
 
Лекция №6 Организация ЭВМ и систем
Лекция №6 Организация ЭВМ и системЛекция №6 Организация ЭВМ и систем
Лекция №6 Организация ЭВМ и системpianist2317
 
ногинов Aoe Stripped
ногинов Aoe Strippedногинов Aoe Stripped
ногинов Aoe StrippedLiudmila Li
 
Новейшие серверные решения от Fujitsu и как они позволяют экономить
Новейшие серверные решения от Fujitsu и как они позволяют экономитьНовейшие серверные решения от Fujitsu и как они позволяют экономить
Новейшие серверные решения от Fujitsu и как они позволяют экономить
Fujitsu Russia
 
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...
Суперкомпьютеры сегодня и завтра архитектура, проблемы, перспективы (Андрей С...Ontico
 
Замкнутая программная среда. Виртуализация XEN
Замкнутая программная среда. Виртуализация XENЗамкнутая программная среда. Виртуализация XEN
Замкнутая программная среда. Виртуализация XEN
kzissu
 
Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Вячеслав Бирюков - Linux инструменты системного администратора
Вячеслав Бирюков - Linux инструменты системного администратора Yandex
 

What's hot (15)

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

Similar to 1. Sartakov. Virtualization. June 01, 2013

TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
Iosif Itkin
 
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Android Cloud... точнее Cloud из Android / Охрименко Алексей (Acronis)
Ontico
 
Windows Azure Internals
Windows Azure InternalsWindows Azure Internals
Windows Azure Internals
Alexander Feschenko
 
Опыт внедрения OpenStack
Опыт внедрения OpenStackОпыт внедрения OpenStack
Опыт внедрения OpenStack
Yandex
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 Smirnov
Iosif Itkin
 
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...
Лекция 5: Многопоточное программирование: часть 1 (Multithreading programming...Mikhail Kurnosov
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системpianist2317
 
Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
Александр Силантьев
 
Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?Как запустить виртуализированный ЦОД за час?
Как запустить виртуализированный ЦОД за час?
Cisco Russia
 
Вычислительная инфраструктура без американских производителей: реалии и возмо...
Вычислительная инфраструктура без американских производителей: реалии и возмо...Вычислительная инфраструктура без американских производителей: реалии и возмо...
Вычислительная инфраструктура без американских производителей: реалии и возмо...
КРОК
 
Александр Чистяков - Практический опыт использования решений виртуализации в ...
Александр Чистяков - Практический опыт использования решений виртуализации в ...Александр Чистяков - Практический опыт использования решений виртуализации в ...
Александр Чистяков - Практический опыт использования решений виртуализации в ...HappyDev
 
025
025025
025JIuc
 
Операционные системы
Операционные системыОперационные системы
Операционные системыyaevents
 
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Nutanix Acropolis - облако на базе KVM под ключ, Максим Шапошников (Nutanix)
Ontico
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Ontico
 
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Mikhail Kurnosov
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
IBS
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
Ontico
 

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

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

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