Paket bertanda tangan menerima kumpulan kemampuan perangkat keras, MAVLink, telemetri, misi, dan jaringan yang terbatas, berjalan sebagai proses terpisah, dan berkomunikasi dengan host melalui IPC yang dapat diverifikasi. Kegagalan ekstensi tidak boleh menghentikan layanan kritis penerbangan.
Model ekstensi dan CLI dijelaskan sebagai kontrak yang ditargetkan; registri, akar penandatanganan, dan SDK publik KairOS belum dirilis.
Repositori KairOS ↗Pada halaman ini +
Lima batas perlindungan
Paket
Ekstensi dikemas sebagai .kairosplug dengan manifes, versi, titik masuk, kemampuan yang diminta, dan tanda tangan.
Kepercayaan
Tanda tangan Ed25519 diverifikasi sebelum ekstraksi; daftar pencabutan diterapkan saat boot. Paket tanpa tanda tangan hanya diizinkan dalam mode pengembang.
Pemberian izin operator
Izin ditampilkan kepada pengguna sebelum instalasi; izin sensitif memerlukan konfirmasi tambahan yang terpisah.
Batas proses
Setiap plugin berjalan dalam subproses/cgroup sendiri dengan batas CPU, memori, dan PID.
IPC kemampuan
RPC msgpack melalui soket Unix memverifikasi token kemampuan pada setiap panggilan API host.
Izin dikelompokkan berdasarkan sumber daya sebenarnya
| Kelompok | Contoh kemampuan |
|---|---|
| Perangkat keras | UART, I²C, SPI, GPIO, USB serial/UVC, CSI |
| MAVLink | Baca, tulis, dan pendaftaran komponen mandiri |
| Telemetri | Berlangganan, memperluas, dan memublikasikan peristiwa |
| Sensor / muatan | Mendaftarkan antarmuka sensor atau muatan |
| Misi | Baca, tulis, dan rekam data misi |
| Jaringan | Akses HTTPS keluar hanya ke daftar izin dalam manifes |
Izin tidak memberikan akses langsung ke seluruh sistem. Sebagai contoh, izin UART harus memberikan akses ke perangkat tertentu atau handle yang diperantarai, sedangkan akses jaringan keluar hanya mencakup domain yang dideklarasikan sebelumnya. Operator dapat mencabut izin dari Mission Control.
Manifes dan konteks plugin minimal
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)},
)Instalasi, izin, log, dan pengujian
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 memverifikasi paket dan tanda tangan, lalu menampilkan izin yang diminta. enable menjalankan proses hanya setelah izin diberikan. info dan perms mendukung audit, logs mendukung diagnosis, dan test mendukung pengembangan lokal. Penghapusan harus menghentikan proses dan membersihkan keadaan dalam lingkupnya tanpa menyentuh ekstensi lain.
Tiga plugin bawaan dan ekstensi perangkat
geofence
Memeriksa posisi terhadap zona yang diizinkan dan memublikasikan peristiwa yang dapat dipantau.
telemetry-logger
Merekam aliran telemetri terpilih dengan batas penyimpanan dan siklus hidup eksplisit.
mavlink-inspector
Menampilkan bingkai untuk diagnosis tanpa mengubah keadaan penerbangan secara bawaan.
Kamera termal
FLIR Lepton USB UVC, Y16 radiometrik, Celsius, palet/isoterm, dan antarmuka kamera MAVLink.
MAVLink Gimbal v2
Jembatan pengendali eksternal, perintah/status sikap, dan komponen 154.
Memisahkan rilis pertama dari tahap berikutnya
| Rilis pertama yang ditargetkan | Tahap berikutnya |
|---|---|
| Instalasi lokal bertanda tangan | Registri terhosting yang dapat dicari |
| Penegakan kemampuan pada setiap panggilan IPC | Paket kairos_sdk publik mandiri |
| Komponen bawaan dan CLI | Pembuat kerangka proyek dan templat |
| Peninjauan dan pencabutan izin | Instalasi dari URL Git |
| Pelaksana pengujian | Lapisan driver bersama dan dokumentasi pengembangan lengkap |