v2 vs v3

ERIKA v2

ERIKA Enterprise v2 is the previous version of the ERIKA Enterprise RTOS. It is managed by the same community, has a separate code base with respect of ERIKA v3, and a different website.

 

The website of ERIKA v2 is available at this link.

 

Please note the following:

  • ERIKA v3 is a complete rewrite of the kernel code base compared with ERIKA v2 (see the features page of ERIKA v3).
  • ERIKA v2 will be supported in the next years, as the kernel is currently in production in various automotive, industrial, and HVAC systems, which have long product lifetime.
  • For multicore devices, we expect the newer developments will be done in ERIKA v3.

Main Differences ERIKA between ERIKA v2 and ERIKA v3

The main differences between ERIKA Enterprise v2.x and v3.x are the following:

Multi-core support

ERIKA v3.x allows a single copy of the RTOS to be shared among all cores, whereas ERIKA Enterprise v2.x requires one copy of the RTOS for each core (more details about multi-core support here).

Multi-OS with or without hypervisor

ERIKA v3.x has built-in direct support for Multi-OS configurations, with and without Hypervisor. Multi-OS configurations are typically used whenever a hard realtime subsystem (typically used for embedded controls and real-time networking) cohexists with non-realtime subsystems (typically used for graphics and best-effort networking). In those cases, it is possible to create multi-os configurations hosting ERIKA v3 and Linux such as the followings:

  • Multi-OS Linux + ERIKA Enterprise on top of a NXP iMX6, without hypervisor, with a configuration such as the one presented at the 2013 Automotive Linux Summit in Edimburgh;
  • Multi-OS Linux + ERIKA on top of a Cubie Board, using XEN as Hypervisor, with a configuration such as the one presented at the 2014 LinuxCon EU;
  • Multi-OS Linux + ERIKA on top of a NVidia Tegra TX1, using JailHouse as Hypervisor, presented in March 2017 at the Embedded World exibition by Evidence Srl.

Better support for memory protection

ERIKA v3 provides a better support for memory protection, allowing a simpler implementation of MMU protection policies, together with an implementation of IRQ handlers that is unified with thread to simplify policy enforcement.

New build system

The ERIKA v3 provides a renewed build system, characterized by easier to understand makefiles, local copies of the code inside the project repository, binary library builds, and automatic RTOS documentation generated though Doxygen.

New data structures

In order to better support multicores, the internal data structures of ERIKA v3 have been completely rewritten with specific care taken on cache locality and global scheduling policies.

New scheduling algorithms

Thanks to the new internal data structures, ERIKA v3 is able to better support the implementation of new scheduling algorithms, included multicore limited preemption and global scheduling (both implemented in the UpScale SDK). 

Licensing options

ERIKA Enterprise v2.x is available under a single licensing option, which GPL2+Linking Exception. Following the requests made by various customers, ERIKA v3 will be available under a dual licensing scheme, GPL2+Linking Exception and Commercial (more details in the licensing page).