FTL es un nuevo sistema operativo diseñado para entornos de nube, creado por el proyecto nuta en GitHub. El proyecto se posiciona como «un nuevo sistema operativo que busca ser un SO alternativo en entornos de nube frente a Linux/BSDs/Illumos». Su repositorio en GitHub luce una imagen de portada que resume su presencia en la investigación de sistemas operativos para la nube.
Imagen open graph de GitHub que muestra el repositorio del sistema operativo FTL, ilustrando la presencia del proyecto en la investigación de sistemas operativos para la nube.
La característica definitoria del diseño de FTL es su enfoque de «SO de espacio de usuario». En lugar de implementar características del SO como la gestión de procesos, el sistema de archivos virtual y TCP en el núcleo, FTL las mueve a una biblioteca de espacio de usuario llamada «SO de espacio de usuario». Este diseño es análogo a los exokernels, donde las características tradicionales del núcleo monolítico se mueven a una biblioteca de espacio de usuario (biblioteca SO). El propio núcleo FTL proporciona primitivas similares a un hipervisor: vCPU (subproceso), espacio de direcciones virtual (vmspace) y red virtual, sirviendo como una interfaz mínima que multiplexa los recursos de hardware.
FTL busca ser una alternativa de reemplazo directo a Linux en entornos de nube. Su capa de compatibilidad con Linux se implementa como una biblioteca de espacio de usuario en lugar de una característica en el núcleo, lo que significa que cada contenedor FTL tiene su propio núcleo de aplicaciones aislado y similar a Linux. Este enfoque difiere de la virtualización a nivel de núcleo tradicional: FTL utiliza el manejo de excepciones en modo usuario en lugar de la virtualización acelerada por hardware. El proyecto señala que esta técnica aparece en sistemas como WSL 1, el Linuxulator de FreeBSD y OSv, pero la implementación de FTL como una biblioteca de espacio de usuario es distintiva.
El proyecto afirma que «será más similar a BSD que a Linux», planeando incluir FTL con software de espacio de usuario integrado. Está bajo doble licencia MIT y Apache 2.0.
FTL está diseñado para ser ligero y adecuado para dispositivos con limitaciones, con un «código base fácil de entender y comprobable» que incluye pruebas de extremo a extremo con TypeScript y un ciclo rápido de editar-compilar-ejecutar. Los usuarios pueden comenzar instalando la toolchain de Rust, las herramientas de LLVM y QEMU, y luego ejecutando ./run.sh para construir y probar.
El proyecto reconoce que su ABI de Linux es «solo una de las interfaces de SO disponibles en FTL», con planes de añadir su propia personalidad y llamadas al sistema más allá de la compatibilidad con Linux. Las características planificadas de «interceptor» permitirían el control en tiempo de ejecución de los componentes del SO para limitación de tasas, auditoría de seguridad, enrutamiento de paquetes de red y parcheo en vivo.