IncludeOS est un prototype d'unikernel en C++. Un unikernel est une image machine fonctionnant avec un espace d’adressage simple construite à partir de bibliothèques pour reproduire un système d'exploitation. L'avantage est ainsi de construire un système spécialisé capable de démarrer dans une machine réelle ou virtuelle aussi léger et rapide que possible. De plus, le système est construit pour une tâche spécifique (pour une application spécifique) et n'embarquera donc pas de bibliothèques supplémentaires pouvant être inutiles.
IncludeOS est un unikernel en C++ orienté service. Il est maintenant gratuit et open source. Vous pouvez retrouver son code sur GitHub. La licence utilisée est Apache v2.
Grâce à IncludeOS vous allez pouvoir exécuter votre code C++ directement sur une machine virtuelle (KVM ou VirtualBox). Pour cela, la bibliothèque apporte un bootloader, les bibliothèques standards, de nombreux modules et le système. Il ne vous reste plus qu'à écrire le service.
Toutefois, IncludeOS n'est toujours qu'un prototype. Plus précisément, c'est un projet de recherche (Akershus University College of Applied Science, Oslo) ayant déjà résulté en une publication à la IEEE CloudCom 2015.
Fonctionnalités :
- empreinte mémoire très réduite ;
- support de KVM et VirtualBox avec virtualisation complète ;
- support du C++11/14 (libc++ pour la bibliothèque standard et libgcc pour les exceptions) ;
- bibliothèque standard C (newlib de RedHat) ;
- pilote réseau virtio ;
- pile réseau TCP/IP hautement modulaire.
Voici un exemple de service :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | #include <os> #include <stdio.h> void Service::start() { printf("Hello world - OS included!\n"); } |
Votre opinion
Avez-vous déjà utilisé un unikernel ? Lequel ?
Pensez-vous que cela a une utilité ? Laquelle ?
Comment pensez-vous pouvoir utiliser cette bibliothèque ?
Source
Site officiel