HeadlinesBriefing favicon HeadlinesBriefing.com

Ejecutables Realmente Consultables: Programas SQLite

Hacker News •
×

Me sorprendió gratamente ver que mi artículo 'Tu ejecutable es una base de datos SQLite' resonó ampliamente. SELF es un formato donde los programas son bases de datos SQLite. Usando binfmt_misc para activar un intérprete personalizado que mapea filas en la tabla segments para saltar al punto de entrada, las herramientas binarias colapsan en SQL.

La idea sorprendente: si el ejecutable es una base de datos escribible en tiempo de ejecución, el programa en ejecución puede almacenar su estado transaccionalmente en el mismo archivo. self-httpd demuestra esto: un servidor web de un solo archivo que contiene programa, sitio web, rutas y registros de visitantes. Todas las actualizaciones de estado ocurren en el mismo archivo SQLite que el programa mismo.

Mientras que redbean usa archivos ZIP autoextraíbles con ganchos Lua, SELF usa filas de base de datos como manejadores. En lugar de scripts Lua, los manejadores son sentencias SQL INSERT en una tabla handlers. La diferencia clave: redbean proporciona ganchos de scripting, SELF proporciona ejecutables consultables donde puedes hacer SELECT desde el programa en ejecución.

El proceso accede a sí mismo vía argv[0] que contiene la ruta del ejecutable. El intérprete libera su conexión SQLite antes de saltar al punto de entrada, permitiendo al programa abrir su propio manejador de archivo.

Entidades Clave: Personas: Justine Tunney