Release notes for the Genode OS Framework

The release-notes archive documents the progress of the Genode project. It is further meant as a resource helping regular developers to adapt their software to the mainline development of Genode.

Release 24.02

Version 24.02 revisits Genode's audio support for latency-sensitive scenarios, flexible sample rates, and pluggable drivers. It also introduces the new ability of the Goa SDK to use Sculpt OS as remote test target, comes with a new TCP/IP stack based on Linux 6.1.20, makes non-pluggable drivers (AHCI, NVMe, Intel GPU) aware of suspend/resume, and makes HID event handling more versatile.

Release 23.11

Genode 23.11 moves the IOMMU driver from the kernel to the user land, introduces CPU power/temperature/frequency monitoring and steering, comes with a new API for low-complexity GUI applications, and streamlines the framework's virtualization interface. It also improves developer ergonomics and showcases the port of the Linphone VoIP stack.

Release 23.08

With a new debug monitor and a profoundly improved version of Goa, release 23.08 puts emphasis on tooling. Besides these additions, the development cycle was mostly dedicated to code modernization, consolidation, and quality assurance. The transition to the new DDE Linux continues with new USB host drivers for i.MX and Raspberry Pi, and a new pc_nic_drv replacing the ipxe_nic_drv. Further topics are energy saving on the PinePhone and forthcoming Rust language support.

Release 23.05

Besides the annual documentation update, the scheduled tool-chain update, and the switch to C++20, the release puts the spotlight on the Goa tool, which enables the use of existing SDKs like Lomiri or Rust cargo for targeting Genode. DDE-Linux is prominently featured as enabler of our cross-platform Wifi stack and the updated (6.1.20) drivers for Intel graphics and USB. Further highlights are the initial use of the base-hw kernel as x86 hypervisor and the profoundly reworked block-encryption stack.

Release 23.02

Version 23.02 introduces system-update functionality to the mobile version of Sculpt OS, enhances the ARM VMM for interactive guest OSes, adds DMA protection to Xilinx Zynq via a custom IP core, extends the suspend/resume support to the base-hw kernel, distinguishes Intel P&E cores on NOVA, and brings library support to Goa.

Release 22.11

The most prominent topics of version 22.11 are the use of the framework for hardware-software co-design work, hardware-accelerated graphics on 12th Intel GPUs, and the wrap-up of the great unification of Genode's device-driver infrastructure across all CPU architectures. Further highlights are new drivers for the PinePhone and i.MX, suspend/resume on PCs, and improved virtualization features on both ARM and PC.

Release 22.08

The overarching theme of version 22.08 is the use of Genode on the PinePhone, covering drivers for USB, USB ECM, the Mali-400 GPU, SD-card, and the modem. At the user-facing side, it introduces a phone-variant of Sculpt OS and the port of the Morph web browser. Furthermore, the release comes with new tracing tools, improved network performance, USB smart-card support, and VirtIO drivers for RISC-V.

Release 22.05

The most prominent feature is the added support for WireGuard VPNs. Further topics are a new line of PC drivers, the forthcoming new platform driver for PC hardware, and an SD-card driver for Xilinx Zynq. Highlights for Genode on the PinePhone are basic telephony support and a custom system-control firmware.

Release 22.02

Version 22.02 modularizes the code base, turns Sculpt OS into a framework for building special-purpose systems, and tightens the API and default warning level. It introduces a new DDE-Linux for PC drivers, improves GPU support including VirtualBox guests, and enables the modem access on the PinePhone.

Release 21.11

With the overarching theme being device drivers, version 21.11 enables interactive workloads on the PinePhone, GPU support on i.MX8 (Vivante) and Intel Gen9+, VirtIO input and graphics, and new Xilinx Zynq hardware. Further highlights are the feature completion of VirtualBox 6 and audio and OpenGL using libSDL2.

Release 21.08

Version 21.08 lowers the cost of porting Linux drivers, solves the architectural integration of GPU support, enables media playback and SSL validation for QtWebEngine, and adds new drivers for Allwinner's A64 and NXP's i.MX8mq SoCs.

Release 21.05

The new features of version 21.05 are webcam support, a CBE-based file vault, networking on RISC-V, I2C and reset-domain handling on i.MX8, and Genode/Linux on 64-bit ARM. It is accompanied by a new tool chain based on GCC 10.3 and Binutils 2.36, and a new "Genode Platforms" documentation.

Release 21.02

The user-visible features of version 21.02 are the addition of VirtualBox 6, mobile-data connectivity via LTE, pluggable network drivers, and initial support for the Pine-A64-LTS board. The release removes the option to run Genode atop Muen, but revives the support for RISC-V.

