El kernel de Linux podría incorporar una nueva primitiva de creación de procesos para sustituir el patrón fork() + exec(), heredado de los primeros sistemas Unix y considerado costoso por la comunidad. El desarrollador Li Chen presentó el 28 de mayo un conjunto de parches que añaden "plantillas de spawn" al núcleo, pensadas para aplicaciones que ejecutan repetidamente el mismo binario, por ejemplo, invocar Git de forma consecutiva. El mecanismo se compone de dos llamadas al sistema: spawn_template_create(), que cachea información del ejecutable y devuelve un descriptor de fichero, y spawn_template_spawn(), que lanza el proceso reutilizando esa caché. Los benchmarks incluidos muestran una mejora de en torno al 2 % frente al flujo tradicional. Los revisores, sin embargo, cuestionaron el enfoque. Mateusz Guzik sostuvo que la propuesta deja intacta la parte más cara del proceso, la copia de estado propia de fork(), y defendió crear procesos "prístinos" desde cero. Christian Brauner, de Red Hat, propuso una API alternativa basada en la abstracción pidfd, con un nuevo pidfd_config() análogo a fsconfig() y orientado a soportar una implementación nativa de posix_spawn() en espacio de usuario. Chen reconoció que el esquema de Brauner es más adecuado y avanzó que el trabajo futuro seguirá esa línea. Aunque los "spawn templates" no entrarán en el núcleo tal como estaban planteados, la discusión allana el camino hacia un reemplazo moderno del venerable fork() + exec() en Linux.
Linux debate cómo sustituir el patrón fork() + exec() en el núcleo
Fuentes:
Moving beyond fork() + exec()
