В списъка на разработчиците на ядрото на Linux отново започна обсъждането, което беше инициирано преди шест години, относно перспективите за използване на съвременен код на C++ в ядрото на Linux, извън настоящото приложение на езика C с асемблерни вставки и промоцията на езика Rust. Темата за разработката на ядрото на C++ беше повдигната първоначално през 2018 година от инженер от Red Hat, който в първи април в знак на шега публикува пакет от 45 патча за използването на шаблони, наследявани класове и пренатоварване на функции C++ в кода на ядрото.
С инициативата за продължаване на дискусията се изказа Ханс Петер Анвин (Hans Peter Anvin), един от ключовите разработчици на ядрото в компанията Intel и създател на проекти като syslinux, klibc и LANANA, разработил за ядрото на Linux система за автоматично монтиране, реализация на RAID 6, драйвер CPUID и x32 ABI. Според Анвин, който е автор на множество макроси и асемблерни вставки в ядрото, от 1999 година насам езиците C и C++ значително напреднаха в своето развитие и C++ стана по-подходящ за разработка на ядрото на операционни системи в сравнение с C.
Възможностите, за които преди време се налагаше да се използват специфични разширения на GCC, сега са лесно реализируеми на стандартен C++, а в много случаи използването на C++ ще подобри инфраструктурата без глобални изменения в кода. Минимумът, който трябва да се спомене, е използването на спецификация C++14, която включва необходимите средства за метапрограмиране, а желаното е използването на спецификация C++20, в която се появи поддръжка на концепции, способни да предотвратят появата на множество грешки.
Анвин счита, че C++ е по-предпочитан от Rust, тъй като последният значително се различава от езика C по синтаксис, е непривичен за настоящите разработчици на ядрото и не позволява постепенно пренаписване на кода (в случай на C++ код, може по части да се прегрупира код от C, тъй като C кодът може да бъде компилиран като C++). За използването на C++ в ядрото също се изказаха Иржи Слаби (Jiri Slaby) от SUSE и Дейвид Хауълс (David Howells) от Red Hat.
Източник: opennet.ru
