In Linux systems programming, the Executable and Linkable Format, known as ELF, has served as the unquestioned standard for binaries and shared libraries for decades. Developer Farid Zakaria has introduced a radical alternative called SELF, which stands for Structured Executable and Linkable Format. Instead of relying on traditional binary layouts, the concept directly utilizes SQLite database files as executable programs. The operating system loads a relational database structure containing all the machine code, symbols, and metadata required for execution within standardized tables.
The primary advantage of this architecture is the declarative inspection of binary data. With traditional formats, developers and compiler engineers rely on specialized utilities such as readelf, objdump, or bespoke parsing libraries to examine header information, symbol tables, and dynamic dependencies. In the SELF framework, a straightforward SQL query is sufficient to inspect cross-references, imported functions, and memory segments in a structured and efficient manner.
This approach is particularly relevant for modern automated development tools and AI-driven code analysis. Autonomous software agents and LLM-based inspection routines often struggle with the unstructured command-line output generated by legacy reverse-engineering tools. By storing all binary components in relational SQLite tables, AI systems can leverage standard SQL interfaces to perform deterministic security audits, dependency tracking, and integrity checks.
The SELF concept highlights how the boundaries between pure data storage and executable code are blurring. While databases are traditionally treated as passive stores for application state, the SQLite file here serves as a complete container for machine instructions and execution metadata. SQLite's broad portability ensures that these structures can be transferred, inspected, and validated across platforms without loss of structural context.
Despite its innovative nature, the project is primarily aimed at binary inspection, debugging workflows, and experimental runtime environments. A widespread replacement of standards like ELF in performance-critical production systems is not currently planned, as operating system kernels rely on highly optimized loaders tailored to native binary layouts. Nevertheless, SELF provides a compelling demonstration of how relational database engines can streamline low-level binary analysis.

