Nella mailing list degli sviluppatori del kernel Linux è ripresa la discussione iniziata sei anni fa sulle prospettive dell'uso del codice moderno in C++ nel kernel Linux, oltre all'attuale utilizzo del linguaggio C con inserimenti in assembler e alla promozione del linguaggio Rust. Inizialmente, il tema dello sviluppo del kernel in C++ è stato sollevato nel 2018 da un ingegnere di Red Hat, che per il primo aprile ha pubblicato per scherzo un insieme di 45 patch per l'uso di modelli, classi ereditate e sovraccarico di funzioni C++ nel codice del kernel.
L'iniziativa di proseguire la discussione è stata avanzata da Hans Peter Anvin, uno dei principali sviluppatori del kernel presso Intel e creatore di progetti come syslinux, klibc e LANANA, che ha sviluppato per il kernel Linux un sistema di automontaggio, l'implementazione di RAID 6, il driver CPUID e x32 ABI. Secondo Anvin, autore di numerosi macro e inserimenti in assembler nel kernel, dall'1999 i linguaggi C e C++ hanno fatto notevoli progressi nel loro sviluppo e il linguaggio C++ è diventato più adatto del C allo sviluppo di kernel di sistemi operativi.
Le funzionalità, per cui fino a poco tempo fa era necessario ricorrere a estensioni specifiche di GCC, sono ora facilmente realizzabili in C++ standard e, in molti casi, l'uso di C++ consentirà di migliorare l'infrastruttura senza modifiche globali al codice. Come minimo si menziona l'uso della specifica C++14, che include gli strumenti necessari per la metaprogrammazione, mentre come desiderabile si segnala l'uso della specifica C++20, che ha introdotto il supporto per i concetti in grado di escludere la comparsa di molti errori.
Anvin ritiene che il C++ sia più preferibile del Rust, poiché quest'ultimo differisce notevolmente dal linguaggio C per sintassi, è poco familiare agli attuali sviluppatori del kernel e non consente di riscrivere gradualmente il codice (nel caso del linguaggio C++, il codice C può essere tradotto parzialmente in C++ poiché il codice C può essere compilato come C++). A sostegno dell'uso del C++ nel kernel si sono espressi anche Jiri Slaby di SUSE e David Howells di Red Hat.
Fonte: opennet.ru
