Developpez.com - Rubrique Microsoft

Le Club des Développeurs et IT Pro

Microsoft adopte l'outil révolutionnaire eBPF du noyau Linux et veut l'étendre pour Windows

En exploitant les projets open source existants, comme IOVisor uBPF et PREVAIL

Le 2021-05-11 21:19:25, par Bill Fassinou, Chroniqueur Actualités
Après le sous-système Windows pour Linux (WSL), qui a été bien accueilli par les utilisateurs avérés du système d'exploitation, Microsoft décide d'emprunter une autre technologie majeure à la communauté Linux, eBPF (Extended Berkeley Packet Filter), et l'apporter à celle de Windows. La société a déclaré qu'il ne s'agira pas de créer un fork d'eBPF. Au contraire, elle utilisera des projets existants, notamment le projet IOVisor uBPF et le vérificateur PREVAIL, pour exécuter les programmes et les API d'eBPF sur ses propres systèmes d'exploitation, notamment Windows 10 et Windows Server 2016 (ou supérieur).

Ces cinq dernières années, Microsoft, qui, au début de ce millénaire, voyait encore Linux comme le cancer de l'industrie informatique, s'est littéralement transformé en un fan incontesté du noyau, et parallèlement un grand adepte de l'open source. Avec WSL, il a ouvert la voie à plusieurs applications sur Windows, en permettant aux administrateurs système et aux programmeurs d'utiliser des outils et services Linux directement depuis Windows sans avoir à virtualiser quoi que ce soit d'autre ou monter des infrastructures complexes. WSL 2 est entièrement intégré à Windows, de sorte que les deux systèmes peuvent interagir l'un avec l'autre.



Désormais, Microsoft choisit d'ajouter eBPF à Windows. eBPF est une technologie bien connue pour sa programmabilité et son agilité, en particulier pour l'extension du noyau d'un système d'exploitation, pour des cas d'utilisation tels que la protection contre les attaques de type DoS et l'observabilité. C'est une machine virtuelle à base de registres conçue pour fonctionner sur une architecture RISC 64 bits personnalisée via une compilation JIT dans le noyau Linux. En tant que tels, les programmes eBPF sont particulièrement bien adaptés au débogage et à l'analyse du système, comme le suivi des appels du système de fichiers et du registre.

La relation d'eBPF avec le noyau Linux a été comparée à la relation de JavaScript avec les pages Web, il permet de modifier le comportement du noyau Linux en chargeant un programme eBPF qui est exécuté, et ce sans modifier le code source du noyau ou charger un module du noyau. eBPF représente l'une des plus grandes innovations du noyau Linux de la dernière décennie. Et comme l'adaptation de la technologie à d'autres systèmes d'exploitation a suscité un certain intérêt, Microsoft a décidé de donner une chance au logiciel sous Windows. Le projet, baptisé ebpf-for-windows, est open source et est disponible sur GitHub.

« Le projet ebpf-for-windows vise à permettre aux développeurs d'utiliser les chaînes d'outils et les interfaces de programmation d'applications (API) familières d'eBPF sur les versions existantes de Windows », ont expliqué dans un billet de blogue lundi Dave Thaler, ingénieur logiciel partenaire chez Microsoft, et Poorna Gaddehosur, ingénieur logiciel principal chez Microsoft. « S'appuyant sur le travail des autres, ce projet prend plusieurs projets open source eBPF existants et ajoute la couche intermédiaire pour les faire fonctionner au-dessus de Windows ». L'entreprise n'appelle pas cela un fork d'eBPF.

De ce fait, les développeurs Windows pourront utiliser des outils tels que clang pour générer le bytecode eBPF à partir du code source qui peut être inséré dans n'importe quelle application ou utilisé avec la ligne de commande netsh de Windows. Selon l'entreprise, cela se fait via une bibliothèque partagée qui utilise les API Libbpf. La bibliothèque fait passer le bytecode eBPF par le vérificateur statique PREVAIL dans un environnement de sécurité Windows qui permet à un composant du noyau de faire confiance à un démon en mode utilisateur signé avec une clé de confiance. Le bytecode approuvé peut alors être exécuté



Les ingénieurs de Microsoft affirment que le projet vise à offrir la compatibilité du code eBPF en utilisant des crochets et des aides qui existent à la fois sur Linux et Windows. « Linux fournit de nombreux hooks et helpers, dont certains sont très spécifiques à Linux (utilisation de structures de données internes à Linux, par exemple) qui ne seraient pas applicables à d'autres plateformes », ont-ils déclaré.

« D'autres hooks et helpers sont applicables de manière générique, et l'intention est de les prendre en charge pour les programmes eBPF », ont-ils ajouté. Jusqu'à présent, deux hooksXDP et socket bind – ont été ajoutés pour gérer les événements et communiquer avec les API d'aide mises à disposition par la couche eBPF qui enveloppe les API publiques du noyau Windows. L'équipe estime qu'il y en aura d'autres avec le temps.

Sources : Annonce de Microsoft, Référentiel GitHub du projet

Et vous ?

Que pensez-vous du projet ebpf-for-windows ?

Voir aussi

Premières impressions sur WSL 2 : 13 fois plus rapide que WSL 1 et introduit une nouvelle ère pour le développement Web sous Windows, selon un développeur

Build 2020 : DirectX arrive sur le sous-système Windows pour Linux, Microsoft apporte les API DxCore, D3D12 et DirectML à Linux lors de l'exécution en WSL

Microsoft publie la version 0.9 de Rust for Windows, avec un support complet de l'API Windows et une prise en charge plus naturelle et idiomatique des interfaces COM

Windows 10 "Sun Valley" supprime les icônes de l'ère Windows 95, mais les résultats sont plus subtils que ce que l'on pourrait attendre d'une mise à jour visuelle vieille de plus de 25 ans
  Discussion forum
5 commentaires
  • smarties
    Expert confirmé
    Windows devrait songer à se renommer en Winlux ou quelque chose de similaire
  • DevTroglodyte
    Membre extrêmement actif
    Envoyé par smarties
    Windows devrait songer à se renommer en Winlux ou quelque chose de similaire
    Pas forcément, on écrit bien "Ubuntu" et non "Ubuntinx"... Je dis ça, parce que à force windows ne sera plus qu'une distrib linux comme les autres
  • JP CASSOU
    Membre confirmé
    2023: Microsoft Linux, à ce rythme ...
  • sirthie
    Membre éprouvé
    Envoyé par smarties
    Windows devrait songer à se renommer en Winlux ou quelque chose de similaire
    Lindows ?
  • chrtophe
    Responsable Systèmes
    il permet de modifier le comportement du noyau Linux en chargeant un programme eBPF qui est exécuté, et ce sans modifier le code source du noyau ou charger un module du noyau.
    Sous Windows, risque de porte ouverte pour les cryptolockers, mineurs de cryptomonnaies.