Unikernel

Az egyedi magok  olyan speciális rendszerképek, ahol az összes folyamat azonos memóriaterülettel rendelkezik , amelyeket operációs rendszer könyvtárak segítségével hoztak létre . A fejlesztő moduláris készletből kiválaszt egy minimális könyvtárkészletet, amely megfelel az alkalmazás futtatásához szükséges operációs rendszer szolgáltatásainak . Ezek a könyvtárak majd összeállítani a kérelmet és konfigurációk létrehozásához egy célra állóképek közvetlenül futtatható egy hypervisor  vagy hardver  beavatkozása nélkül egy operációs rendszer , például Linux vagy a Windows .

Könyvtári operációs rendszer

A könyvtár operációs rendszerében a védelmi korlátokat alacsonyabb szintekre tolják , lehetővé téve:

  1. könyvtárak összessége, amelyek megvalósítják a hardver működtetéséhez vagy a hálózati protokollok kezeléséhez szükséges mechanizmusokat ;
  2. a hozzáférési és elkülönítési házirend alkalmazásszintű alkalmazására vonatkozó szabályrendszer .

Az első ilyen rendszerek   az 1990- es évek végén az Exokernel és a "Nemesis" voltak .

A könyvtári operációs rendszerek architektúrájának számos előnye és hátránya van a hagyományosabb rendszerek tervezéséhez képest. Az egyik előnye az, hogy mivel csak egy címtér van , a felhasználói rendszer és a kerneltér közötti privilégiumátmenetekre , amelyek a hagyományos rendszereken szabályosak, nincs szükség. Így a könyvtár operációs rendszere jobb teljesítményt nyújthat azáltal, hogy kontextusváltás nélkül közvetlen hozzáférést biztosít a hardverhez . Az egyik hátrány az, hogy mivel nincs szétválasztás, nehéz több alkalmazást együtt futtatni egy könyvtár operációs rendszerben erőforrásszigeteléssel. Ezen felül hardver illesztőprogramokra van szükség ahhoz a géphez, amelyen az operációs rendszer fut. A gyakori hardveres változtatások miatt problémát jelent az illesztőprogramok rendszeres átírása.

A virtualizáció lehetővé teszi a közös hardver ezen negatív pontjainak elkerülését. A modern hipervizorok lehetővé teszik a virtuális gépek egyszerű kezelését az általuk elfogyasztott processzoridő mellett, miközben erős elszigeteltséget biztosítanak . A virtuális gépen futó könyvtári operációs rendszernek csak a hipervizor által biztosított stabil virtuális hardver illesztőprogramjait kell implementálnia, és a valódi hardver kezelésének összetett feladatát a hipervizorra bízhatja. A hálózati protokollok használatát lehetővé tevő könyvtárakra azonban továbbra is szükség van egy hagyományosabb operációs rendszer által nyújtott szolgáltatások helyettesítésére. Ezeknek a protokollkönyvtáraknak a létrehozása jelenti a modern könyvtári operációs rendszer megvalósításának legnagyobb részét.

Előnyök és hátrányok 

Az unikerneleknek számos előnye van, de hátránya is a hagyományos operációs rendszerekhez képest.

Ezek az előnyök arra kényszerítik az egyedi szolgáltatásokat, hogy szolgáltatás-orientált rendszerként  vagy mikroszolgáltatásként használják.

A magas szintű specializáció azonban azt jelenti, hogy az egyedi magok nem alkalmasak általános felhasználású számítástechnikára , több felhasználóval, amelyekhez hagyományos operációs rendszereket használnak. A funkcionalitás hozzáadása vagy a lefordított unikernel módosítása általában nem lehetséges, és az elfogadott megközelítés egy új unikernel újrafordítása és telepítése a kívánt változtatásokkal.

Modern megvalósítások

Számos új megközelítés létezik az egyedi magok építéséhez, amelyek különböző fokozatúak.

Kattintson az OS gombra

A ClickOS egy nagy teljesítményű virtualizált platform készülékek számára , amely egy nyílt forráskódú virtualizációs rendszeren alapul . A teljesítményanalízisek azt mutatják, hogy a ClickOS virtuális gépek kicsiek ( 5 MB ), gyorsan indulnak  (akár 20 milliszekundumig), kevés késést adnak a célalkalmazáshoz (45 mikroszekundum), és több mint 100 futhat egyidejűleg, 10 Gb-os felületet telítve egy standard olcsó szerver .

Clive

