Ironclad – kernel OS keluarga Unix dengan dukungan real-time
(ironclad-os.org)- Ironclad adalah kernel keluarga Unix dengan dukungan real-time berbasis verifikasi formal untuk lingkungan umum dan embedded
- Verifikasi formal: serangkaian proses dan pemeriksaan yang dilalui kode kernel untuk menjamin tidak adanya error saat runtime (AoRTE, Absence of Runtime Errors) serta ketepatan komponen
- Ditulis dengan SPARK dan Ada, serta tersusun dari 100% perangkat lunak bebas
- Mendukung antarmuka kompatibel POSIX, multitasking preemptive, mandatory access control (MAC), dan penjadwalan hard real-time
- Didistribusikan dengan lisensi GPLv3, sambil mempertahankan arsitektur open source sepenuhnya tanpa firmware blob
- Dapat diporting ke berbagai platform, dan ekosistemnya terus berkembang melalui distribusi seperti Gloire
Ikhtisar kernel sistem operasi Ironclad
- Ironclad adalah kernel keluarga UNIX dengan dukungan real-time yang menerapkan verifikasi formal secara parsial
- Dirancang untuk sistem tujuan umum maupun embedded
- Verifikasi formal: serangkaian proses dan pemeriksaan yang dilalui kode kernel untuk menjamin tidak adanya error saat runtime (AoRTE, Absence of Runtime Errors) serta ketepatan komponen
- Untuk itu, proyek ini menggunakan SPARK, subset dari Ada
- Seluruh kodenya tersusun dari perangkat lunak bebas
- Kernel ini menyediakan antarmuka kompatibel POSIX serta mendukung multitasking preemptive, mandatory access control (MAC), dan penjadwalan hard real-time
- Memberikan pengalaman pengembangan yang mirip dengan lingkungan UNIX yang ada
- Strukturnya cocok untuk sistem yang memerlukan kontrol real-time
Karakteristik sebagai perangkat lunak bebas
- Ironclad didistribusikan sebagai open source sepenuhnya di bawah lisensi GPLv3
- Kernel tidak menyertakan firmware blob
- Semua komponen dalam stack tersedia dalam bentuk open source
Verifikasi Formal
- Memanfaatkan fitur verifikasi formal pada bahasa SPARK untuk menjamin ketiadaan kesalahan dan ketepatan komponen utama
- SPARK memverifikasi konsistensi logis kode secara matematis dengan mendeskripsikan prasyarat (Pre), pascasyarat (Post), dependensi (Depends), dan lainnya pada kode Ada
- Objek verifikasi mencakup modul kriptografi, sistem MAC, dan fitur terkait antarmuka pengguna
Portabilitas dan lingkungan pengembangan
- Ironclad telah diporting ke berbagai platform dan board, dan dirancang agar porting tambahan mudah dilakukan
- Hanya bergantung pada toolchain GNU sehingga cross-compilation dapat dilakukan dengan mudah
- Berkat kompatibilitas POSIX, porting perangkat lunak dan pengembangan menjadi lebih mudah
Distribusi dan ekosistem
- Proyek Ironclad menyediakan distribusi untuk beragam arsitektur dan board
- Distribusi bebas dan open source yang representatif adalah Gloire
- Menyediakan image distribusi dalam bentuk tarball yang dapat diunduh
Dukungan proyek dan keberlanjutan
- Ironclad dipertahankan sebagai proyek yang bebas digunakan, diteliti, dan dimodifikasi
- Operasional proyek bergantung pada donasi dan hibah
- Setiap kontribusi secara langsung memengaruhi perluasan dan perkembangan proyek
1 komentar
Komentar Hacker News
Proyek yang menarik. Saya penasaran dengan batasan verifikasi formal untuk worst-case execution time (WCET)
Ada juga kernel terverifikasi lain seperti seL4 dan atmosphere, dan lapisan kompatibilitas POSIX juga bisa ditumpuk seperti genode
Ada pula kernel yang sepenuhnya kompatibel dan matang seperti QNX atau VxWorks, jadi verifikasi penuh mungkin tidak menambah banyak nilai
Namun, saya hampir tidak pernah melihat contoh yang sekaligus memiliki WCET + verifikasi formal + kompatibilitas POSIX
Pada tahap saat ini, sulit mengatakan bahwa tingkat kematangannya sudah cukup tinggi untuk langsung dipakai pada use case real-time seperti yang disebutkan di dokumentasi
seL4 jauh lebih cepat daripada Linux, tetapi ini sepertinya akan lambat. POSIX pada dasarnya punya cacat, dan MAC terlalu rumit sehingga sulit dipakai dalam praktik
Ada termasuk bahasa keluarga Wirth (keluarga Pascal). Sejauh ini, saya hanya tahu TUNIS sebagai kernel mirip Unix yang ditulis dengan bahasa keluarga Wirth
TUNIS diimplementasikan dengan Concurrent Euclid
Selain itu, Sol dari INRIA pada tahun 80-an diimplementasikan dengan dialek Pascal dan menyediakan lingkungan yang kompatibel dengan Unix, lalu berlanjut menjadi Chorus
Ada juga perusahaan terkait NDA bernama Ironclad. Perlu hati-hati soal masalah merek dagang
Meski begitu, upaya seperti ini benar-benar menyenangkan untuk dilihat. Namun dalam kenyataannya, mata rantai terlemah dalam keamanan adalah lapisan firmware
Impian saya adalah perangkat keras seperti komputer Framework memiliki firmware EFI yang terverifikasi serta firmware tiap komponen yang diaudit
Membuat OS baru benar-benar langkah yang ambisius. Baru-baru ini Radiant Computer juga sempat muncul, jadi saya penasaran apakah ada proyek menarik serupa lainnya
Saya berharap suatu hari nanti kernel yang sepenuhnya diverifikasi secara formal menjadi umum
Memverifikasi seluruh Linux mungkin tidak mungkin, tetapi seL4 tampaknya bisa mendapat peluang di pasar seperti smartphone
Kalau melihat roadmap verifikasi mereka, menyebutnya “verifikasi formal” terasa berlebihan
Tidak ada pembuktian atas properti kernel yang inti, dan levelnya belum menyamai kernel seperti seL4 atau Tock
CuBit adalah OS lain yang ditulis dengan SPARK/Ada
Kode sumbernya bisa dilihat di GitHub
Dari sudut pandang pengguna umum, kernel saja tidak ada gunanya
Contoh OS yang menggunakan kernel Ironclad adalah Gloire
Dokumentasi terkait MAC tersusun dengan baik (Mandatory Access Control)
Melihat tulisan “hubungi untuk harga” pada SPARK, ini tampaknya ‘free’ dalam arti lain, bukan ‘perangkat lunak bebas’