HeadlinesBriefing favicon HeadlinesBriefing.com

Executáveis Consultáveis: Programas SQLite

Hacker News •
×

Fiquei agradavelmente surpreso ao ver meu artigo 'Seu executável é um banco de dados SQLite' ressoar amplamente. SELF é um formato onde programas são bancos de dados SQLite. Usando binfmt_misc para acionar um interpretador personalizado mapeando linhas na tabela segments para pular para o ponto de entrada, as ferramentas binárias colapsam em SQL.

A insight surpreendente: se o executável é um banco de dados gravável em tempo de execução, o programa em execução pode armazenar seu estado transacionalmente no mesmo arquivo. self-httpd demonstra isso — um servidor web de arquivo único contendo programa, site, rotas e logs de visitantes. Todas as atualizações de estado ocorrem no mesmo arquivo SQLite do próprio programa.

Enquanto redbean usa arquivos ZIP autoextraíveis com hooks Lua, SELF usa linhas de banco de dados como manipuladores. Em vez de scripts Lua, manipuladores são declarações SQL INSERT em uma tabela handlers. A diferença chave: redbean fornece hooks de script, SELF fornece executáveis consultáveis onde você pode SELECT do programa em execução.

O processo acessa a si mesmo via argv[0] contendo o caminho do executável. O interpretador libera sua conexão SQLite antes de pular para o ponto de entrada, permitindo que o programa abra seu próprio manipulador de arquivo.

Entidades Principais: Pessoas: Justine Tunney