À propos du projet

gVisor fournit une couche d'isolation solide entre les applications en cours d'exécution et le système d'exploitation hôte. Il s'agit d'un noyau applicatif qui implémente une interface de type Linux, mais contrairement à Linux, il est écrit dans le langage Go sécurisé en mémoire et s'exécute en espace utilisateur. gVisor inclut un environnement d'exécution Open Container Initiative (OCI) appelé runsc qui s'intègre à Docker et Kubernetes, simplifiant ainsi l'exécution de conteneurs cloisonnés. Il ne s'agit ni d'un filtre d'appels système tel que seccomp-bpf, ni d'un wrapper autour de primitives d'isolation Linux comme firejail ou AppArmor, et ce n'est pas non plus une machine virtuelle traditionnelle. Au lieu de cela, gVisor adopte une troisième approche : il offre de nombreux avantages de sécurité des machines virtuelles tout en conservant une empreinte de ressources plus faible, un démarrage rapide et la flexibilité des applications classiques en espace utilisateur. Il limite la surface du noyau hôte accessible à l'application tout en lui donnant accès aux fonctionnalités attendues, implémentant ainsi Linux par le biais de Linux. Le projet est construit sur x86_64 et ARM64. Les instructions de construction couvrent l'utilisation d'un conteneur de construction encapsulé avec Bazel, la construction directe avec Bazel, l'exécution de suites de tests unitaires et standard, ainsi que les tests sur macOS. Une branche synthétique go est maintenue pour la compatibilité avec les outils Go standard, permettant aux paquets externes d'importer des sous-paquets gVisor tels que la mise en réseau en espace utilisateur via Netstack, bien que les constructions runsc à partir de cette branche ne soient pas prises en charge. La documentation, les guides de démarrage rapide et l'architecture technique sont disponibles sur gvisor.dev. Le dépôt inclut également des informations sur la gouvernance, les adoptants, la politique de sécurité et les contributions.