Wasm3 to be Released

Wasm3 is a interpreter of WebAssembly intermediate code with high performance that can be used to run many WASI applications
14 January 2020   364

The first release of wasm3 is available, a very fast interpreter of WebAssembly intermediate code. It is mainly designed to run WebAssembly applications on microcontrollers and platforms for which there is no JIT implementation for WebAssembly, not enough memory for JIT to work, or the creation of executable memory pages necessary for JIT implementation. The project code is written in C and distributed under the MIT license.

Wasm3 passes tests for compatibility with the WebAssembly 1.0 specification and can be used to run many WASI applications, providing performance only 4-5 times lower than JIT engines (liftoff, cranelift) and 11.5 times lower than native code execution. When compared with other WebAssembly interpreters (wac, life, wasm-micro-runtime), wasm3 was 15.8 times faster.

Wasm3 requires 64Kb of memory for code and 10Kb of RAM, which allows you to use the project to run applications compiled in WebAssembly on microcontrollers such as Arduino MKR *, Arduino Due, Particle Photon, ESP8266, ESP32, Air602 (W600), nRF52, nRF51 Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166), Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K) and ATmega1284, as well as on boards and computers based on x86, x64, ARM, MIPS, RISC-V and Xtens architectures . Of the operating systems, Linux (including routers based on OpenWRT), Windows, macOS, Android, and iOS are supported. It was also possible to compile wasm3 into WebAssembly intermediate code to execute the interpreter in a browser or for self-hosting.

High performance is achieved through the use of the Massey Meta Machine (M3) technique in the interpreter, in which, to reduce the overhead of decoding the bytecode, the bytecode is proactively translated into more efficient operations generating pseudo-machine code, and the execution model of the stacked virtual machine is converted to a more efficient register an approach. Operations in M3 are C functions, the arguments of which are the registers of the virtual machine, which can be reflected on the registers of the CPU. Frequently encountered workflows for optimization are converted to summary operations.

Learn more at GitHub.

Oracle to Release Unbreakable Kernel R5U3

The update for the kernel, that can be used as alternative for Red Hat Enterprise Linux used in the Oracle Linux is based on the Linux 4.14 
25 March 2020   186

Oracle has released the third functional update for the Unbreakable Enterprise Kernel R5 kernel, positioned for use in the Oracle Linux distribution as an alternative to the regular kernel package from Red Hat Enterprise Linux. The kernel is available for x86_64 and ARM64 architectures (aarch64). Kernel sources, including breakdowns into individual patches, are published in the public Oracle Git repository.

The Unbreakable Enterprise Kernel 5 package is based on the Linux 4.14 kernel (UEK R4 was based on the 4.1 kernel), which is supplemented with new features, optimizations and fixes, as well as tested for compatibility with most applications running in RHEL and specially optimized for working with industrial software and Oracle hardware. Installation and src packages with the UEK R5U1 kernel are prepared for Oracle Linux 7 (there are no obstacles to using this kernel in similar versions of RHEL, CentOS and Scientific Linux).

Key improvements:

  • Improved support for 64-bit systems based on the ARM architecture. Updated drivers for ARM.
  • InfiniBand includes on-demand paging support, which allows you to reflect memory through a processor for accessing unallocated pages of memory (page faults), i.e. consume memory when it is actually being used.
  • In XFS, a deadlock was eliminated, which caused the locks to freeze and not free.
  • CIFS resolved an issue that could lead to POSIX lock leaks and crashes.
  • Bug fixes resolving issues with incompatibility of certain equipment with QEMU / KVM.
  • Device drivers are synchronized with the Linux kernel 4.14.35. The driver for Broadcom Emulex LightPulse Fiber Channel SCSI has been updated to version 12.2.0.13.

Get more at the official blog