HeadlinesBriefing favicon HeadlinesBriefing.com

Eksekusi Dapat Dikueri: Program SQLite

Hacker News •
×

Saya terkejut dengan senang hati melihat artikel saya 'Eksekusi Anda adalah database SQLite' berezonansi luas. SELF adalah format di mana program adalah database SQLite. Menggunakan binfmt_misc untuk memicu interpreter kustom yang memetakan baris di tabel segments untuk melompat ke entry point, tooling biner runtuh menjadi SQL.

Wawasan mengejutkan: jika eksekusi adalah database yang dapat ditulis pada runtime, program yang berjalan dapat menyimpan state-nya secara transaksional di file yang sama. self-httpd mendemonstrasikan ini — web server single-file yang berisi program, website, rute, dan log pengunjung. Semua update state terjadi di file SQLite yang sama dengan program itu sendiri.

Sementara redbean menggunakan arsip ZIP self-extracting dengan hook Lua, SELF menggunakan baris database sebagai handler. Alih-alih skrip Lua, handler adalah pernyataan SQL INSERT ke tabel handlers. Perbedaan kunci: redbean menyediakan hook scripting, SELF menyediakan eksekusi yang dapat dikueri di mana Anda bisa SELECT dari program yang berjalan.

Proses mengakses dirinya sendiri melalui argv[0] yang berisi path eksekusi. Interpreter melepaskan koneksi SQLite-nya sebelum melompat ke entry point, memungkinkan program untuk membuka file handle-nya sendiri.

Entitas Kunci: Orang: Justine Tunney