تتلقى الحزمة الموقعة مجموعة محدودة من قدرات الأجهزة وMAVLink والقياس عن بُعد والمهمات والشبكة، وتعمل في عملية مستقلة وتتواصل مع المضيف عبر IPC قابل للتحقق. يجب ألا يوقف خطأ التوسعة الخدمات الحرجة للطيران.
وُصف نموذج التوسعات وCLI بوصفهما مواصفات مستهدفة؛ ولم يُصدر بعد سجل KairOS أو جذر التوقيع أو SDK العام.
مستودع KairOS ↗في هذه الصفحة +
خمسة حدود للحماية
الحزمة
تُحزم التوسعة بصيغة .kairosplug مع بيان وإصدار ونقطة دخول والقدرات المطلوبة والتوقيع.
الثقة
يُتحقق من توقيع Ed25519 قبل فك الحزمة؛ وتُطبَّق قائمة الإلغاء عند الإقلاع. لا يُسمح بالحزم غير الموقعة إلا في وضع المطور.
منح المشغّل
تُعرض الصلاحيات للمستخدم قبل التثبيت؛ وتتطلب الصلاحيات الحساسة تأكيدًا إضافيًا مستقلًا.
حد العملية
تعمل كل إضافة ضمن عملية فرعية وcgroup خاصتين بها مع حدود للمعالج والذاكرة وPID.
IPC بصلاحيات قدرات
يتحقق msgpack RPC عبر مقبس Unix من رمز القدرة عند كل استدعاء لـAPI المضيف.
تُجمع الصلاحيات حسب المورد الفعلي
| المجموعة | أمثلة على القدرات |
|---|---|
| الأجهزة | UART, I²C, SPI, GPIO, USB serial/UVC, CSI |
| MAVLink | القراءة والكتابة وتسجيل مكوّن خاص |
| القياس عن بُعد | الاشتراك والتوسعة ونشر الأحداث |
| المستشعرات / الحمولة | تسجيل مستشعر أو واجهة حمولة |
| المهمة | قراءة بيانات المهمة وكتابتها وتسجيلها |
| الشبكة | اتصالات HTTPS الصادرة فقط إلى قائمة السماح في البيان |
لا تعني الصلاحية وصولًا مباشرًا إلى النظام كله. مثلًا، يجب أن تمنح صلاحية UART جهازًا محددًا أو مقبضًا عبر وسيط، وأن تسمح الاتصالات الصادرة فقط بالنطاقات المعلنة مسبقًا. يستطيع المشغّل سحب المنح من Mission Control.
البيان والحد الأدنى لسياق الإضافة
name: cell-balance-monitor
version: 0.1.0
agent:
entry: cell_balance:run
capabilities:
- telemetry.read
- event.publishfrom kairos_sdk import PluginContext
async def run(ctx: PluginContext):
async for battery in ctx.telemetry.subscribe("telemetry.battery"):
cells = battery.get("cells", [])
if cells and max(cells) - min(cells) > 0.15:
await ctx.events.publish(
"alert.cell_imbalance",
{"spread_v": max(cells) - min(cells)},
)التثبيت والصلاحيات والسجلات والاختبارات
kairos plugin install ./thermal-cam.kairosplug
kairos plugin enable thermal-cam
kairos plugin list
kairos plugin disable <name>
kairos plugin remove <name>
kairos plugin info <name>
kairos plugin perms <name>
kairos plugin logs <name>
kairos plugin test <path>يتحقق install من الحزمة والتوقيع، ثم يعرض الصلاحيات المطلوبة. يشغّل enable العملية بعد منح الصلاحيات فقط. يُستخدم info وperms للتدقيق، وlogs للتشخيص، وtest لمسار التأليف المحلي. يجب أن توقف الإزالة العملية وتنظف حالتها المحددة النطاق دون المساس بالتوسعات الأخرى.
ثلاث إضافات أساسية وتوسعات للأجهزة
geofence
يتحقق من الموقع بالنسبة إلى المناطق المسموح بها وينشر حدثًا قابلًا للمراقبة.
telemetry-logger
يسجل تدفقات القياس المختارة مع حد للحجم ودورة حياة صريحة.
mavlink-inspector
يعرض الإطارات للتشخيص دون تغيير حالة الطيران افتراضيًا.
كاميرا حرارية
FLIR Lepton USB UVC، وY16 إشعاعي، ودرجات مئوية، ولوحة ألوان وخطوط تساوي الحرارة، وواجهة كاميرا MAVLink.
MAVLink Gimbal v2
جسر إلى وحدة تحكم خارجية، وأوامر وحالة الاتجاه، والمكوّن 154.
نفصل الإصدار الأول عن المراحل اللاحقة
| الإصدار الأول المستهدف | المرحلة التالية |
|---|---|
| تثبيت محلي موقّع | سجل مستضاف قابل للبحث |
| فرض صلاحيات القدرات عند كل IPC | حزمة kairos_sdk عامة مستقلة |
| الإضافات المدمجة وCLI | أداة إنشاء الهيكل والقوالب |
| مراجعة الصلاحيات وسحبها | التثبيت من عنوان Git URL |
| مشغّل الاختبارات | طبقة برامج تشغيل مشتركة ووثائق تأليف كاملة |