El desarrollador Farid Zakaria presenta SELF (Structured Executable & Linkable Format), un prototipo que reemplaza el formato ELF de los ejecutables en Linux por una base de datos SQLite. El proyecto, disponible en GitHub bajo el nombre selfdb, surge de años de trabajo previos del autor, entre ellos sqlelf —una herramienta que permite consultar archivos ELF con SQL— y su tesis doctoral. La idea central es que ELF ya funciona como una base de datos, pero reinventa a mano primitivas como índices, tablas de strings o claves foráneas; SQLite, en cambio, ofrece un formato autodescriptivo, estable y ampliable.
Un archivo SELF necesita solo dos tablas para ejecutarse: self_meta, con pares clave-valor equivalentes a la cabecera ELF, y segments, con los segmentos cargables del programa. Una tercera tabla, symbols, sustituye a las secciones habituales de símbolos y al índice .gnu.hash mediante un índice b-tree nativo de SQLite. El formato se identifica gracias al campo application_id de 64 bits reservado por SQLite, donde se estampa la marca SELF, y se ejecuta mediante binfmt_misc, que asocia el archivo a un intérprete en sistemas como NixOS.
La propuesta convierte herramientas clásicas de Unix en consultas SQL: nm se reduce a SELECT sobre imports, readelf -l a SELECT sobre segments, ldd a una vista que cruza símbolos y dependencias, y strip a una transacción DELETE + VACUUM. Zakaria sostiene que modificar un binario (patchelf) pasa a ser un UPDATE sobre la base de datos, eliminando la cirugía frágil de offsets propia de ELF. El artículo señala que todavía quedan por resolver detalles —el texto se corta antes de explicar cómo elf2self genera el formato— y Zakaria invita a quien esté interesado a explorar el código en el repositorio.