Release 20.11

Version 20.11 brings Sculpt OS to 64-bit ARM hardware (i.MX8 EVK), introduces a dynamic CPU-load balancing mechanism, and enables multicore virtualization on ARM. Driver-wise, the release improves audio on PC hardware, and adds VirtIO networking support.

Release 20.08

Version 20.08 revises the low-level GUI stack, enables the native execution of the Chromium web engine, improves Qt5 work flows, adds power and clock management for i.MX8 SoCs, and modularizes the CBE block encrypter.

Release 20.05

The version 20.05 wraps up the consolidation of Noux with the C runtime, advances the device-driver infrastructure and virtualization support on ARM, reaches feature-completion of our block encryptor, and leverages seccomp for sandboxing components on top of Linux.

Release 20.02

With version 20.02, Sculpt OS receives a much revised user interface and becomes able to run on 64-bit ARM hardware, our custom ARM VMM provides VirtIO devices, a new sandbox library eases multi-component applications, and the overall performance and POSIX compatibility got improved.

Release 19.11

Version 19.11 introduces a new block-device encryptor, a new tool for application development called Goa, virtualization of 64-bit ARM platforms, improved POSIX compatibility (emulation of POSIX signals, execve, and ioctl), and multi-core support on the 64-bit ARM architecture.

Release 19.08

Among the highlights of version 19.08 are new concepts for system time, keyboard layout, and clipboard handling, the base-hw kernel on 64-bit ARM, networking on i.MX8, a new tracing tool, Qt5 version 5.13, SMBIOS support, a new browser VM appliance, and enhanced POSIX compatibility (fork and execve).

Release 19.05

The highlights of version 19.05 are a new kernel-agnostic virtualization interface, initial support for the 64-bit ARM (AARCH64) architecture, the use of C++17 by default, a new tool chain based on GCC 8.6, updated C and SPARK runtimes, and the consolidation of build directories across boards.

Release 19.02

Version 19.02 enhances Sculpt OS with a federated software provisioning model, showcases the use of Java for an IoT network appliance and the creation of a component-based web service (Genodians.org), improves the runtime support for Ada and SPARK, and adds board support for i.MX6 Quad Sabrelite and Nitrogen6 SoloX.

Release 18.11

The most prominent topics of version 18.11 are quality-assurance improvements on various fronts, including static code analysis, on-target test orchestration, and code coverage measurements. Furthermore, the release introduces support for MirageOS unikernels, a new health-monitoring mechanism, a Genode SDK, an SSH server, and a new window layouter.

Release 18.08

The primary focus of version 18.08 is a comprehensive update of device drivers, including USB, wifi, Intel graphics, PS/2, and networking. Further highlights are a de-componentized USB stack, lwIP as VFS plugin, SMP for our custom kernel on x86, a microcode update mechanism for Intel CPUs, and Python 3.

Release 18.05

Version 18.05 puts emphasis on the needs of the Sculpt TC general-purpose OS. It adds support for NVMe devices and on-target GPT management, a revised GUI stack with UTF-8 support and TrueType font-rendering, and dynamic network management. Furthermore, it is accompanied by a new revision of the Genode Foundations book.

Release 18.02

The highlight of this version is the initial revision of the Sculpt OS scenario (EA) featuring on-target software installation and deployment. Further topics range from NIC-router improvements, extended Nim language support, over a new tracing utility, to networking on i.MX hardware.

Release 17.11

Version 17.11 adds DHCP support to the NIC router, makes the GUI stack more modular, enables MMU-based threat-mitigations by default, and switches to GRUB2 for both UEFI and legacy boot. Furthermore, it features the port of libretro and the first components implemented in the Nim language.

Release 17.08

The most prominent features of version 17.08 are a new GPU multiplexer for Intel Gen-8 GPUs and the added support of the seL4 kernel on the ARM and 64-bit x86 architectures. Further topics are UEFI boot, VFS enhancements such as a new FatFS plugin, and the use of Genode as Xen DomU.

Release 17.05

Among the highlights of version 17.05 are a new approach and tools for managing packages, a new tool chain based in GCC 6.3, support for the Ada and Nim programming languages, VirtualBox 5.1 for NOVA, Qt version 5.8, and the completion of Genode's great API renovation initiated one year ago.

Release 17.02

The highlights of version 17.02 are the introduction of application binary interfaces (ABI), vastly enhanced VFS infrastructure including VFS plugins for the Linux TCP/IP stack and rump kernels, the dynamic reconfigurability of the init runtime, and a generic input-event processing component.

