Enforce Security and Reliability by Design with Managed Code

Managed code

Managed code is code whose execution is managed by a runtime. In the MicroEJ case, the runtime is called MICROEJ VEE, whose centerpiece is a MEJ32 virtual processor, which defines a Common Language Infrastructure (Instruction Set + Memories + Tasks). The execution semantic remains the same, whatever the implementation. To achieve this portability, the MICROEJ VEE runtime implementation provides essential services, such as automatic memory management, security bounds, type safety, etc.

Thanks to this abstraction, developers can concentrate solely on their application domain without concern for the implementation, significantly reducing the cognitive load and skill requirement to write applications.  Any language, such as Java language, JavaScript, C, Python, etc., can have a compiler that generates managed code.

Benefits of Managed Code for Embedded Systems Development

Managed code simplify embedded development

Simplified Development

Managed code seats on top of the MICROEJ VEE, that provides hardware abstraction by leveraging virtualization. MICROEJ VEE provides a straightforward integration to the RTOS, firmware and the underlying hardware and allows for extensive simulation on desktop. Virtual prototyping accelerates the path to production, with functionalities tested and validated along the way with frequent interactions with stakeholders.

Managed code reliabilityEnhanced Reliability

By providing support for containerized applications written in any language in a managed (or sandboxed) application, MicroEJ provides an industry-unique solution to manage and run applications in a safe and secure way. Sandboxed applications each have their memory space managed by the kernel, making it impossible for software components to crash the full system or device.​

Managed code security

End-to-End Security

MicroEJ considered applications as untrusted by default. MICROEJ VEE validates that a single app will not jeopardize the system and is binary compatible with the rest of the applications it will be linked to. A security manager insures that apps will not be able to interact with the device critical functions, unless explicitly granted the right to.

Managed code simplify code management

Improved Memory Management

The use of Managed Applications solves memory problem by allocating / deallocating memory areas automatically and safely through the Smart MMU, which  dynamically defragments memory, collects unreferenced memory elements and prevents memory leakage.

Managed Code for Embedded and IoT devices

Managed and Unmanaged Code Execution

Unmanaged Code Embedded Systems

Management Code MCU

Additional Resources

Javascript framework for embedded systems


Discover MICROEJ Kifaru JavaScript Development Environment for Embedded Devices

Managed C language Embedded Systems


MicroEJ Launches Managed-C Support for Safe and Secure Operation of Today’s Connected Systems


Exploring the Potential of Multi-Sandboxed Containerized Apps for IoT Devices