Diskussion über die Verwendung von C++ zur Entwicklung des Linux-Kernels

In der Mailingliste der Linux-Kernel-Entwickler wurde die seit sechs Jahren angefangene Diskussion über die Möglichkeiten der Nutzung modernen C++-Codes im Linux-Kernel, neben dem aktuellen Einsatz der Programmiersprache C mit Assembler-Einfügungen und der Förderung der Programmiersprache Rust, fortgesetzt. Ursprünglich wurde das Thema der Kernel-Entwicklung in C++ 2018 von einem Ingenieur bei Red Hat aufgebracht, der am ersten April als Scherz eine Sammlung von 45 Patches zur Verwendung von Templates, vererbten Klassen und Überladung von C++-Funktionen im Kernel-Code veröffentlichte.

Die Initiative zur Fortsetzung der Diskussion kam von Hans Peter Anvin, einem der Schlüsselentwickler des Kernels bei Intel und Schöpfer von Projekten wie syslinux, klibc und LANANA, der für den Linux-Kernel ein Automount-System, die Implementierung von RAID 6, den CPUID-Treiber und die x32 ABI entwickelt hat. Anvins Meinung nach haben sich die Programmiersprachen C und C++ seit 1999 erheblich weiterentwickelt, und C++ ist besser geeignet als C für die Entwicklung von Betriebssystemkerneln.

Funktionen, für die man vor kurzem noch spezielle GCC-Erweiterungen benötigte, lassen sich jetzt problemlos in standardmäßigem C++ umsetzen, und in vielen Fällen wird die Verwendung von C++ die Infrastruktur verbessern, ohne den Code grundlegend zu verändern. Als Mindestanforderung wird die Verwendung der C++14-Spezifikation erwähnt, die die notwendigen Mittel zur Metaprogrammierung enthält, während als wünschenswert die Nutzung der C++20-Spezifikation gilt, die Unterstützung für Konzepte eingeführt hat, die viele Fehler ausschließen könnten.

Anvin ist der Ansicht, dass C++ Rust überlegen ist, da letzteres sich stark von C in der Syntax unterscheidet, für die aktuellen Kernel-Entwickler ungewohnt ist und kein schrittweises Umschreiben des Codes erlaubt (im Fall von C++ kann der C-Code schrittweise in C++ übersetzt werden, da C-Code als C++ kompiliert werden kann). Unterstützung für die Verwendung von C++ im Kernel haben auch Jiri Slaby von SUSE und David Howells von Red Hat geäußert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4