Hipervizor pentru sistemul încorporat

Hipervizorului pentru sisteme embedded desemnează dispozitive de virtualizare adaptate la specificul și constrângerile sistemelor integrate . Funcționarea acestor hipervizori diferă în principal în funcție de arhitectura procesorului , de cazul de utilizare și de nevoile sistemului încorporat vizat.

Cercetările în acest domeniu au fost dezvoltate în principal la începutul anilor 2010, pentru a satisface noile nevoi ale smartphone-urilor, în urma evoluției rapide a capacității lor de calcul.

În ciuda diferențelor lor operaționale, hipervizoarele destinate sistemelor încorporate se găsesc pe un anumit număr de concepte . Au fost propuse și uneori implementate mai multe tehnologii pentru diferite arhitecturi și cazuri de utilizare a sistemelor încorporate.

Prezentare generală

Istoric

Interesul pentru virtualizarea sistemelor încorporate s-a concretizat cu adevărat atunci când capacitățile tehnice ale smartphone-urilor s-au apropiat de cele ale serverelor și desktopurilor .

Gernot Heiser  (ro) a definit în 2008 rolul virtualizării sistemelor încorporate, arătând că acestea din urmă au caracteristici din ce în ce mai apropiate de sistemele în care virtualizarea este utilizată în mod tradițional, menționând în același timp că au păstrat anumite specificități intrinseci. Prezintă avantajele care pot fi aduse de virtualizarea sistemelor încorporate, citând în principal securitatea . Cu toate acestea, el observă că arhitectura sistemelor de la bord impune anumite constrângeri, în special nevoia de partajare eficientă a resurselor, precum și de virtualizare simplă și ușoară, cu cea mai mică amprentă posibilă. Pentru aceasta, oferă o implementare dedicată care este OKL4 , bazată pe micronucleul L4 .

Ulterior, au fost propuse alte abordări, cum ar fi XtratuM  (en) pentru sisteme critice în timp real .

Unele dintre aceste abordări s-au concretizat comercial, de exemplu în 2009 cu Motorola Evoke QA4 bazat pe un hipervizor L4. Gernot Heiser, în urma cercetărilor sale, a fondat Open Kernel Labs  (ro) , o companie care dezvoltă hipervizori și sisteme de operare dedicate sistemelor încorporate.

Domenii de aplicare

Cercetările privind virtualizarea sistemelor încorporate s-au concentrat în principal pe smartphone-uri .

Cu toate acestea, găsește alte utilizări, de exemplu în domeniul aeronauticii și astronauticii , sau chiar în automobil . O altă aplicație este cea din domeniul medical .

Mize

În comparație cu sistemele în care virtualizarea este utilizată în mod tradițional, sistemele încorporate au anumite specificități care le pot afecta virtualizarea potențială.

Printre acestea, putem remarca:

Concepte

Au fost propuse și uneori materializate mai multe implementări tehnice. Cu toate acestea, aceste abordări diferite se găsesc pe un anumit număr de concepte.

Abstracția arhitecturii hardware

Virtualizarea oferă un strat de abstractizare deasupra hardware-ului; astfel, mediul de dezvoltare poate fi văzut ca o mașină virtuală , care facilitează întreținerea acestuia în comparație cu un mediu dependent de hardware.

Acest lucru este cu atât mai relevant în domeniul smartphone-urilor, unde hardware-ul evoluează rapid și unde același sistem de operare poate fi utilizat pe hardware complet diferit (ceea ce este cazul pentru Android, de exemplu ).

Separarea componentelor software

Unul dintre principalele avantaje oferite de virtualizarea sistemelor încorporate este posibilitatea izolării componentelor sale.

În acest fel, putem avea pe de o parte sistemul de operare în timp real (în limba engleză RTOS, pentru sistemul de operare în timp real ) și, pe de altă parte, un sistem de operare al utilizatorului, gestionând mai degrabă partea aplicației. În acest fel, un defect într-o aplicație nu poate avea niciun impact asupra RTOS.

Comunicare intercomponentă

Sistemele virtualizate și hipervizorul trebuie să poată comunica între ele într-un mod simplu și eficient.

Într-adevăr, majoritatea sistemelor încorporate au resurse limitate și au constrângeri în timp real  : prin urmare, hipervizorul nu trebuie să ia prea mult din timpul de calcul al procesorului, iar metoda de comunicare între diferitele componente trebuie să rămână ușoară.

Implementări

Virtualizarea sistemelor încorporate trebuie să ia în considerare anumite limitări și specificități în comparație cu sistemele tradiționale de virtualizare. Prin urmare, au fost propuse mai multe abordări tehnice.

Mesovirtualizare

Mesovirtualizarea (traducerea termenului original englezesc mesovirtualizare ) este un concept de virtualizare ușoară propus în 2007 de Megumi Ito și Shuichi Oikawa.