Release 16.11

Version 16.11 fundamentally changes the interplay between parent and child components to asynchronous communication. Furthermore, it profoundly improves the virtual-networking facilities, introduces support for smart cards, and updates VirtualBox on NOVA.

Release 16.08

With Genode 16.08, interactive and dynamic workloads can be accommodated directly on seL4, VirtualBox 4 becomes available on the Muen separation kernel, and VirtualBox 5 on NOVA. Further highlights are the support for virtual networking and TOR, Zynq board support, statistical profiling, and network-transparent ROM sessions.

Release 16.05

The overall topic of version 16.05 is the comprehensive revision of the framework API. Further highlights are a huge device-driver update, improved ACPI support, the GNU debugger running on 64-bit NOVA, and the introduction of the Rust programming language.

Release 16.02

Version 16.02 enables the dynamic assignment of USB devices to VirtualBox instances, adds support for the RISC-V architecture, updates the Muen separation kernel to version 0.7 including MSI support, and updates seL4 to version 2.1.

Release 15.11

The primary theme of version 15.11 is the use of Genode as desktop OS. It vastly improves the GUI and audio stacks, features the port of Intel KMS from Linux, extends the support for the USB Armory and Xilinx Zynq-7000, and introduces new file-system infrastructure in the form of a VFS server.

Release 15.08

With version 15.08, Genode system scenarios can be executed on top of the Muen separation kernel, we addressed NOVA's long-standing lack of kernel-resource management, and enhanced the support for audio, file systems, and CPU-load monitoring.

Release 15.05

The release is accompanied with the book "Genode Foundations", adds kernel-protected capabilities and x86_64 support to the base-hw kernel, and introduces new infrastructure for device drivers along with new drivers for AHCI, audio, and sd-cards. Furthermore, seL4 has been added to the list of the supported kernels.

Release 15.02

Version 15.02 extends the base-hw kernel with ARM-virtualization support, introduces a highly modularized tool kit for automated testing, adds support for the USB Armory platform, and improves the performance and stability of VirtualBox on Genode/NOVA.

Release 14.11

The highlights of version 14.11 are the port of the Intel Wireless Stack as a Genode component, a new CPU trading mechanism via the base-hw kernel, a low-complexity dynamic linker, VirtualBox version 4.3.16, and new elements of the evolving GUI stack.

Release 14.08

The central theme of version 14.08 is a new GUI architecture that maintains high security yet scales to highly flexible and dynamic GUIs. Furthermore, the release features OpenVPN, networking for VirtualBox, SMP support for the Seoul VMM, DDE Linux updated to version 3.14.5, and vastly improved performance of our custom base-hw kernel.

Release 14.05

Version 14.05 improved the interoperability with 3rd-party software by introducing new source-code management tools and a flexible new VFS. Further additions are SMP support for base-hw, block-level encryption via CDG, USB3 on x86, and largely improved support for VirtualBox on NOVA.

Release 14.02

Version 14.02 focuses on virtualization and storage. It comes with the first version of VirtualBox running on NOVA, file systems ported from the NetBSD kernel, a block cache, and largely revised block-level and file-system-level services.

Release 13.11

The highlights of version 13.11 are added mechanisms for dynamic resource balancing, the port of the Linux TCP/IP stack, support for Qt5's QML, new file systems based on FUSE, HDMI drivers for Exynos-5 and Raspberry Pi, and improved TrustZone support for i.MX53.

Release 13.08

Among the most prominent features of version 13.08 are a new event-tracing facility, the port of Qt5, enhanced support for multi-processor systems, in particular with using the NOVA kernel, and SATA and power-management device drivers for Exynos 5.

Release 13.05

Version 13.05 enhances the tool infrastructure for automated testing and benchmarking including a suite of networking benchmarks. The driver support for ARM SoCs has been extended to cover SATA, networking, eMMC, and USB-3 on Exynos 5, display and touchscreen on i.MX53, and low-level devices on BCM2835 (Raspberry Pi).

Release 13.02

The version 13.02 comes with substantial improvements for the NOVA base platform, including support for IOMMUs and the full integration of the Vancouver VMM with Genode's OS services. The range of supported ARM platforms has been extended with Samsung Exynos 5250 and i.MX53. Further highlights are a new audio interface and support for file-system notifications.

Release 12.11

