HeadlinesBriefing favicon HeadlinesBriefing.com

Exécutables Interrogeables : Programmes SQLite

Hacker News •
×

J'ai été agréablement surpris de voir mon article 'Votre exécutable est une base de données SQLite' résonner largement. SELF est un format où les programmes sont des bases de données SQLite. En utilisant binfmt_misc pour déclencher un interpréteur personnalisé mappant les lignes de la table segments vers le point d'entrée, l'outillage binaire s'effondre en SQL.

L'insight surprenant : si l'exécutable est une base de données inscriptible à l'exécution, le programme en cours peut stocker son état transactionnellement dans le même fichier. self-httpd le démontre — un serveur web mono-fichier contenant programme, site web, routes et journaux de visiteurs. Toutes les mises à jour d'état se produisent dans le même fichier SQLite que le programme lui-même.

Alors que redbean utilise des archives ZIP auto-extractibles avec des hooks Lua, SELF utilise des lignes de base de données comme gestionnaires. Au lieu de scripts Lua, les gestionnaires sont des instructions SQL INSERT dans une table handlers. La différence clé : redbean fournit des hooks de script, SELF fournit des exécutables interrogeables où vous pouvez SELECT depuis le programme en cours.

Le processus s'accède via argv[0] contenant le chemin de l'exécutable. L'interpréteur libère sa connexion SQLite avant de sauter au point d'entrée, permettant au programme d'ouvrir son propre descripteur de fichier.

Entités Clés : Personnes : Justine Tunney