11 poin oleh GN⁺ 2025-12-15 | Belum ada komentar. | Bagikan ke WhatsApp
  • uvm32 adalah sandbox mesin virtual minimalis untuk lingkungan dengan sumber daya terbatas seperti mikrokontroler, terdiri dari satu berkas C dan berjalan tanpa alokasi memori dinamis
  • Berbasis emulator RISC-V, menjalankan aplikasi bytecode yang ditulis dalam C, Zig, Rust, dan assembly, dengan desain asinkron untuk mencegah host terhenti
  • Dapat berjalan dengan flash di bawah 3KB dan RAM di bawah 1KB, dengan prioritas pada keamanan sehingga kode yang salah tidak membuat host crash
  • Menyediakan berbagai contoh host VM dan aplikasi sampel per bahasa, sehingga bisa diintegrasikan ke berbagai lingkungan seperti embedded, game, dan plugin
  • Dirilis dengan lisensi MIT, sehingga bebas digunakan untuk riset, produk, dan perangkat embedded

Ikhtisar uvm32

  • uvm32 adalah sandbox mesin virtual ringan tanpa dependensi, dirancang untuk mikrokontroler dan perangkat dengan keterbatasan sumber daya
    • Struktur satu berkas C, berbasis standar C99, desain asinkron, tanpa penggunaan memori dinamis
    • Pada STM32L0 (ARM Cortex-M0+), dapat berjalan dengan kurang dari 3KB flash / 1KB RAM
  • Dibangun di atas emulator RISC-V dan mencakup antarmuka manajemen serta alat build kode yang efisien

Tujuan penggunaan utama

  • Pengganti engine scripting embedded seperti Lua, Duktape, MicroPython
  • Isolasi kode yang tidak tepercaya melalui lingkungan sandbox
  • Mendukung pengembangan dengan bahasa sistem modern seperti Rust dan Zig
  • Meminimalkan pemeliharaan multi-platform dengan prinsip “Write once, run anywhere”

Fitur utama

  • Menyertakan contoh bytecode yang ditulis dalam C, Zig, Rust, assembly
  • Desain non-blocking sehingga kode yang bermasalah tidak menghentikan host
  • Tidak mengasumsikan I/O host, model eksekusi yang sederhana dan konsisten
  • Menyediakan FFI minimal yang aman
  • Dapat menjalankan mulai dari skrip kecil hingga aplikasi kompleks
  • Desain yang mengutamakan keamanan, error internal VM tidak merusak host
  • Berbasis emulator CPU penuh, tetapi bukan untuk tujuan simulasi hardware

Perbandingan dengan alternatif

  • Jejak memori lebih kecil dibanding engine scripting embedded yang ada
  • Mendukung bahasa yang banyak digunakan seperti C, Rust, Zig
  • Mudah diintegrasikan dengan perangkat lunak yang sudah ada
  • Mendukung berbagai paradigma seperti event-driven, polling, multiprosesor
  • Memiliki ketahanan terhadap kode VM yang bermasalah
  • Namun, pemanggilan FFI langsung, efisiensi maksimum, pengalaman scripting sederhana, dan library standar bawaan bukanlah targetnya

Build dan menjalankan (Docker)

  • Dapat di-build hanya dengan kompiler C, dengan lingkungan Docker yang disediakan
    • Siapkan lingkungan dengan perintah make dockerbuild, make dockershell
    • Setelah menjalankan make di dalam shell Docker,
      ./hosts/host/host apps/helloworld/helloworld.bin dapat dijalankan
  • Opsi lengkap dapat dilihat dengan perintah host -h

Lisensi

  • Menggunakan MIT License
  • Bebas digunakan untuk riset, produk, perangkat embedded, dan lainnya

Belum ada komentar.

Belum ada komentar.