With version 12.11, Genode has become self-hosting. The tool chain was updated to GCC 4.7.2. New sound drivers based on the Open Sound System and a new OMAP4 GPIO driver have been introduced. Furthermore, the support for the Linux base platform was largely revisited and our custom kernel platform gained support for Freescale i.MX and TI OMAP4 SoCs.

Release 12.08

The highlights of version 12.08 are the ability to execute the framework on bare-metal ARM hardware, comprehensive platform support for OMAP4-based SoCs, and a profound update of the NOVA base platform. Among the functional improvements are a FFAT-based file-system service, the port of the lighttpd server, on-target debugging via GDB, and extended networking support of the Noux runtime.

Release 12.05

Among the new features added with version 12.05 are a new USB stack based on Linux version 3.2, the initial version of the framework's file-system infrastructure, and a new concept for dynamic system re-configuration. Furthermore, the Noux runtime has seen vast improvements and thereby has become able to run the GNU tool chain and basic network-related GNU tools.

Release 12.02

Version 12.02 introduced special support for using Genode as user-level component framework on Linux, a new framework API for accessing memory-mapped I/O, the first bits of the d3m device-driver manager, and an ACPI parser. Furthermore, the Noux runtime has been enhanced with fork semantics, Qt4 received an update to version 4.7.4, and a PDF rendering engine has become available.

Release 11.11

The focus of this version was the exploration of various virtualization approaches on Genode, ranging from faithful virtualization via the Vancouver VMM, over paravirtualized L4Android, to OS-level virtualization using Noux, and application-level virtualization as employed for GDB-based user-level debugging. Furthermore, this version introduced a unified new tool chain.

Release 11.08

With version 11.08, Genode makes the work with different kernels a seamless experience by streamlining the work flows for all base platforms. Functional additions are new block-device components such as AHCI and SD-card drivers, a partition server, and a VFAT libc back end. Furthermore, the support for ARM-based platforms has been extended to cover Qt4 and L4Linux.

Release 11.05

Version 11.05 introduced a new RPC communication API facilitating type safe inter-process communication and ease of use. The platform support for Fiasco.OC has been extended to the complete feature set of Genode. The most significant new features are L4Linux (on Fiasco.OC), an early version of GDB support, ARM RealView PBX device drivers (input, display, network, sdcard), and device I/O support for the MicroBlaze platform.

Release 11.02

The addition of Fiasco.OC and our custom MicroBlaze-targeting kernel as well as the upgrade to NOVA v0.3 are the most significant platform-related improvements of the past year. Functionality-wise the most significant feature on version 11.02 is the introduction of the Noux execution environment for running GNU userland software on top of Genode.

Release 10.11

Version 10.11 introduced an execution environment for gPXE drivers, a major upgrade to the nitpicker GUI server, a virtual network bridge, a http-based block server, and the first real-world use case for on-demand paging.

Release 10.08

With version 10.08, we focused on device drivers, introducing Gallium3D, MadWifi, an ATAPI driver, and a new block-device interface to Genode. Additionally, Qt4 was upgraded to version 4.6.3 and the dynamic linker was extended to support ARM EABI.

Release 10.05

Version 10.05 introduced a new configuration concept to subject processes to mandatory access control and to route session requests. Further improvements are the added support for sound output, enhanced integration of OKLinux, the Arora web browser, the port of libSDL, and a new build system.

Release 10.02

The main theme of version 10.02 was the improvement of the base platform support of the framework, highlighted by two new base platforms namely NOVA and Codezero, a new management concept for real-time priorities, and extended support for the ARM architecture.

Release 9.11

The most prominent additions of this release are the support for Webkit, USB storage, light-weight IP stack, and the paravirtualized variant of Linux called OKLinux. Furthermore, it contains the initial port of the framework to the ARM architecture and a new interface for communicating bulk data between processes.

Release 9.08

The version 9.08 brought several refinements such as a new signalling mechanism, a new lock implementation, a new timer service, and various optimizations. The most important new functional additions are a dynamic linker and core extensions to run Linux on top of the OKL4 version.

Release 9.05

Genode version 9.05 introduced the proper integration of Qt4 into the main-line source tree, the first parts of USB support, support for the OKL4 kernel as new base platform, and a prototype of OKLinux running on Genode.

Release 9.02

With the release 9.02, the Genode OS Framework started to support the L4ka::Pistachio kernel as base platform, introduced the first version of Qt4 on Genode, and added the Linux-2.6 Device Driver Environment including basic networking support.

Release 8.11

The release 8.11 introduced a C library ported from FreeBSD, a device-driver API called DDE kit, the signalling framework, the typification of capabilities, region-manager faults, managed dataspaces, and a timed event scheduler.