Se numește minimalist, în sensul că hipervizorul este mic și sistemul gazdă nu are nevoie de modificări majore. De asemenea, se pretinde a fi eficient, în special pentru că hipervizorul execută doar un număr redus de instrucțiuni pe procesor.

Cu toate acestea, cercetările privind mezovirtualizarea nu au primit niciodată o aplicare concretă. De asemenea, se referea doar la arhitectura x86.

Xen

Xen este o soluție populară de virtualizare pe desktop-uri și servere.

Cu toate acestea, această virtualizare se bazează în principal pe funcționarea arhitecturii x86 . Mai degrabă, sistemele încorporate se bazează pe alte procesoare, cum ar fi ARM . Prezența instrucțiunilor privilegiate asupra acestei arhitecturi face imposibilă utilizarea capcanei și a emulării tehnicii Xen.

Utilizarea unei arhitecturi Xen rămâne posibilă pe sistemele încorporate, dar rămâne mai puțin eficientă decât ceea ce poate oferi L4. Apariția instrucțiunilor dedicate virtualizării în anumite procesoare ARM , cum ar fi Cortex-A15 , sugerează totuși o utilizare a Xen cu adevărat adaptată sistemelor încorporate.

Arhitectura de tip L4

Abordarea lui Gernot Heiser este de a avea un hipervizor cât mai mic posibil, din mai multe motive:

Prin urmare, propune o arhitectură bazată pe un micronucleu L4 , foarte eficientă și pentru care costul transmiterii mesajelor este foarte mic.

O comparație între această arhitectură și o arhitectură Xen în contextul sistemelor încorporate a dat avantajul arhitecturii L4 în ceea ce privește performanța și securitatea.

XtratuM

Anumite domenii de aplicare a sistemelor de la bord, precum aeronautica , fac din predictibilitate un element critic.

Hypervisor XtratuM  (in) a fost dezvoltat special pentru sistemele critice în timp real , care utilizează aplicații spațiale sigure bazate pe standardul Arinc 653 . Este un hipervizor de nivel scăzut care partajează memorie și procesor, permițând mai multor aplicații să ruleze independent.

Se bazează pe principiul paravirtualizării , care este potrivit pentru sistemele de bord cu constrângeri în timp real.

XtratuM a fost conceput pentru arhitectura SPARC V8 a procesorului Leon3 .

XtratuM este proiectat în trei straturi:

  1. stratul hardware: conține driverele necesare și este izolat de restul stratului de abstractizare hardware .
  2. stratul de serviciu intern: nu este accesibil din partiții. Conține baza bibliotecii C standard și un set de structuri de date. Unul dintre ele este încărcătorul de încărcare.
  3. stratul de serviciu de virtualizare: permite partițiilor să utilizeze servicii de paravirtualizare.

O partiție este un mediu de execuție gestionat de XtratuM care cuprinde unul sau mai multe procese implementate de un sistem de operare. Partițiile au acces la resursele procesorului determinate de o durată fixă ​​aleasă în funcție de nevoile lor. Programarea ciclului alocă timpul necesar fiecărei partiții, pe rând.

XtratuM funcționează cu două tipuri de partiții: partiții normale și partiții de sistem. Partițiile normale sunt limitate, în timp ce partițiile de sistem sunt utilizate pentru a gestiona și monitoriza starea sistemului și a altor partiții.

Arhitectura sa internă este alcătuită din:

Referințe

  1. Heiser 2011 , p.  901
  2. Chen 2011 , p.  2834
  3. Aguiar 2010 , p.  2
  4. Heiser 2008 , p.  11
  5. Heiser 2008 , p.  12
  6. Heiser 2008 , p.  12-13
  7. Heiser 2008 , p.  13-14
  8. Heiser 2008 , p.  15
  9. Heiser 2008 , p.  14-15
  10. Crespo 2010 , p.  67
  11. Gu 2012 , p.  282
  12. Chen 2011
  13. Brakensiek 2008
  14. Lange 2011
  15. Gudeth 2011
  16. Acharya 2009
  17. Crespo 2010
  18. Oh 2012 , p.  1100
  19. Aguiar 2010 , p.  11
  20. Chen 2011 , p.  2838
  21. Heiser 2011 , p.  903
  22. Hwang 2008 , p.  257
  23. Gu 2012 , p.  277
  24. Mittal 2013 , p.  445
  25. Aguiar 2010 , p.  5
  26. Chen 2011 , p.  2836
  27. Aguiar 2010 , p.  6
  28. Ito 2007 , p.  496
  29. Ito 2007 , p.  499
  30. Ito 2007 , p.  504
  31. Ito 2007 , p.  patru sute nouăzeci și șapte
  32. Hwang 2008 , p.  258
  33. Iqbal 2010 , p.  15
  34. Crespo 2010 , p.  68
  35. Gu 2012 , p.  278
  36. Crespo 2010 , p.  69

Bibliografie

Document utilizat pentru scrierea articolului : document utilizat ca sursă pentru acest articol.