Diskussion om användning av C++-språket för utveckling av Linux-kärnan

I mailinglistan för utvecklarna av Linux-kärnan har diskussionen, som inleddes för sex år sedan, återupptagits kring utsikterna för att använda modern kod i C++ för kärnan i stället för det nuvarande användandet av C-språk i kombination med assemblerinslag samt främjandet av Rust-språket. Temat för att utveckla kärnan i C++ togs först upp 2018 av en ingenjör från Red Hat som den första april publicerade ett set av 45 patchar för att använda mallar, ärvda klasser och funktionsoverlagringar av C++ i kärnkoden.

Initiativet till att fortsätta diskussionen kom från Hans Peter Anvin, en av de viktigaste utvecklarna av kärnan på Intel och skaparen av projekt som syslinux, klibc och LANANA, som utvecklade automount-systemet för Linux-kärnan, implementerade RAID 6, CPUID-drivrutinen och x32 ABI. Enligt Anvin, som har skrivit många makron och assemblerinslag i kärnan, har C- och C++-språken gjort betydande framsteg sedan 1999 och C++ har blivit bättre lämpat än C för utveckling av operativsystemets kärna.

Möjligheter, som för inte så länge sedan krävde specifika GCC-tillägg, kan nu enkelt implementeras på standard C++, och i många fall kan användning av C++ förbättra infrastrukturen utan att göra stora förändringar i koden. Det nämns att C++14-specifikationen är minimalt önskvärd, som innehåller nödvändiga metaprogrammeringsverktyg, och C++20-specifikationen, som har stöd för koncept som kan förhindra många fel, är önskvärd.

Anvin anser att C++ är mer att föredra än Rust, eftersom det senare skiljer sig avsevärt från C när det gäller syntax, är ovanligt för nuvarande kärnutvecklare och tillåter inte gradvis omskrivning av koden (i fallet med C++ kan koden översättas stegvis från C, eftersom C-kod kan kompileras som C++). Även Jiri Slaby från SUSE och David Howells från Red Hat har stöttat användningen av C++ i kärnan.

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster