Monolinux adalah distribusi file tunggal yang melakukan booting pada CPU ARMv7 528 MHz dalam 0.37 detik

Erik Moqvist, penulis platform Simba dan alat peralatan, sedang mengembangkan distribusi baru Monolinux, berfokus pada pembuatan sistem Linux tertanam untuk menjalankan aplikasi tertentu secara mandiri yang ditulis dalam bahasa C. Distribusi ini terkenal karena perangkat lunaknya dikemas dalam bentuk satu file eksekusi yang terhubung secara statis, yang mencakup semua komponen yang diperlukan agar aplikasi dapat berfungsi (pada dasarnya, distribusi terdiri dari kernel Linux dan disk RAM dengan statis proses init yang dirakit, yang mencakup aplikasi dan perpustakaan yang diperlukan) . Kode didistribusikan oleh di bawah lisensi MIT.

Lingkungan menyediakan semua subsistem dan panggilan sistem dari kernel Linux, termasuk akses file, tumpukan jaringan, dan driver perangkat. Perpustakaan seperti: ml (Perpustakaan Monolinux C dengan klien shell, DHCP dan NTP, Pemeta perangkat, dll.), Async (kerangka asinkron), aliran bit, keriting (HTTP, FTP, ...), detool (tambalan delta), penyusutan panas (algoritma kompresi), ramah manusia (alat bantu), mbedTLS, xz ΠΈ zlib. Siklus pengembangan yang cepat didukung, memungkinkan Anda mengevaluasi pengoperasian versi baru dalam hitungan detik setelah melakukan perubahan pada kode.

Varian Monolinux disiapkan untuk papan Raspberry Pi 3 ΠΈ Sekejap. Ukuran akhir dari majelis adalah sekitar 800 KB. Membayar Sekejap dilengkapi SoC i.MX6UL dengan CPU ARMv7-A (528 MHz), RAM DDR1 3 GB, dan eMMC 4 GB. Waktu boot pada papan Jiffy hanya 0.37 detik - mulai dari dihidupkan hingga sistem file Ext4 siap. Saat ini, 1 ms dihabiskan untuk inisialisasi perangkat keras SoC, 184 ms untuk mengeksekusi kode ROM, 86 ms untuk pengoperasian bootloader, 62 ms untuk memulai kernel Linux, dan 40 ms untuk aktivasi Ext4. Waktu reboot adalah 0.26 detik. Saat menggunakan tumpukan jaringan, karena penundaan dalam negosiasi saluran Ethernet dan memperoleh parameter jaringan, sistem siap untuk interaksi jaringan dalam 2.2 detik.

Sistem menggunakan kernel Linux 4.14.78 dalam konfigurasi minimal dengan tambahan tambalan, menghilangkan penundaan yang tidak perlu pada driver MMC (MMC terhubung dengan firmware papan dan sudah diaktifkan pada saat driver diluncurkan) dan memulai inisialisasi driver MMC dan FEC (Ethernet) dalam mode paralel.

Sumber: opennet.ru

Tambah komentar