En la lista de correo de los desarrolladores del núcleo de Linux se ha reanudado la discusión iniciada hace seis años sobre las perspectivas de usar código moderno en C++ en el núcleo de Linux, además del actual uso del lenguaje C con inserciones en ensamblador y la promoción del lenguaje Rust. Originalmente, el tema del desarrollo del núcleo en C++ fue planteado en 2018 por un ingeniero de Red Hat, quien el primero de abril, como broma, publicó un conjunto de 45 parches para utilizar plantillas, clases heredadas y sobrecarga de funciones de C++ en el código del núcleo.
Hans Peter Anvin, uno de los desarrolladores clave del núcleo en Intel y creador de proyectos como syslinux, klibc y LANANA, ha tomado la iniciativa de continuar la discusión. Anvin, quien desarrolló para el núcleo de Linux un sistema de montaje automático, la implementación de RAID 6, el controlador CPUID y x32 ABI, considera que desde 1999 los lenguajes C y C++ han avanzado significativamente, y que C++ se ha vuelto más adecuado para el desarrollo del núcleo de sistemas operativos que C.
Las capacidades que hasta hace poco requerían extensiones específicas de GCC ahora se pueden implementar fácilmente en C++ estándar, y en muchos casos el uso de C++ permitirá mejorar la infraestructura sin cambios globales en el código. Se menciona como mínimo el uso de la especificación C++14, que incluye las herramientas necesarias para la metaprogramación, y se desea el uso de la especificación C++20, que introdujo el soporte para conceptos capaces de eliminar muchos errores.
Anvin considera que C++ es preferible a Rust, ya que este último difiere significativamente de C en sintaxis, es poco familiar para los desarrolladores actuales del núcleo y no permite reescribir el código gradualmente (en el caso de C++, se puede traducir parte del código de C, ya que el código en C se puede compilar como C++). A favor del uso de C++ en el núcleo también se pronunciaron Jiri Slaby de SUSE y David Howells de Red Hat.
Fuente: opennet.ru
