Oracle prévoit de retravailler DTrace pour Linux en utilisant eBPF

Société Oracle a déclaré sur le travail de transfert des modifications liées à DTrace dans l'upstream et des plans pour la mise en œuvre de la technologie de débogage dynamique DTrace au-dessus de l'infrastructure standard du noyau Linux, notamment en utilisant des sous-systèmes tels que eBPF. À l'origine, le principal problème avec l'utilisation de DTrace dans Linux était l'incompatibilité au niveau des licences, mais en 2018, Oracle a redéfini le code DTrace sous GPLv2.

DTrace est déjà proposé depuis longtemps dans le cadre du noyau étendu pour la distribution Oracle Linux, mais son utilisation dans d'autres distributions nécessite l'application de correctifs supplémentaires pour le noyau, ce qui limite l'utilisation de ladite technologie. Par exemple, Oracle a préparé fournit des instructions détaillées sur l'installation et l'utilisation de DTrace dans Fedora Linux. Pour l'installation, il est nécessaire de construire l'outil et d'utiliser un noyau Linux reconstruit avec des correctifs. Pour automatiser la construction du noyau avec les correctifs Oracle et Fedora, un script.

eBPF est un interpréteur de bytecode intégré au noyau Linux, permettant de créer des gestionnaires d'opérations réseau, de suivre l'activité des systèmes, d'intercepter des appels systèmes, de contrôler l'accès, de traiter des événements avec synchronisation (perf_event_open), de compter la fréquence et le temps d'exécution des opérations, et d'exécuter du traçage à l'aide de kprobes/uprobes/tracepoints. Grâce à la compilation JIT, le bytecode est traduit en instructions machine à la volée et exécuté avec les performances d'un code natif. DTrace peut être implémenté au-dessus de eBPF, de la même manière que les outils de traçage existants. travaillent outils de traçage existants.

La technologie DTrace a été développée pour le système d'exploitation Solaris afin de résoudre des tâches de traçage dynamique du noyau du système et des applications finales, permettant à l'utilisateur de suivre en détail le comportement du système et de diagnostiquer les problèmes en temps réel. Lors du débogage, DTrace n'influence pas le fonctionnement des applications examinées et n'affecte en rien leur performance, ce qui permet d'organiser l'analyse des systèmes en fonctionnement à la volée. Parmi les points forts de DTrace, on note un langage de haut niveau, D, ressemblant à AWK, qui facilite considérablement la création de scripts de traçage par rapport aux outils proposés pour eBPF, qui nécessitent l'écriture de gestionnaires en C, Python et Lua avec des bibliothèques externes.

Les ingénieurs d'Oracle travaillent également sur la création d'un backend eBPF pour GCC et ont déjà publié un ensemble de patchs pour intégrer le support d'eBPF dans GCC et ont réussi à inclure le code de support pour eBPF dans GNU binutils. À l'origine, le backend pour le support d'eBPF est basé sur les technologies LLVM, mais la société Oracle est intéressée par l'ajout d'une fonctionnalité native de génération de programmes pour eBPF dans GCC, ce qui permettra d'utiliser un seul ensemble d'outils pour la compilation du noyau Linux et des programmes pour eBPF.

En plus du backend pour la génération de bytecode, les patches proposés pour GCC incluent également un port de libgcc pour eBPF et des outils pour la création de fichiers ELF, permettant d'exécuter du code dans la machine virtuelle eBPF à l'aide des chargeurs fournis par le noyau. Pour l'instant, seul le code en langage C peut être transposé en bytecode (toutes les fonctionnalités du langage ne sont pas disponibles), mais à l'avenir, l'extension des capacités applicables du langage C, l'ajout de la prise en charge d'autres langages, la création d'un simulateur et l'ajout de la prise en charge de GCC pour le débogage des programmes eBPF sans téléchargement dans le noyau sont attendus.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster