HermiTux: unikernel binari yang serasi dengan aplikasi Linux

Hermitux

Sekumpulan penyelidik dari Universiti Politeknik Virginia (USA), Universiti Teknikal Qualcomm dan Aachen Rhine-Westphalia (Jerman) mereka sedang membangun teras ringan Hermitux, sesuai dengan paradigma unikernel.

HermiTux adalah bertujuan untuk membenarkan menjalankan aplikasi secara langsung pada hypervisor tanpa memerlukan lapisan tambahan, yang memberikan keserasian binari dengan aplikasi Linux di peringkat ABI.

Kod HermiTux Ia ditulis dalam bahasa pengaturcaraan C dan diedarkan di bawah lesen BSD.

HermiTux menyediakan persekitaran sistem operasi yang minimum dengan kernel sendiri (unikernel), yang menggunakan sumber yang jauh lebih sedikit daripada ketika membuat persekitaran berdasarkan kernel Linux biasa.

Dengan ini membolehkan anda melancarkan aplikasi dengan cepat di hypervisor: masa mula tidak melebihi 0,1 saat.

Dalam ujian prestasi HermiTux, sekitar 3% ketinggalan dalam lingkungan dengan kernel Linux biasa, kerana overhead I / O meneruskan ke sisi host.

Penggunaan memori dalam persekitaran ujian adalah 9 MB, yang 10 kali lebih sedikit daripada ketika menggunakan kernel Linux (penggunaan Docker adalah sekitar 2MB kerana menggunakan kernel biasa dengan persekitaran host tanpa menggunakan virtualisasi penuh).

Mengenai HermiTux

Hermitux menonjol kerana bermaksud mempunyai kemampuan untuk menjalankan aplikasi yang tidak diubah suai dibuat untuk Linux, ini dilakukan melalui sokongan untuk format ELF, pelaksanaan panggilan sistem Linux dan peniruan sistem fail maya.

Pada peringkat semasa perkembangan HermiTux, ini melaksanakan 83 panggilan sistem. Secara keseluruhan, kernel Linux menyediakan lebih dari 350 panggilan sistem, tetapi hanya sebahagian kecil daripadanya digunakan dalam aplikasi nyata (untuk merangkumi 90% program pengedaran biasa, sudah cukup untuk melaksanakan 200 panggilan sistem).

Untuk mengurangkan kelewatan semasa memproses panggilan sistem, mekanisme pilihan dilaksanakan untuk mentakrifkan semula (menulis ulang) panggilan sistem untuk memanggil fungsi kernel khas.

Untuk aplikasi yang berkaitan secara statistik, adalah mungkin untuk menggantikan pernyataan syscall dengan panggilan fungsi dalam fail yang boleh dilaksanakan.

Untuk aplikasi yang berkaitan secara dinamik, penggantian dilakukan pada peringkat perpustakaan standard.

Selain itu, alat telah disediakan untuk menganalisis panggilan sistem yang terlibat dalam fail yang boleh dilaksanakan yang membolehkan anda mengumpulkan gambar HermiTux minimum yang merangkumi hanya kod yang diperlukan untuk memproses hanya panggilan sistem yang digunakan dalam aplikasi.

Hermitux

Ciri HermiTux

Hermitux menggunakan hypervisor berasaskan KVM ringan yang memuatkan binari Linux bersama dengan lapisan minimum sistem operasi dalam mesin maya ruang alamat tunggal. Pada masa berjalan, panggilan sistem yang dibuat oleh aplikasi ditangkap oleh kernel HermiTux.

Secara pilihan, HermiTux menyediakan mekanisme untuk menulis semula pemanggilan panggilan sistem pada panggilan fungsi kernel biasa, mengurangkan latensi panggilan sistem dengan ketara.

Dari sudut perlindungan, kata modulariti membenarkanDanDaripada menapis, panggilan sistem yang tidak digunakan (contohnya, melalui seccomp) ke kecualikan sepenuhnya dari kernel.

Aplikasi berjalan di ruang alamat bersama (HermiTux dirancang untuk berjalan di atas hypervisor aplikasi tunggal).

Sokongan threading asas (Pthreads Embedded) disediakan.

Sebagai sistem fail, MiniFS dicadangkan, di mana fail ditempatkan dalam RAM (RAM disk) dan beberapa elemen sistem fail maya (/ dev / zero, proc / cpuinfo, dll.) ditiru.

Tumpukan TCP / IP didasarkan pada projek LWIP, dan versi yang diubah suai dari projek Musl digunakan sebagai perpustakaan C standard.

HermiTux tidak memerlukan pemasangan semula aplikasi dan membolehkan anda menjalankan kedua-dua fail boleh laku yang disusun (berkaitan secara statik dan dinamik) dan aplikasi dalam bahasa yang ditafsirkan (Python, Lua, dll.).

Pautan projek.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.