• uvm32 सीमित संसाधन वाले वातावरण, जैसे माइक्रोकंट्रोलर, के लिए एक मिनिमल virtual machine sandbox है, जो एक ही C फ़ाइल से बना है और dynamic memory allocation के बिना चलता है
  • यह RISC-V emulator पर आधारित है, C·Zig·Rust·assembly में लिखे bytecode ऐप्स चलाता है, और asynchronous डिज़ाइन के कारण host के रुकने से बचाता है
  • यह 3KB से कम flash, 1KB से कम RAM पर चल सकता है, और सुरक्षा को प्राथमिकता देते हुए गलत कोड भी host को crash नहीं करता
  • विभिन्न VM host examples और भाषा-विशिष्ट sample apps उपलब्ध कराता है, जिससे embedded·game·plugin जैसे कई वातावरणों में integration संभव है
  • इसे MIT License के तहत जारी किया गया है, इसलिए research, products और embedded devices में स्वतंत्र रूप से उपयोग किया जा सकता है

uvm32 का परिचय

  • uvm32 बिना dependencies वाला एक lightweight virtual machine sandbox है, जिसे माइक्रोकंट्रोलर और resource-constrained devices के लिए डिज़ाइन किया गया है
    • single C file संरचना, C99 standard आधारित, asynchronous design, dynamic memory का उपयोग नहीं
    • STM32L0 (ARM Cortex-M0+) पर 3KB flash / 1KB RAM से कम में चल सकता है
  • यह RISC-V emulator पर आधारित है और management interface तथा efficient code build tools शामिल करता है

मुख्य उपयोग उद्देश्य

  • Lua, Duktape, MicroPython जैसे embedded scripting engines का विकल्प
  • sandbox environment के ज़रिए अविश्वसनीय कोड को isolate करना
  • Rust, Zig जैसी modern systems languages में development का समर्थन
  • “Write once, run anywhere” सिद्धांत के साथ multi-platform maintenance को न्यूनतम करना

मुख्य विशेषताएँ

  • C, Zig, Rust, assembly में लिखे bytecode examples शामिल
  • non-blocking design के कारण असामान्य कोड भी host को रोकता नहीं है
  • host I/O की कोई अनिवार्य धारणा नहीं, सरल और consistent execution model
  • सुरक्षित और minimal FFI उपलब्ध
  • छोटे scripts से लेकर complex applications तक चलाने में सक्षम
  • safety-first design, VM के अंदर की त्रुटियाँ host को नुकसान नहीं पहुँचातीं
  • पूरा CPU emulator आधारित है, लेकिन hardware simulation इसका उद्देश्य नहीं है

विकल्पों से तुलना

  • मौजूदा embedded scripting engines की तुलना में कम memory footprint
  • C, Rust, Zig जैसी व्यापक रूप से उपयोग होने वाली भाषाओं का समर्थन
  • मौजूदा software के साथ integration में आसानी
  • event-driven·polling·multiprocessor जैसे विभिन्न paradigms का समर्थन
  • असामान्य VM code के प्रति मजबूत स्थिरता
  • वहीं, direct FFI calls, maximum efficiency, सरल scripting अनुभव, और standard library built-in इसका लक्ष्य नहीं हैं

build और run (Docker)

  • सिर्फ C compiler से build संभव, Docker environment उपलब्ध
    • make dockerbuild, make dockershell कमांड से environment तैयार किया जा सकता है
    • Docker shell के अंदर make चलाने के बाद,
      ./hosts/host/host apps/helloworld/helloworld.bin चलाया जा सकता है
  • host -h कमांड से सभी options देखे जा सकते हैं

लाइसेंस

  • MIT License लागू
  • research, products, embedded devices आदि में स्वतंत्र रूप से उपयोग किया जा सकता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.