Na mailing listě vývojářů jádra Linux se znovu rozproudila diskuze o perspektivách využití moderního kódu v C++ v jádru Linux, vedle současného použití jazyka C s assemblerovými vložkami a propagace jazyka Rust. Téma vývoje jádra v C++ bylo poprvé otevřeno v roce 2018 inženýrem z Red Hat, který prvního apríla jako žert zveřejnil sadu 45 patchů pro využití šablon, děděných tříd a přetěžování funkcí C++ v kódu jádra.
S iniciativou pokračovat v diskuzi vystoupil Hans Peter Anvin, jeden z klíčových vývojářů jádra ve společnosti Intel a tvůrce projektů jako syslinux, klibc a LANANA, který pro jádro Linux vyvinul systém automatického montování, implementaci RAID 6, ovladač CPUID a x32 ABI. Podle Anvina, který je autorem mnoha makro příkazů a assemblerových vložek v jádře, se jazyky C a C++ od roku 1999 významně posunuly vpřed a jazyk C++ se stal vhodnější pro vývoj jádra operačních systémů než jazyk C.
Možnosti, pro které bylo ještě nedávno nutné používat specifické rozšíření GCC, jsou nyní snadno realizovatelné ve standardním C++ a v mnoha případech umožní použití C++ zlepšit infrastrukturu bez globálních změn kódu. Jako minimální je uváděno využití specifikace C++14, která zahrnuje nezbytné prostředky metaprogramování, a jako žádoucí je uvedeno využití specifikace C++20, kde byla přidána podpora konceptů, které mohou vyloučit vznik mnoha chyb.
Anvin považuje C++ za preferovanější než Rust, protože ten se značně liší od jazyka C co se syntaxe týče, je neznámý pro současné vývojáře jádra a neumožňuje postupně přepisovat kód (v případě jazyka C++ lze kód převádět po částech, protože C-kód lze kompilovat jako C++). Pro využití C++ v jádru se také vyjádřili Jiri Slaby ze společnosti SUSE a David Howells z Red Hat.
Zdroj: opennet.ru
