Na seznamu za pošiljanje razvijalcev jedra Linux se je nadaljevala razprava o perspektivah uporabe sodobne kode v C++ v jedru Linux, poleg trenutne uporabe jezika C z vstavki assemblerja in promocijo jezika Rust, ki je bila začeta pred šestimi leti. Tema razvoja jedra v C++ je bila sprva predstavljena leta 2018 s strani inženirja iz podjetja Red Hat, ki je prvemo aprila kot šalo objavil niz 45 popravkov za uporabo predlog, dednih razredov in overloading funkcij C++ v jedrski kodi.
S pobudo za nadaljevanje razprave je nastopil Hans Peter Anvin, eden ključnih razvijalcev jedra v podjetju Intel in ustvarjalec projektov, kot so syslinux, klibc in LANANA, ki je razvil avtomatiziran sistem za montiranje v jedru Linux, implementacijo RAID 6, gonilnik CPUID in x32 ABI. Po Anvinovem mnenju, ki je avtor številnih makrov in vstavkov assemblerja v jedru, so se jeziki C in C++ od leta 1999 bistveno razvili in jezik C++ je postal bolj primeren za razvoj jedrskih operacijskih sistemov kot C.
Možnosti, za katere je bilo pred kratkim potrebno pritegniti specifične razširitve GCC, je zdaj enostavno izvedeti s standardnim C++, v mnogih primerih pa bo uporaba C++ izboljšala infrastrukturo brez obsežnih sprememb kode. Kot minimalno se omenja uporaba specifikacije C++14, ki vključuje potrebna orodja za metaprogramiranje, kot želena pa uporaba specifikacije C++20, ki prinaša podporo za koncepte, ki lahko odpravijo veliko napak.
Anvin meni, da je C++ boljša izbira kot Rust, saj se slednji bistveno razlikuje od jezika C po sintaksi, je nenavaden za trenutne razvijalce jedra in ne omogoča postopnega prepisovanja kode (v primeru C++ lahko postopoma prevajate kodo iz C, saj je C-koda mogoče prevesti kot C++). V podporo uporabi C++ v jedru so se izrekli tudi Jiri Slaby iz podjetja SUSE in David Howells iz Red Hat.
Izvor: opennet.ru
