Dans la liste de diffusion des développeurs du noyau Linux, une discussion reprise il y a six ans sur les perspectives d'utilisation du code moderne en C++ dans le noyau Linux, en plus de l'usage actuel du langage C avec des insertions en assembleur et de la promotion du langage Rust. à l'origine, le sujet du développement du noyau en C++ a été soulevé en 2018 par un ingénieur de Red Hat, qui a publié le 1er avril en guise de blague un ensemble de 45 patches pour utiliser des modÚles, des classes héritées et la surcharge de fonctions C++ dans le code du noyau.
L'initiative de poursuivre la discussion a été menée par Hans Peter Anvin, l'un des développeurs clés du noyau chez Intel et créateur de projets tels que syslinux, klibc et LANANA, ayant développé pour le noyau Linux un systÚme de montage automatique, une implémentation de RAID 6, et le pilote CPUID et x32 ABI. Selon Anvin, qui est l'auteur de nombreux macros et insertions en assembleur dans le noyau, les langages C et C++ ont considérablement progressé depuis 1999 et C++ est devenu plus adapté que C pour le développement du noyau des systÚmes d'exploitation.
Les fonctionnalitĂ©s, qui nĂ©cessitaient encore rĂ©cemment des extensions spĂ©cifiques Ă GCC, peuvent dĂ©sormais ĂȘtre facilement rĂ©alisĂ©es en C++ standard, et dans de nombreux cas, l'utilisation de C++ permettra d'amĂ©liorer l'infrastructure sans modification globale du code. Comme minimum, l'utilisation de la spĂ©cification C++14 est mentionnĂ©e, qui inclut les outils nĂ©cessaires Ă la mĂ©taprogrammation, et comme souhaitable, l'utilisation de la spĂ©cification C++20, qui a introduit le support des concepts capables d'Ă©liminer de nombreuses erreurs.
Anvin estime que C++ est prĂ©fĂ©rable Ă Rust, car ce dernier diffĂšre considĂ©rablement du langage C au niveau de la syntaxe, est inhabituel pour les dĂ©veloppeurs du noyau actuels et ne permet pas de réécrire progressivement le code (dans le cas de C++, le code peut ĂȘtre traduit morceau par morceau depuis C, car le code C peut ĂȘtre compilĂ© en C++). Jiri Slaby de SUSE et David Howells de Red Hat ont Ă©galement soutenu l'utilisation de C++ dans le noyau.
Source : opennet.ru
