サイモン・ウィリソン氏のブログ (Simon Willison's Weblog) は8月24日(現地時間)、ファリド・ザカリア (Farid Zakaria) 氏がSQLiteデータベースファイルを直接実行可能なバイナリとして利用するLinux向けの新パターンを提示したと報じた。これは、SQLiteファイルフォーマットのアプリケーションIDを特定の文字列に設定することで実現する手法で、既存のデータベースファイルがシステムによって直接実行可能になるという革新的な提案だ。

ファリド・ザカリア氏が提示したこの技術的アプローチでは、SQLiteファイルフォーマットの68バイト目にある4バイトのアプリケーションIDを「SELF」という値に設定する。この「SELF」は、標準的な実行可能ファイル形式であるELF (Executable and Linkable Format) を連想させるもので、この設定により、ELFの各コンポーネントを複数のSQLiteテーブル内に格納することが可能になる。

ザカリア氏が提案する仕組みでは、C言語で記述された専用の「self-exec」インタプリタが、SQLiteデータベース内に格納された必要な情報を抽出し実行する。さらに、Linuxカーネルに実装されている「binfmt_misc」と呼ばれるメカニズムを活用することで、特定のバイナリパターンに一致する実行可能ファイルが検出された際、自動的にこのインタプリタを介して実行するよう設定できる。

ザカリア氏が自身の環境でNixOSを利用しているものの、この登録方法はNixOS以外の環境でも同様に提供される。例えば、printf '%s\n' ':self:M:68:SELF::/usr/local/bin/self-exec:' > /proc/sys/fs/binfmt_misc/register のようなコマンドを用いることで、カーネルに新しい実行形式として認識させることが可能であるとされている。


参考: Simon Willison’s Weblog — 2026年8月24日 20:38 (JST)

原文ハイライト

"Your executable is a SQLite database"

この記事をシェア
X はてブ LinkedIn