version du projet , permettant de former des systĂšmes d'exploitation Ă application unique, oĂč l'application est livrĂ©e comme un « unikernel » autonome, capable de fonctionner sans utilisation de systĂšmes d'exploitation, d'un noyau OS distinct et de couches intermĂ©diaires. Le langage OCaml est utilisĂ© pour le dĂ©veloppement d'applications. Le code du projet est sous licence libre ISC.
Toute la fonctionnalitĂ© de bas niveau propre au systĂšme d'exploitation est rĂ©alisĂ©e sous la forme d'une bibliothĂšque attachĂ©e Ă l'application. L'application peut ĂȘtre dĂ©veloppĂ©e sur n'importe quel systĂšme d'exploitation, puis compilĂ©e en un noyau spĂ©cialisĂ© (concept de ), qui peut ĂȘtre exĂ©cutĂ© directement au-dessus des hyperviseurs Xen, KVM, BHyve et VMM (OpenBSD), au-dessus des plateformes mobiles, sous forme de processus dans un environnement compatible POSIX ou dans des environnements cloud Amazon Elastic Compute Cloud et Google Compute Engine.
L'environnement généré ne contient rien de superflu et interagit directement avec l'hyperviseur sans pilotes ni couches systÚme, ce qui permet de réduire considérablement les frais généraux et d'améliorer la sécurité. Le travail avec MirageOS se divise en trois étapes : préparation de la configuration en définissant les , construction de l'environnement et lancement de l'environnement. Le runtime pour assurer le fonctionnement au-dessus de Xen est basé sur un noyau réduit , alors que pour d'autres hyperviseurs et systÚmes basés sur le noyau .
Bien que les applications et les bibliothÚques soient formées dans un langage de haut niveau (OCaml), les environnements finaux affichent des performances assez satisfaisantes et une taille minimale (par exemple, un serveur DNS n'occupe que 200 Ko). La maintenance des environnements est également simplifiée, car en cas de besoin de mise à jour ou de modification de configuration, il suffit de créer et de lancer un nouvel environnement. Plusieurs dizaines de bibliothÚques en OCaml pour effectuer des opérations réseau (DNS, SSH, OpenFlow, HTTP, XMPP, etc.), pour travailler avec des stockages et pour assurer le traitement parallÚle des données.
Les principales modifications de la nouvelle version concernent la prise en charge de nouvelles fonctionnalités proposées dans l'outil (environnement sandbox pour l'exécution de unikernel) :
- Une possibilitĂ© d'exĂ©cution de unikernel MirageOS dans un environnement isolĂ© ('sandboxed process tender'), fourni par l'outil . Lors de l'utilisation du backend spt, les noyaux MirageOS sont lancĂ©s dans des processus utilisateurs Linux, oĂč une isolation minimale basĂ©e sur seccomp-BPF est appliquĂ©e;
- Le support est implémenté du projet Solo5, qui permet de définir plusieurs adaptateurs réseau et dispositifs de stockage attachés à un unikernel, tout en maintenant l'isolation basée sur les backends hvt, spt et muen (l'utilisation des backends genode et virtio est encore limitée à un seul appareil);
- La protection des backends basés sur Solo5 (hvt, spt) a été renforcée, par exemple, une compilation en mode SSP (Stack Smashing Protection) a été assurée.
Source : opennet.ru