A Clive egy operációs rendszer, amelyet elosztott számítástechnika és felhőalapú számítástechnika környezetében történő működésre terveztek, a Go programozási nyelven írva .

Felvonóhíd

A Drawbridge egy kutatási prototípus az alkalmazás homokozós virtualizációjának új formájához . A Drawbridge két alapvető technológiát ötvöz : egy pikoprocesszust, amely egy folyamatszintű izolációs konténer, minimális kernel API felülettel , és egy könyvtári operációs rendszert, amely a Windows olyan változata, amely módosítva van ahhoz, hogy hatékonyan futtasson egy pikoprocesszust. 

Grafén

Grafén egy Linux-kompatibilis könyvtár operációs rendszer, amely összpontosítja erőfeszítéseit biztosítására örökölt több folyamat , szerver vagy kagyló- típusú alkalmazásokat . A grafén egy többfolyamatos alkalmazást különít el több pico-folyamat felett, a folyamatok közötti absztrakciókat ( jelek , sorok , szemaforok stb.) Egyetlen folyamokban koordinálják . Többféle biztonsági elvű alkalmazások esetén a Graphene dinamikusan képes homokozni a kitett pikoprocesszust.

HaLVM

A HaLVM (Haskell könnyűsúlyú virtuális gép) a Glasgow Haskell Compiler portja , amely lehetővé teszi a fejlesztők számára, hogy magas szintű, könnyű virtuális gépeket írjanak , amelyek a Xen hipervizoron futnak .

Tartalmazza az OS-t

Az IncludeOS egy minimalista, szolgáltatás-orientált, nyílt forráskódú és beágyazható operációs rendszer a felhőszolgáltatásokhoz. Jelenleg ez egy kutatási projekt, amely lehetővé teszi a C ++ kód virtuális hardveren történő működését.

LING

A LING egy Erlang / OTP alapú unikernel,  amely képes értelmezni a .beam fájlokat. A fejlesztők létrehozhatnak Erlang kódot, és LING unikernelként telepíthetik. LING eltávolítja a legtöbb vektor fájlokat , csak akkor használja a három külső könyvtárakat, és nem használ OpenSSL .

MirageOS

A MirageOS egy olyan könyvtári operációs rendszer, amely lehetővé teszi egyedi magok létrehozását nagy teljesítményű, biztonságos hálózati alkalmazásokhoz sokféle mobil platformon vagy a felhőben. Jelenleg több mint száz MirageOS könyvtár és egyre több kompatibilis könyvtár található az OCaml ökoszisztémában .

Óceáni meteorológiai hajó

Az OSV  (in) a Cloudius Systems által kifejezetten a felhőben lévő virtuális gépek számára tervezett operációs rendszer. Másodpercnél rövidebb időn belül képes elindítani az OSv-t, amelynek egyetlen célja egy alkalmazás futtatása bármely hipervizoron, amely jobb teljesítményt és egyszerűbb kezelést kínál. Az OSv nem módosított Linux futtatható fájlokat futtathat (bizonyos korlátozásokkal), és támogatja a C , C ++ , Ruby , Node.js és JVM alapú nyelveket .

Rumprun

Runprun egy szoftver stack , amely lehetővé teszi, hogy futtatni  módosítatlan POSIX szoftver egy unikernel. A Rumprun több platformot is támogat, beleértve a hardveren és a hipervizorokon, például a Xen  vagy a KVM , közvetlen működést  . Kernel rump (in) -en alapul,   amely ingyenes , alkatrészekre szétválasztva hordozható szoftver-illesztőprogramokat és minőséget kínál, beleértve a fájlrendszereket , a POSIX hívórendszerek kezelőit , a pilóta hardveres PCI-t , az akkumulátor SCSI protokollját , a virtio-t és a TCP / IP- verem .  

Runtime.js

A Runtime.js egy nyílt forráskódú könyvtári operációs rendszer a felhő számára, amely a JavaScript virtuális gépen fut , és amely egy alkalmazáshoz mellékelhető, és könnyű, változhatatlan virtuális képként telepíthető. A Runtime.js a V8 javascript motorra  épül,  és jelenleg támogatja a QEMU / KVM hipervizort  .

Megjegyzések és hivatkozások

Megjegyzések

  1. A "Nemesis" projekt bemutató oldala - Nemesis

