In de mailinglijst van Linux-kernelontwikkelaars is de discussie over de vooruitzichten van het gebruik van moderne C++-code in de Linux-kernel, die zes jaar geleden werd begonnen, heropend, naast het huidige gebruik van de programmeertaal C met assembly-inserties en de promotie van de programmeertaal Rust. Oorspronkelijk werd het thema van kernelontwikkeling in C++ in 2018 naar voren gebracht door een ingenieur van Red Hat, die op 1 april als grap een set van 45 patches publiceerde voor het gebruik van templates, geƫrfde klassen en functieoverloads van C++ in de code van de kernel.
Met de oproep om de discussie voort te zetten, kwam Hans Peter Anvin, een van de belangrijkste kernelontwikkelaars bij Intel en de maker van projecten zoals syslinux, klibc en LANANA, die een automount-systeem voor de Linux-kernel heeft ontwikkeld, de implementatie van RAID 6, de CPUID-driver en de x32 ABI. Volgens Anvin, die de auteur is van talrijke macro's en assembly-inserties in de kernel, zijn de programmeertalen C en C++ sinds 1999 aanzienlijk gevorderd in hun ontwikkeling en is C++ beter geworden dan C voor de ontwikkeling van besturingssystemen.
Mogelijkheden waarvoor men nog niet zo lang geleden specifieke GCC-uitbreidingen moest gebruiken, zijn nu eenvoudig te implementeren in standaard C++, en in veel gevallen zal het gebruik van C++ de infrastructuur verbeteren zonder wereldwijde codewijzigingen. Als minimale vereiste wordt het gebruik van de C++14-specificatie genoemd, die de benodigde hulpmiddelen voor metaprogrammering bevat, en als wenselijk het gebruik van de C++20-specificatie, die ondersteuning voor concepten biedt die de opkomst van vele fouten kunnen uitsluiten.
Anvin denkt dat C++ de voorkeur heeft boven Rust, omdat de laatste aanzienlijk verschilt van de syntaxis van C, ongebruikelijk is voor de huidige kernelontwikkelaars en geen geleidelijke herschrijving van de code mogelijk maakt (in het geval van C++ kan de C-code stapsgewijs naar C++ worden vertaald, omdat C-code als C++ kan worden gecompileerd). In ondersteuning van het gebruik van C++ in de kernel hebben ook Jiri Slaby van SUSE en David Howells van Red Hat positie gekozen.
Bron: opennet.ru
