HeadlinesBriefing favicon HeadlinesBriefing.com

ملفات تنفيذية قابلة للاستعلام: برامج SQLite

Hacker News •
×

لقد فوجئت بسرور لرؤية مقالي 'ملفك التنفيذي هو قاعدة بيانات SQLite' يلقى صدى واسعاً. SELF هو تنسيق حيث تكون البرامج قواعد بيانات SQLite. باستخدام binfmt_misc لتشغيل مفسر مخصص يعين صفوف في جدول segments للقفز إلى نقطة الدخول، تنهار أدوات الثنائية إلى SQL.

الرؤية المدهشة: إذا كان الملف التنفيذي قاعدة بيانات قابلة للكتابة في وقت التشغيل، يمكن للبرنامج الجاري تخزين حالته ترانزاكشنيا في نفس الملف. يوضح self-httpd هذا - خادم ويب بملف واحد يحتوي على البرنامج، الموقع، المسارات، وسجلات الزوار. تحدث جميع تحديثات الحالة في نفس ملف SQLite مثل البرنامج نفسه.

بينما يستخدم redbean أرشيفات ZIP ذاتية الاستخراج مع خطافات Lua، يستخدم SELF صفوف قاعدة البيانات كمعالجات. بدلاً من نصوص Lua، المعالجات هي عبارات SQL INSERT في جدول handlers. الفرق الرئيسي: يوفر redbean خطافات برمجية، بينما يوفر SELF ملفات تنفيذية قابلة للاستعلام حيث يمكنك SELECT من البرنامج الجاري.

تصل العملية إلى نفسها عبر argv[0] الذي يحتوي على مسار الملف التنفيذي. يطلق المفسر اتصال SQLite قبل القفز إلى نقطة الدخول، مما يسمح للبرنامج بفتح مقبض ملفه الخاص.

الكيانات الرئيسية: الأشخاص: Justine Tunney