Hacker News Digest

24 августа 2026 г. в 04:48 • fzakaria.com • ⭐ 306 • 💬 56

OriginalHN

#elf#glibc#ld-preload#nixos#operating-system#self#sqlite#transaction

Executable Is a SQLite Database

Идея заменить ELF-формат исполняемых файлов на SQLite — не шутка, а прототип под названием SELF, где сам файл — это SQLite-база, которую можно запускать как обычную программу. Вместо readelf и objcopy теперь можно писать SQL-запросы: SELECT name FROM elf_symbols или SELECT soname FROM ldd, чтобы узнать зависимости. Формат хранит все метаданные — символы, секции, зависимости — как таблицы, а не как бинарные структуры, что делает анализ и модификацию тривиальной задачей.

ELF на самом деле уже похож на базу данных — он вручную реализует индексы, строковые интернирование и внешние ключи, но без схемы и надёжности. SELF использует встроенную стабильность SQLite: изменения вроде LD_PRELOAD становятся транзакциями — можно вставить строку в таблицу preload, запустить программу, получить другой результат, а потом откатить всё одним ROLLBACK. Это позволяет атомарно перехватывать функции везде в системе без пересборки. Прототип работает с glibc, поддерживает конвертацию ELF ↔ SELF и даже запускается в NixOS-виртуальной машине. Nix даёт возможность перестроить мир — и SELF показывает, как можно переписать фундаментальные соглашения операционных систем.