Voltar
Four-panel comic. A crow at a microphone says "Nix is great"; the audience
boos and shouts "get better material"; the crow looks stricken; the last panel
shows its remaining cue cards, which read "SQLite can be an object file format".
💾CEVIU

Executáveis como SQLite: Uma Revolução na Estrutura de Programas?

Aprofundamento CEVIU

Aprofundamento

A proposta de substituir o formato ELF (Executable and Linkable Format) por um banco de dados SQLite para criar executáveis, batizada de SELF (Structured Executable & Linkable Format), é uma jogada audaciosa. A ideia central é que o ELF, apesar de onipresente, é como um banco de dados rudimentar, implementando muitas primitivas à mão. O SQLite, por outro lado, oferece uma estrutura robusta, estável e auto-descritiva, com um esquema flexível para extensão.

Isso permite que ferramentas que operam sobre arquivos executáveis, como strip (para remover informações de debug) ou patchelf (para alterar caminhos de bibliotecas), funcionem como transações SQL. Um strip vira um DELETE seguido de VACUUM. Um patchelf, um UPDATE. O gerenciamento de símbolos e carregamento dinâmico também se beneficiam, usando queries SQL para resolver dependências de forma mais explícita. Este movimento se alinha com discussões anteriores do CEVIU News sobre software maleável e o uso inovador de bancos de dados como infraestrutura de sistema, como visto na matéria sobre o Cloudflare Computer de quatro de agosto de 2026, que usa SQLite para gerenciar estados em um sistema de arquivos virtuais.

O que mudou

Essa iniciativa representa uma evolução direta de trabalhos anteriores do autor. Antes, a exploração focava em sqlelf, uma ferramenta que permitia inspecionar arquivos ELF declarativamente usando SQL, tratando-os como bancos de dados para facilitar a análise. A grande sacada agora é ir além: não apenas analisar o ELF com SQL, mas fazer do executável em si um banco de dados SQLite. O que era uma ferramenta de inspeção se tornou um novo formato de empacotamento e execução.

A ideia, que antes era uma tese de PhD com feedback desmotivador, ganhou um protótipo funcional, o SELF. Isso demonstra que conceitos radicais, antes considerados inviáveis, podem se materializar com o avanço tecnológico, como as recentes melhorias em modelos de linguagem (LLMs) que impulsionaram a revisitação dessa proposta.

Por que isso importa

A adoção do SELF pode revolucionar a forma como construímos, distribuímos e gerenciamos software. Ao empacotar um executável e todas as suas dependências transitivas em um único arquivo SQLite (um “closure”), elimina-se a ambiguidade na resolução de bibliotecas e simplifica a distribuição. Mais interessante ainda, a deduplicação de código e bibliotecas em um sistema com centenas de executáveis, todos dentro de um único arquivo SQLite, resulta em uma redução de tamanho geral.

Isso não só otimiza o uso de disco, como também pode simplificar o desenvolvimento de ferramentas de segurança, auditoria e depuração, que poderiam interagir com os executáveis via SQL. O impacto na flexibilidade e na maleabilidade do software é enorme, permitindo um controle transacional sobre a configuração e o comportamento dos programas, um tema recorrente em nossa cobertura, como na matéria sobre "Software Maleável" de 19 de agosto de 2026.

Linha do tempo

  1. CEVIU News publica sobre Videoconferência com Postgres, mostrando o uso de DBs para funções não tradicionais.

  2. CEVIU News aborda a evolução na distribuição de software e a crescente maleabilidade da tecnologia.

  3. Cloudflare lança sistema de arquivos virtuais para otimização de código, gerenciando estados via SQLite.

  4. CEVIU News discute o futuro do software e a geração de código por especificações formais.

  5. CEVIU News noticia o lançamento de Acadia, linguagem que compila código funcional para SQL em SQLite.

  6. CEVIU News publica sobre o software maleável como nova fronteira de produtividade no mercado tech.

  7. F. Zakaria propõe SELF, executáveis baseados em SQLite, e demonstra um protótipo funcional.

Perguntas frequentes

O que é o formato SELF e como ele difere do ELF?

SELF, ou Structured Executable & Linkable Format, propõe que arquivos executáveis sejam bancos de dados SQLite. Diferente do ELF, que é um formato binário tradicional e compacto, o SELF usa a estrutura do SQLite para armazenar dados do programa, metadados e dependências. Isso permite interações mais flexíveis e declarativas via SQL.

Quais são as principais vantagens de usar SQLite como executável?

As vantagens incluem a capacidade de usar SQL para inspecionar e manipular o executável, um esquema auto-descritivo, operações transacionais para modificações como 'strip' ou 'patchelf' e a criação de 'closures'. Os closures empacotam o programa e suas dependências em um único arquivo SQLite, simplificando a distribuição e possibilitando deduplicação eficiente entre múltiplos programas.

Há impactos na performance ou tamanho dos arquivos?

Um único arquivo SELF pode ter o dobro do tamanho de um ELF equivalente devido ao overhead do SQLite. No entanto, quando múltiplos programas e suas dependências são agrupados em um único banco de dados, a deduplicação natural do SQLite reduz significativamente o tamanho total, superando o conjunto de arquivos ELF originais. Há um overhead fixo de cerca de 5ms no tempo de execução, além de uma cópia dos dados que pode impactar programas maiores.

Como o SELF se conecta com o conceito de 'software maleável'?

A natureza estruturada e transacional do SELF se alinha perfeitamente com a ideia de software maleável. Ele oferece maior flexibilidade na forma como os executáveis são gerenciados, modificados e distribuídos, permitindo uma interação programática mais granular e segura com seus componentes internos. Isso pode levar a sistemas mais adaptáveis e reconfiguráveis em tempo de execução.

Fontes

Avalie este artigo:
Categoria
CEVIU
Publicado
25 de agosto de 2026
Editoria
CEVIU

Quer receber mais sobre CEVIU?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser