HeadlinesBriefing favicon HeadlinesBriefing.com

真にクエリ可能な実行ファイル: SQLiteプログラム

Hacker News •
×

私の記事『あなたの実行ファイルはSQLiteデータベースである』が広く共感を呼んだことを嬉しく思います。SELFは、プログラムがSQLiteデータベースである形式です。binfmt_miscを使用してカスタムインタープリタをトリガーし、segmentsテーブルの行をエントリーポイントへのジャンプにマッピングすることで、バイナリツールがSQLに集約されます。

驚くべき洞察: 実行ファイルが実行時に書き込み可能なデータベースであれば、実行中のプログラムは同じファイルにトランザクションの面からその状態を保存できます。self-httpdはこれを実証しています——プログラム、ウェブサイト、ルート、訪問者ログを含む単一ファイルのWebサーバー。すべての状態更新は、プログラム自体と同じSQLiteファイルで発生します。

redbeanがLuaフック付きの自己展開ZIPアーカイブを使用するのに対し、SELFはデータベース行をハンドラとして使用します。Luaスクリプトの代わりに、ハンドラはhandlersテーブルへのSQL INSERT文です。重要な違い: redbeanはスクリプトフックを提供しますが、SELFは実行中のプログラムからSELECTできるクエリ可能な実行ファイルを提供します。

プロセスは、実行ファイルのパスを含むargv[0]を通じて自分自身にアクセスします。インタープリタはエントリーポイントにジャンプする前にSQLite接続を解放し、プログラムが独自のファイルハンドルを開けるようにします。

主要エンティティ: 人物: Justine Tunney