Hivatkozások

  1. "  Unikernels: A virtuális könyvtár operációs rendszer felemelkedése  " (hozzáférés : 2015. augusztus 31. )
  2. "  Miért Unikernels javíthat Internet Security  " (elérhető 31 augusztus 2015 )
  3. Anil Madhavapeddy , Richard Mortier , Rotsos Charalampos , David Scott , Balraj Singh , Thomas Gazagnaire , Steven Smith , Steven Hand és Jon Crowcroft , „  Unikernels: Library Operating Systems for the Cloud  ”, SIGPLAN Notices (ASPLOS 13) , vol.  48, n o  4,2013. március( DOI  10.1145 / 2499368.2451167 , online olvasás )
  4. David Kaloper-Meršinjak , Hannes Mehnert , Anil Madhavapeddy és Peter Sewell , „  Nem eléggé összetört TLS: Tanulmányok a biztonsági protokoll specifikációjának és megvalósításának újratervezéséhez  ”, a 24. USENIX biztonsági szimpózium (USENIX Security 15) közleményei ,2015( online olvasás )
  5. Anil Madhavapeddy , Richard Mortier , Ripduman Sohan , Thomas Gazagnaire , Steven Hand , Tim Deegan , Derek McAuley és Jon Crowcroft , „  A LAMP lefordítása : A szoftver szakosodása a felhőhöz  ”, a felhőalapú számítástechnika második témájának USENIX konferenciája ,2010( online olvasás )
  6. . Joao Martins , Ahmed Mohamed , Costin Raiciu és Felipe Huici , „A  gyors, dinamikus hálózati feldolgozás lehetővé tétele a ClickOS segítségével  ”, A második ACM SIGCOMM műhely témája a szoftveres hálózatok forró témáiról ,2013( DOI  10.1145 / 2491185.2491195 , online olvasás )
  7. "  Just-in-Time Summoning of Unikernels (v0.2)  " , Magnus Skjegstadon (megtekintés : 2015. augusztus 30. )
  8. "  Zerg  " , a Zergen - egy példány kérelemenként demo (elérhető : 2015. augusztus 30. )
  9. . Anil Madhavapeddy , Thomas Leonard , Magnus Skjegstad , Thomas Gazagnaire , David Sheets , David Scott , Richard Mortier , Amir Chaudhry , Balraj Singh , Jon Ludlam , Jon Crowcroft és Ian Leslie , „  Jitsu: Unikernels just-in-time summoning  ”, a 12. USENIX konferencia a hálózati rendszerek tervezéséről és megvalósításáról (NSDI) ,2015( ISBN  978-1-931971-218 , online olvasás )
  10. "  ClickOS és a hálózati funkciók virtualizálásának művészete  " (hozzáférés : 2015. augusztus 31. )
  11. "  The Clive Operációs Rendszer  " (hozzáférés : 2015. augusztus 31. )
  12. "  Felvonóhíd  " származó Microsoft Research (elérhető 30 augusztus 2015 )
  13. Tsai Chia-Che , Kumar-Saurabh Arora , Nehal Bandi , Bhushan Jain , William Jannen , Jitin John , Harry Kalodner , Vrushali Kulkarni , Daniela Oliviera és Donald E. Porter : „  Könyvtári operációs rendszerek együttműködése és biztonsági elkülönítése többfázisú alkalmazásokhoz  », A Számítógépes Rendszerek Kilencedik Európai Konferenciájának (EuroSys) anyagai ,2014( DOI  10.1145 / 2592798.2592812 , online olvasás )
  14. "  Graphene library OS  " , Stony Brook University (hozzáférés : 2016. január 31. )
  15. HaLVM
  16. Tartalmazza az OS-t
  17. "  Erlang on Xen: a szuperelasztikus felhők szívében  " (hozzáférés : 2015. augusztus 31. )
  18. MirageOS
  19. „  MirageOS: A programozási keretet épület típusbiztos, moduláris rendszerek  ” (elérhető 31 augusztus 2015 )
  20. "  MirageOS TROVE  " (hozzáférés : 2015. augusztus 31. )
  21. Avi Kivity , Glauber Costa , Pekka Enberg , Nadav Har'El , Don Marti és Vlad Zolotarov , „  OSv: Az operációs rendszer optimalizálása a virtuális gépek számára  ”, 2014. évi USENIX éves technikai konferencia ,2014. június( online olvasás )
  22. (en) Rumprun .
  23. (in) "  Rump Kernels  " a rumpkernel.org webhelyen (hozzáférés: 2015. augusztus 31. ) .
  24. Runtime.js

Kapcsolódó cikkek