Máquinas de Minsky en terminfo de ncurses

Fuentes: Minsky Machines in ncurses terminfo

El artículo técnico explora cómo la expansión de parámetros en terminfo, un formato de descripción de terminales, puede simular máquinas de Minsky de dos contadores, demostrando así la completitud de Turing de este sistema. Basándose en observaciones previas de Gwen Weinholt y Martin Tournoij, el texto detalla cómo la estructura de terminfo, que incluye variables persistentes, aritmética y flujo de control condicional, permite implementar lógica universal sin bucles internos explícitos, utilizando la repetición de expansiones como mecanismo de reloj.

El autor presenta una implementación concreta de una máquina de Fibonacci que se ejecuta en el título de la ventana de un terminal, sincronizada con el reloj de /usr/bin/top. Este ejemplo ilustra la composición de componentes: la máquina de Fibonacci, el sistema de temporización y la interfaz de usuario. Aunque la implementación es teóricamente universal, las limitaciones prácticas de ncurses, como los límites de registro y el tamaño de las entradas, hacen que cualquier instancia real sea de estado finito.

El texto también analiza las implicaciones de seguridad, destacando que, aunque el programa es interpretado por un proceso con privilegios elevados como top, no constituye una vulnerabilidad de escalada de privilegios. Esto se debe a que terminfo no permite abrir archivos, ejecutar comandos externos ni realizar llamadas al sistema, limitando su impacto a la salida visual en el terminal.