=========== Genode News =========== Genode OS Framework release 22.08 | 2022-08-31 ############################################## | The overarching theme of Genode 22.08 is the emerging phone variant of | Sculpt OS, touching topics as diverse as USB ECM, Mali-400 GPU, SD-card | access, telephony, mobile-data connectivity, the Morph web browser, and a | custom user interface. Among the further highlights are new tracing tools, | improved network performance USB smart-card support, and VirtIO drivers for | RISC-V. The vision of a Genode-based smart phone is certainly our most ambitious undertaking since we created Sculpt OS for the PC. Over the past two years, we relentlessly pursued this vision while targeting the PinePhone hardware. The scope of work reaches from custom firmware for the system-control processor, over kernel development, a staggering variety of device drivers, to the user-interface and application level. With Genode 22.08, those efforts culminate in a first complete system - a phone variant of Sculpt OS. The [https://genode.org/documentation/release-notes/22.08 - release documentation] tells the story behind this line of work in great detail. Beside phone-related topics, the new release features new tooling for gathering and analyzing system traces that allow for holistic performance studies covering the interplay between components. One particular success story of the new trace recorder is a profoundly improved network performance. Further highlights are the support for USB smart cards via PKCS#11, VirtIO drivers for RISC-V, and the update of Qt5 to version 5.15.2. For the complete picture, please enjoy the official [https:/documentation/release-notes/22.08 - release documentation of version 22.08...] Genode OS Framework release 22.05 | 2022-05-31 ############################################## | The highlights of Genode 22.05 are the new support for WireGuard virtual | private networks and a fresh lineup of PC device drivers. Further topics are | basic telephony with the PinePhone and dynamic device management on Xilinx | Zynq. Version 22.05 closely adheres the goals as set forth in our [https://genode.org/about/road-map - roadmap]. In particular, the envisioned support of WireGuard VPNs came to fruition in the form of a dedicated VPN component based on the Linux implementation of the WireGuard protocol. Thanks to this component, the network access of Genode systems like [https://genode.org/download/sculpt - Sculpt OS] can now be protected using state-of-the-art VPN security. The second prominent topic is the new lineup of PC device drivers, which had been developed using Genode's novel Linux device-driver environment that allows the reuse of Linux kernel subsystems as individually sandboxed Genode components. The work comprises complex drivers like the wireless LAN stack including Intel's Wifi driver and the latest Intel display driver. The revamped drivers not only bring the modern feature set of the respective Linux 5.14.21 subsystems to Genode, but they also validate the efficiency of the new porting approach. The vision of a Genode-based smartphone appears as a recurring topic throughout the year, with the current release not being an exception. Three achievements stand out. First, Genode gained the principle ability to issue and receive voice calls with the PinePhone. Second, in anticipation of sophisticated energy-management, the release introduces a Genode-specific custom firmware for the PinePhone's system-control processor. And third, it is accompanied with the second revision of the [https://genode.org/documentation/genode-platforms-22-05.pdf - Genode Platforms] document that covers the porting process of Genode to a mobile platform in a tutorial of over 200 pages. Besides those prominent topics, the release comes with numerous framework improvements, reaching from a forthcoming new PC platform driver, over performance optimizations and usability refinements, to dynamic device management on FPGA-based Xilinx Zynq devices. Discover these and more topics of the new version in the official [https:/documentation/release-notes/22.05 - release documentation of version 22.05...] Genode SoC porting guide | 2022-05-25 ##################################### | In the second revision of the Genode Platforms document, Genode Labs shares | its former in-house expertise about moving Genode to new hardware devices. If you ever wondered how to make sense of highly-complex ARM SoCs without accurate public documentation, what it takes to bring a modern microkernel from one SoC to another, how to transplant and re-animate individual Linux kernel subsystems into sandboxed user-level components, or how to craft a custom bare-bones operating system out of Genode's components, the new revision of the Genode Platforms document is for you. [https://genode.org/documentation/genode-platforms-22-05.pdf - Genode Platforms 22.05] (PDF) During the past two years, Genode developer Norman Feske captured his practical experience with enabling Genode on a new hardware platform, namely the PinePhone. The process starts with basics like executing tiny bits of custom code, and continues with the porting of the microkernel, creating work flows for testing and packaging, and bringing up the Genode user land. With those fundamentals covered, the main part is concerned with the complexities of driving the device hardware of modern SoCs, ranging from low-level pin controls, over networking, up to driving sophisticated devices like the display and touch screen. For the latter, the ability of reusing device drivers from the Linux kernel plays a crucial role. Hence, the guide presents Genode's practical methodology and tooling behind the black art of transplanting and reanimating unmodified Linux kernel code into Genode components. Along the way, there are countless little tips and tricks that help to turn low-level grunt work into a fun and worthwhile experience. The document closes with a glimpse at real-world scenarios, culminating in the setup of the modem and the routing of audio signals to issue voice calls. Sculpt OS release 22.04 | 2022-04-28 #################################### | Sculpt OS version 22.04 introduces the concept of service-level sandboxing | and features completely new drivers for wireless, graphics, and USB. On the user-visible surface, the new version of Sculpt OS looks and feels familiar to users of the previous version. Under the hood, however, at the nitty-gritty hardware-support level, it features completely revamped device drivers for Intel wireless, Intel graphics, and USB. In a major surgery, the new drivers got transplanted from the Linux kernel version 5.14.21 using Genode's unique [https://genode.org/documentation/release-notes/21.08#Linux-device-driver_environment_re-imagined - DDE] approach. In contrast to Linux where the drivers are part of the almighty operating-system kernel, Sculpt OS hosts each of the drivers in a dedicated sandbox as plain user-level component. So Sculpt users can enjoy the broad hardware support of up-to-date Linux drivers without ultimately trusting those staggeringly complex driver stacks. Closely related, the support of hardware-accelerated graphics that we introduced with the previous version [https://genode.org/news/sculpt-os-release-21.10 - 21.10] received substantial optimization and stabilization. With the new version, Sculpt users can not only run native OpenGL applications but can even go as far as using hardware-accelerated graphics via guest operating systems hosted within VirtualBox on top of Sculpt. Being a component-based operating system following the principle of least privilege, Sculpt OS gives users ultimate control over the system resources exposed to each component. The new version equips the user with additional means to exercise control over the deployed software: A new optional component called black hole can now be used as placeholder for various system resources when deploying an application. For example, a virtual machine can be shielded from the network by connecting its network traffic to the black hole. This also works for audio, video capturing, USB, and other commonly used system resources. As this mechanism works at the level of individual services, the documentation refers to it as _service-level sandboxing_, resembling a poster-child for the natural power of capability-based security. Sculpt OS 22.04 is available as ready-to-use system image at the [https://genode.org/download/sculpt - Sculpt download page] and is accompanied with updated [https://genode.org/documentation/articles/sculpt-22-04 - documentation]. Genode OS Framework release 22.02 | 2022-02-28 ############################################## | With Genode 22.02, 3D acceleration becomes available to guest operating | systems running in VirtualBox 6, Sculpt OS evolves into a versatile framework | for building special-purpose operating systems, and Genode starts to interact | with the modem of the PinePhone. The features mentioned above are merely the tip of the iceberg of version 22.02. In fact, the majority of the development work during the release cycle was focused on topics beyond the visible surface, ranging from the reorganization of the code base for streamlining the targeting of new hardware, over the tightening of foundational framework APIs, to the raising of the default warning level used when building genuine Genode components. Over the course of this infrastructural work, almost no component was left unturned. Functionality-wise, improvements of the Genode-based Sculpt OS are at the center stage of the release. Originally pursued with the vision of a Genode-based general-purpose OS that is fit for day-to-day use on commodity PC hardware, the current release lifts the potential of Sculpt's architecture for the creation of special-purpose operating-system appliances. The gained flexibility took even us developers by surprise! Thanks to the new modular approach, we were able to demonstrate a bare-bones version of Sculpt OS on the PinePhone at FOSDEM, or accelerate our development workflow by routinely running Sculpt OS directly on the Linux kernel. The intensive device-driver-related developments of the previous releases continued as well. This time, we took our new approach for running Linux drivers in Genode to PC hardware, starting with a fresh port of the USB host controller driver. The Intel GPU driver received numerous performance improvements and can now even be combined with guest operating systems running in VirtualBox 6. Further notable driver-related improvements are the new ability to interact with the modem on the PinePhone and largely streamlined driver infrastructure for the Raspberry Pi. All the details of the new version can be found in the [https:/documentation/release-notes/22.02 - release documentation of version 22.02...] Road Map for 2022 | 2022-01-18 ############################## | Our plans for 2022 envision the use of Genode for advanced mobile | use cases such as video chat. Following Genode's major technical breakthroughs in the areas of reusing Linux drivers, hardware-accelerated graphics, and the native execution of Chromium during 2021, we will pursue _mobile usability_ as overarching theme in 2022. Specifically, we aspire the routine use of Genode on the PinePhone as a platform for video chat, using WireGuard to protect the communications. This vision motivates a large variety of challenging technical topics. To name a few, we have to squeeze good performance out of the resource-constrained PinePhone hardware, focus on UI latency and the quality of service of audio streaming, come up with a somewhat usable touch-based user interface, and get to the guts of power management. Aside this guiding theme, we put a broad update of our PC drivers on our agenda so that Sculpt OS remains a suitable basis for our day-to-day computing needs on recent generations of Intel hardware. As an additional line of development, we are excited to intensify the combination of Genode with reconfigurable hardware. More information about our review of the past year, this year's focus, and a rough schedule are presented at our official [https:/about/road-map - road-map page]. Genode OS Framework release 21.11 | 2021-11-30 ############################################## | Genode 21.11 puts the spotlight on device drivers. Interactive Genode | scenarios come to the PinePhone, hardware-accelerated graphics becomes | available on Intel Gen9+ and Vivante GPUs, and Xilnx Zynq receives | new love. The previous release presented our new take on porting drivers from Linux, and the architectural integration of hardware-accelerated graphics in Genode-based systems. The just released version 21.11 is the continuation of both topics. Thanks to our streamlined approach for transplanting Linux drivers to Genode, we were able to reuse the PinePhone's Linux drivers for the display and touchscreen without modification. But, in contrast to running those drivers in the Linux kernel, we are walking on new ground by confining each driver in a separate sandbox. With our GPU line of work, we followed two major directions during the release cycle. For one, we applied our architectural approach to a second GPU vendor besides Intel, namely the Vivante GPU as used by the i.MX SoC family. Combined with the etnaviv Gallium driver of the Mesa library, Genode thereby becomes able to render graphics with hardware acceleration on the MNT Reform open-hardware laptop. The second branch is the promised extension of our custom Intel GPU multiplexer to GPUs of generation 9 or newer. Thereby, GPU support has now become a regular feature of the Genode-based Sculpt OS that can be taken for a spin on commodity PC hardware. Regarding 32-bit ARM platforms, the current release revives our engagement with Xilinx Zynq devices, which combine FPGA fabric with a 32-bit ARM CPU. In particular, the release brings the framework to the USRP E310 board, opening new hardware-software co-design opportunities. Besides the many hardware-related topics outlined above, two functional improvements stand out. First, the Genode version of VirtualBox 6 has reached feature parity with version 5. Both versions can now be used interchangeably on Sculpt OS. Finally, libSDL2 got upgraded with support for audio and OpenGL, which is a nice pathway for hosting games on Genode. The new version is described in full detail by the [https:/documentation/release-notes/21.11 - release documentation of version 21.11...] Sculpt OS release 21.10 | 2021-10-14 #################################### | Sculpt OS version 21.10 introduces GPU-accelerated graphics on Intel, | media playback in the web browser, VirtualBox 6, and USB webcam support. At the first glance, the just released Sculpt 21.10 looks and feels nearly identical to the time-tested previous version 21.03. However, a look at the installable packages reveals a firework of exciting new features. First and technically most exciting, the new version enables the use of hardware-accelerated graphics on Intel GPUs, paving the ground for graphics-intensive applications and games. The GPU support is based on the combination of the Mesa library stack with our custom GPU multiplexer as featured in [https://genode.org/documentation/release-notes/21.08#Advancing_GPU_driver_stack - Genode 21.08]. _Note that this fresh new feature should best be regarded as experimental_ _and be used with caution._ Second, our port of the Chromium-based Falkon web browser has become able to present media content like videos and sound. Look out for the browser in the tools menu of cproc's depot. It is accompanied with a ready-to-use audio driver and a mixer component. In cases where audio output is not desired, the browser - or any other component that requests audio output - can be connected to a new component called black hole, which merely mimics an audio driver without any audible effect. Third, with the addition of the new file-vault component, Sculpt now provides an easy way to setup and use an encrypted file store using our custom CBE block encrypter as underlying crypto container. The file vault is especially useful in combination with the recall-fs component that provides each client with a distinct storage compartment. Finally, the support for USB webcams as introduced with [https://genode.org/documentation/release-notes/21.05#Webcam_support - Genode 21.05] has entered Sculpt OS in the form of a new webcam package. The webcam support can best be combined with our new port of VirtualBox 6 that is available in addition to VirtualBox version 5. With Sculpt 21.10, both VirtualBox versions can be used in parallel. Sculpt OS 21.10 is available as ready-to-use system image at the [https://genode.org/download/sculpt - Sculpt download page] and is accompanied with updated [https://genode.org/documentation/articles/sculpt-21-10 - documentation]. More details about individual new features of Sculpt 21.10 will be covered soon by dedicated articles at [https://genodians.org]. Genode OS Framework release 21.08 | 2021-08-31 ############################################## | The highlights of Genode 21.08 are revamped GPU support as well as new | drivers for the PinePhone and MNT-Reform laptop based on a new streamlined | approach for porting Linux kernel code. Further topics range from VirtualBox | improvements, over media playback in the native web browser, to LTE | connectivity in Sculpt OS. For complex driver stacks, Genode largely relies on code ported from other operating systems. The Linux kernel plays a special role because - being the basis for Android - it is the de-facto reference for driving the peripherals of most ARM SoCs. Up to now, however, the porting efforts of driver code from Linux to Genode used to be a time-intensive affair, which forced a narrow focus on very few SoCs on us. With the streamlined porting approach introduced with the new release, we become able to dramatically reduce the costs, creating the prospect of a much broader hardware support. The first success stories of the new way of porting are added graphics drivers for the PinePhone and the MNT-Reform laptop, a network driver for the Pine-A64-LTS board, and an SD-card driver for the MNT-Reform. The second spotlight of the release is the largely revamped support for Intel GPUs. In contrast to our experimental GPU-related work of the past, we have now identified a way to cleanly integrate GPU support into the GUI architecture of sophisticated Genode systems such as Sculpt OS. This work is accompanied with an up-to-date version of the Mesa library stack. In combination with the improvements of our custom GPU multiplexer, we are now on a good track to make the use of hardware-accelerated graphics a commodity on Genode. Even though most topics of the current release revolve around low-level driver-related work, the new version improves higher-level functionality as well. In particular, it adds the modular integration of mobile-data connectivity to Sculpt OS and enables media playback for our port of the Chromium web engine. Those and more topics are described in the detailed [https:/documentation/release-notes/21.08 - release documentation of version 21.08...] Genode OS Framework release 21.05 | 2021-05-31 ############################################## | Version 21.05 introduces webcam support, features an encrypted file vault | for Sculpt OS, and adds new drivers for the i.MX8 SoC and Pine-A64. | Furthermore, it is accompanied with a new tool chain based on GCC 10 | and new guidance documentation for driver development. Device-driver support remains a prominent topic for almost every release. The just released version 21.05 is no exception, touching hardware topics ranging from USB, over I2C on i.MX8, over GPIO on Pine-A64, to networking on RISC-V. Until now, such nitty-gritty driver-development work has been pursued almost exclusively by the core team at Genode Labs. To encourage developers outside the inner circle to join the fun, the release is accompanied with the initial version of a comprehensive guidance documentation for hardware-related topics. Feature-wise the two highlights of the new version are webcam support and an easy-to-use encrypted file store based on our custom CBE block encrypter. As detailed by the release documentation, both features leverage Genode's architecture in unique ways to attain high flexibility without an inflation of complexity. The release is rounded up by a new tool chain based on GCC 10 and Binutils 2.36, profound performance optimizations, framework refinements, and new assistive tooling for porting Linux drivers. All the details of the new version are covered by the official [https:/documentation/release-notes/21.05 - release documentation of version 21.05...] Sculpt OS 21.03 boots now in 2.5 seconds | 2021-05-03 ##################################################### | We have released an updated Sculpt 21.03 image featuring several | hardware-compatibility tweaks and performance improvements. Since the official Sculpt OS 21.03 release end of March, we continued our efforts with refining the user experience and broadening hardware compatibility, thanks to the user feedback we received. We have now released an updated system image that includes those refinements as well as several performance optimizations that boost the boot time of Sculpt to less than 2.5 seconds from the first life sign of the kernel to the graphical user interface (measured on a 5-years old Lenovo x250 laptop). You can get the new version of the system image named sculpt-21-03b at the [https://genode.org/download/sculpt - Sculpt OS download] page. It is binary compatible with the original release version. So you can use it as a drop-in-replacement. For manually reproducing the image, please refer to the corresponding [https://github.com/chelmuth/genode/commits/sculpt_21_03b - Git branch]. Sculpt OS release 21.03 | 2021-03-24 #################################### | Version 21.03 of the Sculpt operating system makes the system resilient | against classes of driver failures, adds configurable real-time priorities, | and introduces interfaces for screen capturing and user-event injection. Sculpt OS 21.03 incorporates the many improvements of the latest two Genode releases. Thanks to Genode's concept of [https://genode.org/documentation/release-notes/21.02#Pluggable_network_device_drivers - pluggable device drivers], the system has reached a new level of robustness against malfunctioning drivers. For example, if the Intel graphics driver trips over an unsupported external display, the driver gets automatically restarted while all graphical applications keep running. Or as another example, should the overly complex Wifi driver have a hick-up, it can be restarted with a simple mouse click without harming the networking stacks running on top. Even though Genode supports static-priority scheduling since more than a decade, Sculpt did not make this feature available to end users so far. The new version changes that. For each component, the user can now take a deliberate decision about the hard scheduling priority, e.g., prioritizing latency-critical multi-media applications over computational workloads or virtual machines. Speaking of workloads, to push the limits of what is possible with Sculpt OS, the new version introduces additional interfaces that can be assigned to components. First, it has become possible to redirect the interaction of a component with the kernel through another component, thereby enabling features like dynamic CPU-load balancing to be implemented as plain user-level services. Second, there are new interfaces for capturing the screen and for injecting input events. The latter interfaces pave the ground for virtual keyboards, screen-sharing application, or remote administration scenarios. Under the hood, there are plenty of improvements that make the life of Sculpt users better. The keyboard layout can now be picked from a menu. The Chromium-based Falkon web browser runs circles around the previous version. Menu items and file lists appear nicely sorted. Terminal windows immediately respond to global font-size changes. On modern Intel machines, Sculpt leverages Intel Hardware P-states (HWP) for power and thermal management now. You can find an illustrated tour of these and more changes in a dedicated [https://genodians.org/nfeske/2021-03-24-sculpt-os - article at Genodians.org]. The updated [https://genode.org/documentation/articles/sculpt-21-03 - manual] goes into detail about the use of the new system. The ready-to-use system image for version 21.03 is available at the [https://genode.org/download/sculpt - Sculpt download page]. Genode OS Framework release 21.02 | 2021-02-25 ############################################## | The highlights of version 21.02 are the addition of VirtualBox 6, | mobile-data connectivity via LTE, pluggable network drivers, initial | support for the Pine-A64-LTS board, and revived work on RISC-V. Many topics of the current release draw a connection to our overarching goal to use Genode on the PinePhone by the end of the year. Besides the obvious steps of enabling the hardware - starting with the Pine-A64-LTS board - the release introduces mobile-data connectivity as a Genode feature, and changes the network-driver architecture in anticipation of dynamic power-management schemes. For PC hardware, the flagship feature of version 21.02 is the addition of VirtualBox 6, giving us the prospect to eventually replace the aging port of VirtualBox 5. Speaking of VirtualBox, the release comes with profound improvements of the USB-device pass-through abilities, most importantly covering audio headsets. Besides these prominent features, the new version comes with many further improvements. Just to name a few, virtual machines on ARM have become able to provide VirtIO-block devices to guests, named pipes can now be used to connect components, Genode's RISC-V support received an update to ISA spec 1.10, and OpenSSL has been bumped to version 1.1.1. For the full story, please refer to the [https:/documentation/release-notes/21.02 - release documentation of version 21.02...] Road Map for 2021 | 2021-01-15 ############################## | In 2021, we plan to bring Genode to the PinePhone, advance the framework's | GPU support, and focus on development workflows. During the annual road-map discussion on Genode's public [https://genode.org/community/mailing-lists - mailing list], the following hot topics for this year emerged. First and most inspiring for many Genode developers, we aspire to have Genode running on the PinePhone with basic feature-phone functionality by the end of the year. Since this will involve substantial device-driver-related developments, the team will take this line of work as an opportunity to advance the tooling and workflows for carrying out such tasks. This, in turn, will hopefully ease the on-boarding of new driver developers in the future. Closely related to the PinePhone scenario, the project will make optimizations a top priority this year. The opportunities are plenty, ranging from micro-optimizations, over API refinements, to architectural changes if needed. Another recurring topic is the request for GPU support, which is required by many modern workloads such as video conferencing or streaming on mobile device. Therefore, we will revamp our past developments of GPU multiplexing on Intel hardware while also starting the investigation of GPUs on ARM-based devices. More information about our review of the past year, this year's focus, and a rough schedule are presented at our official [https:/about/road-map - road-map page]. Genode OS Framework release 20.11 | 2020-11-27 ############################################## | Genode 20.11 brings Sculpt OS to 64-bit ARM hardware, introduces dynamic | CPU-load balancing, and enables multicore virtualization on ARM. Driver-wise, | the release improves audio on PC hardware, and adds VirtIO networking support. ARM 64-bit has been a recurring theme of the Genode releases this year and the just released version 20.11 is no exception. We are proud to announce that our Genode-based custom general-purpose OS called Sculpt has come to life on 64-bit ARM hardware, namely the NXP i.MX8 EVK board. This is the result of intensive work on the framework's driver architecture for ARM and several SoC-specific device drivers. Closely related to this line of work is the new ability to run multicore virtual machines on ARM. Another highlight of version 20.11 is a new CPU balancing mechanism, which automates the dynamic assignment of threads to CPU cores for complex workloads. With traditional operating systems, such policies are normally part of the OS kernel. Thanks to Genode's component architecture, we are able to implement such potentially complex policies in the form of an optional component, which offers ultimate flexibility while keeping the kernel untainted by complex heuristics. Further topics of the current release are improved power management and audio support on PC hardware, a new OSS API emulation that allows for the reuse of popular audio applications on Genode, and new support for VirtIO networking. The full picture is given by the [https:/documentation/release-notes/20.11 - release documentation of version 20.11...] Sculpt OS release 20.08 | 2020-09-17 #################################### | Version 20.08 of the Sculpt operating system refines the user experience | and becomes able to host the Chromium-based Falkon web browser. The new version of Sculpt OS is based on the latest Genode release [https://genode.org/documentation/release-notes/20.08 - 20.08]. In particular, it incorporates the [https://genode.org/documentation/release-notes/20.08#The_GUI_stack__restacked - redesigned GUI stack] to the benefit of quicker boot times, improved interactive responsiveness, and better pixel output quality. It also removes the last traces of the [https://genode.org/documentation/release-notes/20.05#Retired_Noux_runtime_environment - noux runtime]. Fortunately, these massive under-the-hood changes do not disrupt the user-visible surface of Sculpt. Most users will feel right at home. Upon closer inspection, there are couple of new features to appreciate. The CPU-affinity of each component can now be restricted interactively by the user, components can be easily restarted via a click on a button, font-size changes have an immediate effect now, and the VESA driver (used when running Sculpt in a virtual machine) can dynamically change the screen resolution. Thanks to our continuous efforts of strengthening of the base system, Sculpt OS has become able to host a first version of the Chromium-based Falkon web browser from an installable package. Even though this version is still rough around the edges and unoptimized, it already enables Sculpt users to casually browse the modern web without the need for a virtual machine. The updated [https://genode.org/documentation/articles/sculpt-20-08 - manual] goes into detail about the use of the new system. The ready-to-use system image for version 20.08 is available at the [https://genode.org/download/sculpt - Sculpt download page]. Genode OS Framework release 20.08 | 2020-08-28 ############################################## | With Genode 20.08, the low-level GUI stack underwent a profound redesign, | the Chromium web engine comes to life, the i.MX8 support covers clock and | power management, and the CBE block encrypter becomes highly modular. The most stunning feature of Genode 20.08 is most certainly the new ability to host the Chromium web engine as native component in the form of the Falkon web browser. This long-time project involved overcoming countless road blocks along the way to the great benefit of Genode's users at large: building bridges between 3rd-party build systems and Genode, covering seemingly obscure corner cases of POSIX, solving instruction-cache invalidation issues on ARM - just to name a few. Under the hood, we took the release cycle as opportunity to tackle a major surgery of the low-level GUI stack that we planned for more than two years. The architectural change lays the groundwork for swapping out graphics and input drivers on the fly without reboot. It also paves the ground for features like screen capturing and remote desktop scenarios in a privacy-protecting way. On our mission of bringing the driver support for the 64-bit ARM-based i.MX8 SoC on par with our driver coverage on Intel PCs, the release introduces a platform driver specifically for this SoC that covers clock and power management. One step closer to using Sculpt OS on the MNT Reform laptop. Furthermore, Genode's custom block encrypter called CBE received continuous development. In particular, the cryptographic algorithm and trust anchor have become pluggable modules. This will allow for tailoring the CBE to custom products - like hardware trust anchors - without changing its implementation. These and many more improvements are covered in detail in the [https:/documentation/release-notes/20.08 - release documentation of version 20.08...] Genode OS Framework release 20.05 | 2020-05-28 ############################################## | 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. It has become almost a tradition to dedicate the spring release to topics under the hood of the Genode OS framework, taking the time for careful consolidation, and architectural improvements. On the latter account, the Linux version gained an architectural revamp of its inter-component communication model, leveraging the combination of the seccomp and epoll kernel mechanisms to enable Genode's capability-based security concept on this kernel. The new version applies strict sandboxing to each component individually. In particular, the host file system is shielded from Genode components and Genode's least-privilege access-control scheme comes into effect. As the second prominent architectural topic, the release features new device-driver infrastructure for the ARM universe along with a unified version of the formerly distinct virtual machine monitors for ARMv7 and ARMv8. These are important steps to bring Genode on ARM to parity with the x86 version. Further highlights of the release are the first feature-complete version of our custom block-encryption component, the improved management of CPU affinities on x86, and new tracing utilities. Last but not least, the release is accompanied with an updated version of the Genode Foundations book, reflecting the changes of the framework since one year ago. Read the details of the new release in the [https:/documentation/release-notes/20.05 - release documentation of version 20.05...] Sculpt OS release 20.02 | 2020-03-10 #################################### | Version 20.02 of the Sculpt operating system revisits the administrative | user interface for a more intuitive and logical user experience. With the release of Sculpt version 20.02, we follow our [https://genode.org/about/road-map - roadmap's] mission to make Sculpt OS easier to approach. In particular, we [https://genodians.org/nfeske/2020-01-06-pending-sculpt-ui - identified] the reliance on a command-line interface as a potential barrier of entry. As Sculpt OS is not a Unix-like system, it should not require any Unix know-how from the user. To relieve users from this burden, Sculpt 20.02 introduces a custom graphical file browser and editor that can be used for interactively inspecting and tweaking the state of the system. The traditional command-line interface is still present as a fallback for advanced tasks though. The updated [https://genode.org/documentation/articles/sculpt-20-02 - manual] goes into detail about the use of the new system. Thanks to the work of seasoned Genode developers, many software packages are already available for the new version. These include virtual machine monitors like VirtualBox, performance-monitoring tools, GUI components, Genode's custom Unix runtime, and several applications and games. In particular, the software depots offered by alex-ab, cnuke, skalk are worth exploring. The ready-to-use system image for version 20.02 can be obtained from the [https://genode.org/download/sculpt - Sculpt download page] and is accompanied by matching [https://genode.org/documentation/articles/sculpt-20-02 - documentation]. Genode OS Framework release 20.02 | 2020-02-28 ############################################## | With version 20.02, Genode makes Sculpt OS fit for running on i.MX 64-bit | ARM hardware, optimizes the performance throughout the entire software stack, | and takes the next evolutionary step of the user-facing side of Sculpt OS. Without any doubt, Sculpt OS has been the driving motivation behind most working topics featured by the new release. One particularly exciting line of work is the enabling of Sculpt on i.MX-based 64-bit ARM hardware, which touched the framework on all levels, from the boot loader, over the kernel, device drivers, libraries, system management, up to the application level. The work goes as far as supporting Sculpt OS as a hypervisor platform for hosting Linux in a virtual machine. As a second Sculpt-related development, we strive to make the user-visible side of the operating system better approachable and more logical. With this background, the current release comes with a profound redesign of the administrative user interface of Sculpt OS. An updated downloadable system image will follow soon. Also related to Sculpt are an updated audio driver based on OpenBSD 6.6, the support of virtual desktops, and performance optimization of the Seoul virtual machine monitor on x86 hardware. Regarding the framework API, the release introduces a new library for building multi-component applications. It aims to bring the benefits of Genode's unique security architecture from the operating-system level to the application level. These topics are only the tip of the iceberg. For the complete picture, please consult the [https:/documentation/release-notes/20.02 - release documentation of version 20.02...] Road Map for 2020 | 2020-01-20 ############################## | In 2020, we will be concerned about dwarfing the barrier of entry into | the Genode world. Following the last year's leitmotif of "bridging worlds", we turn our attention to the removal of the hurdles faced by aspiring developers and users. During the annual road-map [https://lists.genode.org/pipermail/users/2019-December/006987.html - discussion] on our mailing list, we identified four tangible approaches towards that goal. First, making Sculpt OS more user friendly. Second, reinforcing trust in Genode by fostering the framework's high quality. Third, making the tooling around Genode a joy to use. And finally, the illustration of Genode's versatility in the form practical use cases. Besides this overall theme, we plan to continue our commitment to the NXP i.MX SoC family, revisit Genode's low-latency audio support, and extend the cultivation of Ada/SPARK within (and on top of) Genode. More background information about the new road map and a rough schedule are presented at our official [https:/about/road-map - road-map page]. Genode OS Framework release 19.11 | 2019-11-28 ############################################## | Following this year's theme of "bridging worlds", Genode 19.11 adds the | ability to use popular build tools like CMake for application development, | introduces a new virtual-machine monitor for 64-bit ARM, and enhances | POSIX compatibility. As another highlight, it features the first version | of our custom block-device encrypter. Block-device encryption is a feature often requested by users of our Sculpt OS. Until now, we deliberately left this topic unaddressed because we felt that a profound answer was beyond our expertise. However, during the past year, we dived deep into it. The result is the prototype for a new block encrypter that encrypts data but also protects integrity and freshness. For us, the implementation of the encrypter is especially intriguing because - with about 7000 lines of code - it is Genode's first non-trivial component written in the [https://en.wikipedia.org/wiki/SPARK_(programming_language) - SPARK] programming language. The second major addition is a new virtual machine monitor (VMM) for 64-bit ARM platforms such as the NXP i.MX8. It leverages the [https://genode.org/documentation/articles/arm_virtualization - proof of concept] we developed in 2015 for ARMv7, which we pursued as a technology exploration. In contrast, our aspiration with the new VMM is a product-quality solution. In our [https://genode.org/about/road-map - road map] for 2019, we stated the "bridging of worlds" as our overall theme for this year. On that account, the current release moves the project forward on two levels. First, by successively increasing the scope of POSIX compatibility, we reduce the friction when porting existing application software to Genode. We managed to bridge several gaps in our POSIX support that we considered as impossible to cover some years ago. In particular, we identified ways to emulate certain POSIX signals, ioctl calls, and fork/execve semantics. This way, popular software such as bash, coreutils, or Vim can now be executed as regular Genode components with no additional runtime environment (like Noux or a VMM) required. At a higher level, the current release introduces new tooling especially geared at the development and porting of application software. Compared to Genode's regular development tools, which were designed for whole-system development, the new tool called Goa relieves the developer from the complexity of Genode's custom build system and instead promotes the use of popular commodity solutions like CMake. These and more topics are described in the [https:/documentation/release-notes/19.11 - release documentation of version 19.11...] Genode OS Framework release 19.08 | 2019-08-28 ############################################## | Genode 19.08 puts emphasis on practical concerns ranging from | keyboard layouts, over system-time management, to remote system | administration. It also continues our commitment to the 64-bit ARM | i.MX8 SoC, comes with Qt5 version 5.13, and improves POSIX compatibility. The summer release of Genode addresses a variety of topics when using Genode and Sculpt OS in practice. The confrontation with the real world prompted us to develop new concepts for managing system time, keyboards layouts, and copy-and-paste. For using Sculpt OS on the road, a new application VM for accessing captive portals smoothes the experience of connecting to public WiFi networks. Besides the practical focus, the new release continues our commitment to the 64-bit ARM i.MX8 platform through new kernel support, device drivers, and test coverage. Further topics include SMBIOS support for commodity PC hardware, a new tracing tool, enhanced POSIX compatibility, and a major update of Qt5 to version 5.13. The complete picture is presented in the [https:/documentation/release-notes/19.08 - release documentation of version 19.08...] Sculpt OS release 19.07 | 2019-07-09 #################################### | Version 19.07 of the Sculpt operating system improves overall performance | and introduces copy and paste between terminals, virtual machines, and | graphical applications. The most prominent user-visible feature of Sculpt OS 19.07 is the ability of copy and paste text between terminals, graphical applications, and virtual machines. Our unique take on this feature is described in a [https://genodians.org/nfeske/2019-07-03-copy-paste - dedicated article]. Under the hood, Sculpt 19.07 benefits from the massive infrastructure improvements that came with [https://genode.org/documentation/release-notes/19.05 - Genode 19.05], yielding a smoother user experience compared to earlier versions. The new release can be obtained from the [https://genode.org/download/sculpt - Sculpt download page] and is accompanied by updated [https://genode.org/documentation/articles/sculpt-19-07 - documentation]. Genode OS Framework release 19.05 | 2019-05-29 ############################################## | The highlights of version 19.05 are a new kernel-agnostic virtualization | interface, initial support for the 64-bit ARM architecture, the use of | C++17 by default, a new tool chain based on GCC 8.3, updated C and SPARK | runtimes, and the consolidation of build directories across boards. We dedicated the release cycle of Genode 19.05 to platform topics at various levels. The flagship feature is certainly the introduction of our kernel-agnostic virtualization interface. It has been in the works for more than a half year and gives us the prospect of running virtual machine monitors like Seoul and VirtualBox seamlessly across Genode's supported kernels. The second major theme is the extension of Genode's CPU-architecture support to 64-bit ARM (AARCH64). This step motivated the update of many parts of the framework's fundamental infrastructure, ranging from the tool chain (updated to GCC 8.3), over the C runtime (updated to FreeBSD 12 libc), to the dynamic linker. The new tool chain, in turn, paved the ground for enabling C++17 by default. With the diversity of kernels, CPU architectures, and boards growing, we are constantly striving to remove friction and redundancies between Genode's underlying platforms. The current release eventually consolidates the build directories not only across kernels but also across all boards of a given CPU architecture. This vastly increases the velocity of Genode-based system scenarios when targeting multiple boards or emulators at the same time. Further details about these and many more improvements are given in the [https:/documentation/release-notes/19.05 - release documentation of version 19.05...] Sculpt as a Community Experience | 2019-03-19 ############################################# | The fourth stage of Sculpt OS introduces a new federated software | provisioning model while giving the user full control over the | component deployment via a novel graphical user interface. With Sculpt CE, we enter the final stage of the evolution of Sculpt OS as envisioned roughly one year ago. Initially geared towards die-hard enthusiasts only, each revision became more and more user friendly. The previous version Sculpt VC already offered a glimpse of Sculpt's unique user interface in the form of an interactive component graph. The just released Sculpt OS "as a community experience" (CE) combines this tangible notion of component compositions with a completely federated software provisioning model that cuts out middlemen like an app store or a distribution. With Sculpt CE, components can be offered by a federation of independent software providers selectable by the user. The software installation is sandboxed and protected via digital signatures. The integration of components with the rest of the system is completely under control by the user. With the principle of least privilege at the heart of Sculpt's architecture, you - the user - can fearlessly install and run software without the need to ultimately trust the software providers. Sculpt CE is intended to work in tandem with the new community blog [https://genodians.org - Genodians.org] where developers and users exchange experiences and announce new software. The best way to watch how the Sculpt story continues is the RSS feed of Genodians.org. To dive into the new world of Sculpt CE, [https://genode.org/download/sculpt - download Sculpt OS...] Genodians.org | 2019-03-08 ########################## | Genodians.org is the new place to be for getting the latest news and stories | around Genode. It is a federated blog by and for developers and users | alike. With [https://genodians.org - Genodians.org], the Genode community has gained a new place for exchanging ideas, announcing current developments, giving tutorials, and sharing experience stories. In contrast to the formal character of Genode's regular release notes, the articles at Genodians.org are raw and personal, authored by individuals with no editorial process. For feedback about the articles, readers are invited to the new [https://reddit.com/r/genode - /r/genode] subreddit. As written in the [https://genodians.org/nfeske/2019-01-07-welcome - initial posting], Genode users and developers are warmly invited to join the authors at Genodians.org! As a side note, the blogging platform is based on the Genode OS framework and is of course open source ([https://github.com/genodelabs/genodians.org - GitHub repository]). [https://genodians.org - Visit Genodians.org...] Genode OS Framework release 19.02 | 2019-02-28 ############################################## | 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, improves the runtime support | for Ada and SPARK, and adds board support for i.MX6 Quad Sabrelite and | Nitrogen6 SoloX. Our first release of 2019 pays tribute to this year's [https://genode.org/about/road-map - road map] topic of making Genode relevant and attractive for a broader community. First, it enhances Sculpt OS with an easy-to-use way to discover, install, and integrate software originating from different providers into a running Sculpt system. Conversely, software providers get a distribution channel directly to the user, secured by cryptographic signatures. Unlike commodity OSes that rely on app stores or distributions, there is no middleman between software providers and users in Sculpt OS. Second, it makes the world's most popular programming language - Java - available. Our port of OpenJDK facilitates just-in-time compilation on both 32-bit ARM and 64-bit x86 architectures. The use of Java within a Genode system is nicely showcased by an exemplary IoT network appliance. Third, to foster a strong sense of community, the release introduces a Genode-based federated blogging platform, which enables users and developers alike to share ideas, practical tips and tricks, and announcements. [https://genodians.org - Genodians.org] is open for everyone to participate. Other highlights of Genode 19.02 are the improved runtimes for the Ada/SPARK and OCaml programming languages, and the added support for the i.MX6 Quad Sabrelite and Nitrogen6 SoloX boards. For more details, please refer to the [https:/documentation/release-notes/19.02 - release documentation of version 19.02...] Road Map for 2019 | 2019-01-15 ############################## | In 2019, we will focus on practical use cases, on interoperability, and | on harmonizing Genode with existing applications and programming languages. The past Year of Sculpt was dedicated to bringing Genode to the desktop on commodity PC hardware. Now is a good time to focus on making the Sculpt OS relevant and appealing for a broader community. The road map for 2019 features three major ambitions towards that goal. First, making Genode easier approachable and usable by presenting practical use cases while fostering a stronger sense of community among users and developers. Second, simplifying the use of existing applications and programming languages in Genode-based systems. And third, improving the interoperability of Genode with existing protocols and systems. The complete story behind the new road map is presented at the [https:/about/road-map - road-map page]. Genode OS Framework release 18.11 | 2018-11-29 ############################################## | Genode 18.11 is focused on improving quality assurance on various fronts, | including static code analysis, on-target test orchestration, and | code-coverage measurements. Furthermore, it introduces support for Mirage-OS | unikernels, a new health-monitoring mechanism, a Genode SDK, an SSH server, | and a new window layouter. On our road map for 2018, we identified software quality and resilience as one of the major topics for this year. With the current release, we fulfil this promise on various levels, ranging from static code analysis, over the gathering of test-coverage metrics, a new Genode-based test-automation framework, over to the health monitoring of components at runtime. The second theme of the current release is the use of Genode for network appliances and server applications. On that account, the new ability of hosting Mirage-OS unikernels directly on top of Genode as well as a new SSH server component clear the way to entirely new application areas. Further highlights of the current release are the enhanced flexibility of the GUI stack of Sculpt OS, the increased network performance on Xilinx Zynq, the initial version of a Genode SDK, performance improvements of the base-hw kernel on NXP i.MX platforms, and the updated language support for Ada and Java. These and many more topics of the new version are covered by the [https:/documentation/release-notes/18.11 - release documentation of version 18.11...] Dual licensing of 3rd-party Genode components | 2018-11-16 ########################################################## | To nurture a sustainable ecosystem around the Genode OS framework, we | introduce a new approach for conducting dual-licensing businesses enabled | by Genode. Since founded ten years ago, Genode Labs pursues the Genode project based on a dual-licensing business model, which allows us to fund the development of Genode as an independent team. The licensing business is enabled by the combination of the AGPLv3 as a strong copyleft license with the library-like nature of Genode. Until today, this model is applicable to our framework but impractical for 3rd-party component developers. To foster a sustainable ecosystem around Genode, we wish to enable others to pursue a similar business model while maintaining the spirit of open collaboration and free software. We eventually crafted a new license called "Genode Component Public License" (Genode CPL) specifically for components developed by 3rd parties, outside of Genode Labs. The article [https://genode.org/documentation/articles/component_public_license - Dual licensing of 3rd-party Genode components] provides the rationale, license text, and FAQ of this software license. Sculpt with Visual Composition | 2018-09-21 ########################################### | The third version of Sculpt OS introduces an interactive runtime view for | managing components. Sculpt with Visual Composition (VC) is the third stage of the evolution of our Genode-based general-purpose OS. With the new version, we pursue the gradual transition from a text-based user interface to a graphical user interface for most administrative tasks while preserving the text-based interface for full flexibility. The central element of the new user interface is a live view of the current system composition and the relationships between components. The live view is accompanied with a convenient graphical user interface for adding and removing components. The new version is available as a ready-to-use disk image. The updated documentation covers everything from a quick-start guide, over a high-level description of the architecture, to advanced topics like Sculpt's manifold customization opportunities. [https://genode.org/download/sculpt - Download Sculpt OS...] Genode OS Framework release 18.08 | 2018-08-30 ############################################## | Genode 18.08 advances the framework's device drivers to accommodate modern | PC hardware, introduces a new microcode-update mechanism for Intel CPUs, and | enhances the networking and VFS infrastructure. With the new version, | Sculpt OS enters the next stage by moving towards an interactive graphical | user interface. With Genode 18.08, we enter the third episode of our story of developing the Sculpt general-purpose OS. The release addresses four crucial concerns of general-purpose computing, namely the support of modern hardware, the ability to timely respond to the discovery of new CPU-level vulnerabilities by the means of applying microcode updates, the scalability of application workloads, and the interactive usability of the system. The latter is particularly exciting as Genode allows us to explore new user-interface paradigms to lay the power of capability-based security into the hands of the user. The most prominent aspect of the current release is the framework's device-driver support, which includes the update of all Linux-based drivers to kernel version 4.16.3, a largely reworked wifi stack, the split of the USB driver into multiple components, and improved hardware compatibility of the PS/2 and network drivers. The release also introduces an experimental runtime for hosting drivers of Google's Fuchsia OS as Genode components. Among the many further improvements are an extended Ada language runtime, added multi-processor support for our custom base-hw microkernel on x86, the ability to route network traffic between an arbitrary number of physical NICs, and a new way to select the networking stack of a component between lwIP and the Linux TCP/IP by a mere configuration change. All improvements are covered in detail by the [https:/documentation/release-notes/18.08 - release documentation of version 18.08...] Sculpt for The Curious | 2018-06-13 ################################### | The second incarnation of Sculpt OS comes in the form of a ready-to-use | disk image. Sculpt for The Curious is the second development stage of the Genode-based general-purpose OS used at Genode Labs. Compared to the initial version, which was targeted at early adopters only, the new version invites a broader user base to explore the system. It comes in the form of a ready-to-use disk image for a bootable USB thumb drive. Immediately after booting the Sculpt base system, a graphical user interface enables the user to access and manage storage devices, and to configure network connectivity. The actual "sculpting" of the system is performed using a text-based interface, which is described in the accompanied documentation. It covers everything from the configuration of the base system up to the installation and deployment of software. [https://genode.org/download/sculpt - Download Sculpt OS...] Genode OS Framework release 18.05 | 2018-05-31 ############################################## | With Genode 18.05, we have reached the second stage of Sculpt OS, | empowering the user with the automation of fundamental work flows and | a new user interface for storage management and network access. | Further highlights include the added support for Java, a new NVMe device | driver, enhanced VFS infrastructure, and an updated revision of the Genode | Foundations book. Our [https://genode.org/about/road-map - Year of Sculpt] continues at a rapid pace. The just released version 18.05 of the Genode OS Framework features the second incarnation of the Sculpt general-purpose OS, targeting the group of people who follow our project with curiosity. Sculpt for The Curios (TC) introduces an interactive user interface for fundamental tasks like selecting and managing storage options, or connecting to a network. It completely streamlines the installation and deployment of additional software by leveraging Genode's custom package-management system. The result is an operating system with a flexibility and fun factor that strikes even us with surprise. The current release contains countless side products of this line work, including the resolution-independent display of text, the dynamic adjustment of user-level network routing, the flexible detection and management of partitions and file systems, and the support of USB storage devices from diverse vendors. Beyond the immediate scope of Sculpt, the new version features the initial support for the Java language, improves the Ada language support, enhances the VFS infrastructure with new copy-on-write and audit plugins, and improves the support for the NXP i.MX SoCs. The entire picture is presented in detail by the [https:/documentation/release-notes/18.05 - release documentation of version 18.05...] Sculpt for Early Adopters | 2018-03-02 ###################################### | A detailed step-by-step guide for installing and using the Genode-based | Sculpt OS is available now. Sculpt for Early Adopters (EA) is the first revision of our Genode-based general-purpose OS. This version is targeted at enthusiasts who are already familiar with Genode. The documentation covers everything needed to get it running on a real machine. This includes disk preparation, input handling, wireless networking, storage, software installation and deployment, and virtualization. *Printable version (pdf)* [https:/documentation/sculpt-ea.pdf] *Online version* [https:/documentation/articles/sculpt-ea] Genode OS Framework release 18.02 | 2018-02-28 ############################################## | Genode version 18.02 kicks off the Year of Sculpt by featuring the | first revision of the Sculpt operating system for general-purpose | computing. Further highlights of the new release range from | network-stack improvements, over a new tracing utility, to the | experimental use of the Nim programming language. Since we announced the Year of Sculpt on our [https://genode.org/about/road-map - roadmap], our team anticipated the release of version 18.02 with excitement. The current release officially presents the first revision of the Sculpt operating system, which is targeted at the use of Genode as day-to-day OS. In fact, the system has been in use internally at Genode Labs for several months. We feel confident in sharing it with a broader community now. Driven by the demands of Sculpt, the most prominent topics of this release are Genode's new mechanisms for installing, updating, and deploying software from within a running Genode system. Further highlights are the experimental use of the Nim programming language for the implementation of Genode servers, a new tracing utility that makes Genode's existing tracing infrastructure much easier to use, improvements across the entire user-level networking stack, and updates of many 3rd-party software packages. These and many more topics are covered in detail by the [https:/documentation/release-notes/18.02 - release documentation of version 18.02...] Road Map for 2018 | 2018-01-17 ############################## | 2018 will be the year of Sculpt. In autumn last year, a new Genode system scenario called "Sculpt" emerged. By the end of 2017, all members of the Genode-Labs team switched to this operating system on their laptops. The planning of 2018 revolves around the ambition to expand the user base of Sculpt in several steps. Additionally, the year will be focused on software quality, device-driver support for popular ARM boards, Genode's custom kernel, and seL4. The new road map is available at the [https:/about/road-map - road-map page]. Genode at FOSDEM 2018 | 2018-01-16 ################################## | Genode will participate in the microkernel developer room at FOSDEM with | three presentations, covering our recent work on GPUs, user-level networking, | and the dynamic sculpting of a Genode-based system. The microkernel developer room at FOSDEM is the melting pot of the open-source microkernel world where projects and users meet to present their work and experience with microkernel-based operating systems. Like every year, we will take the chance to present the recent developments of Genode to the audience. If you are curious about the technology, or interested in meeting the people behind the projects, please do not hesitate to join us at FOSDEM, which will be held on 3rd - 4th of February in Brussels: FOSDEM 2018: [https://fosdem.org/2018/] This year, the following Genode-related topics will be presented: Saturday 11:05 *GPU resource multiplexing in component based systems* _Microkernel devroom (AW1.126)_ [https://fosdem.org/2018/schedule/event/microkernel_genode_gpu_multiplexing/ - abstract...] Saturday 12:25 *Live sculpting a Genode-based operating system* _Microkernel devroom (AW1.126)_ [https://fosdem.org/2018/schedule/event/microkernel_genode_live_sculpting/ - abstract...] Saturday 17:30 *User-level networking on Genode* _Microkernel devroom (AW1.126)_ [https://fosdem.org/2018/schedule/event/microkernel_genode_user_level_networking/ - abstract...] The complete schedule of the developer room is available at [https://fosdem.org/2018/schedule/track/microkernels/]. Genode OS Framework release 17.11 | 2017-11-30 ############################################## | Most of the many improvements of version 17.11 are geared towards the | practical use of Genode as day-to-day OS. They include a reworked GUI | stack, new user-input features, and the packaging of many components. | The new version also revises the boot concept on x86, updates the seL4 | kernel, and enhances Genode's user-level networking facilities. Whereas each Genode release is usually focused on one or two flagship features, version 17.11 accumulated countless improvements made during the practical use of Genode on a day-to-day basis. The topics range from convenience features like scroll-wheel emulation for Lenovo trackpoints, over the proper handling of keyboard modes (numlock and capslock), to a reworked GUI stack that takes new usage patterns into account. Since the forthcoming general-purpose scenario is entirely based on Genode's recently introduced custom package-management concept, it prompted us to package all ingredients of the scenario. On the platform level, the new version streamlines the boot concept on x86 among all supported kernels. All x86 microkernels consistently use GRUB2 now. Modern kernels like seL4, NOVA, or our custom kernel are able to boot via UEFI and legacy boot. Speaking of our custom kernel, the current release wraps up a long-term internal redesign that simplifies the kernel while improving its performance. Feature-wise, the new release further cultivates the use of the Nim programming language for native Genode components, includes a port of libretro-based emulators for game consoles, and enables the resizing of libSDL-based applications like avplay. The complete picture is presented in the official [https:/documentation/release-notes/17.11 - release documentation of version 17.11...] Genode OS Framework release 17.08 | 2017-08-30 ############################################## | Version 17.08 enables hardware-accelerated graphics on Intel-Gen8 GPUs | and expands Genode's seL4-kernel support to 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. The new release bears the fruit of our long-term investigation of hardware-accelerated graphics on modern Intel platforms that we conducted over the past year. The result is a brand new low-complexity GPU multiplexer that is designed after microkernel principles. With far less than 10K lines of code, it paves the ground for leveraging the power of GPUs at an extremely tiny footprint on the trusted computing base. The GPU multiplexer is accompanied with the matching application-side library infrastructure such as Mesa, libdrm, Qt5 bindings, SDL bindings. This allows Genode components to use the GPU with standard APIs like OpenGL. The seL4 microkernel is becoming more and more popular. Since about one year, most Genode scenarios are able to use this kernel on the 32-bit x86 architecture. The growing interest in the combination of seL4 with Genode prompted us to expand the architecture support to ARM and 64-bit x86 now. Additionally, we enabled SMP on x86, priority support, and Genode's CPU-time monitoring facility on this kernel. Speaking of Genode's underlying kernels, the current release equips NOVA, seL4, and our custom base-hw kernel with UEFI-boot support. It updates the Muen separation kernel to a current version, and adds the ability to run Genode as Xen DomU domains. These and the many more topics of the new version are covered by the [https:/documentation/release-notes/17.08 - release documentation of version 17.08...] Genode OS Framework release 17.05 | 2017-05-31 ############################################## | With a profoundly updated framework infrastructure such as GCC 6.3, | Qt 5.8, and VirtualBox 5.1.22 for NOVA, the just released version 17.05 | promises to be a suitable basis for longer-term maintenance and is | accompanied with a new edition of the "Genode Foundations" book. With the mid-year release of Genode, we hope to provide a solid basis for long-living projects built on top of the framework. For this reason, we updated the official tool chain as well as our ports of Qt and VirtualBox to current versions, which are there to stay in the foreseeable future. We also finalized the series of architectural and API-related changes that we started one year ago. The release is accompanied with a new edition of the "Genode Foundations" book that reflects the current state of the framework. Feature-wise, the most visible improvement is a new approach and the corresponding tooling for package management. While still officially declared as experimental, it already becomes apparent that it will bring Genode to a new level of scalability. Among the many further improvements are the support for the Ada and Nim programming languages, a new timing API, and new tools for monitoring network traffic and CPU load. All changes are covered in full detail in the [https:/documentation/release-notes/17.05 - release documentation of version 17.05...] Google Summer of Code | 2017-03-01 ################################## | Genode will participate under the umbrella of the FOSDEM microkernel | devroom as mentoring organization in this year's Google Summer of Code | program. Thanks to the initiative of Jakub Jermar and Martin Decky of the HelenOS project, multiple prominent open-source microkernel projects submitted a joint application to this year's Google Summer of Code (GSoC) program under the umbrella of FOSDEM microkernel devroom. As announced on the umbrella's [http://gsoc.microkernel.info - official GSoC page], the involved projects are HelenOS, Redox, MINIX 3, and Genode. In anticipation of the application, we have largely revisited our list of future technical challenges: *Genode-related topics:* [https://genode.org/about/challenges] Those topics are meant as inspiration. It goes without saying that we welcome other suggestions. If you are interested to participate in this year's GSoC with a Genode-related topic, the following steps are best way to get started: Learn the basics about Genode by skimming through the [https://genode.org/documentation/genode-foundations-16-05.pdf - Genode Foundations book], downloading the code, and experimenting with a few simple example scenarios. You will find the steps described in the book. If this experience leaves a good impression on you, please continue with making yourself known at the [https://genode.org/community/mailing-lists - Genode mailing list] by posting a short introduction of yourself, your primary interests, and possibly a topic that you'd like to engage in. Please don't hesitate to consult the list with any technical questions you might have. Note that the mailing list will be the tool of choice for mentoring you during GSoC. Hence, you should be comfortable in using it. Please keep in mind that friendly and concise written communication is crucial for our project, and will thereby be an important criterion for considering your application. We thank Google for accepting the microkernel devroom as a mentoring organization this year and look forward to GSoC students engaging with us! Genode OS Framework release 17.02 | 2017-02-28 ############################################## | By introducing application binary interfaces, version 17.02 cultivates | the cross-kernel binary compatibility of components. Furthermore, the | new version comes with a vastly improved VFS infrastructure, new input-event | processing capabilities, and a dynamic component-composition engine. On the long road towards binary compatibility of Genode components across OS kernels as different as L4, NOVA, seL4, or Linux, we reached a breakthrough by mid of 2016. It took us another six months to fully cultivate this unique feature and to integrate it seamlessly into our development work flows. With the current version, we have ultimately reached the point where one can move entire system scenarios from one kernel to another in just a few seconds. With the improved virtual file-system (VFS) infrastructure that comes with the new version, such system scenarios can become more and more sophisticated. Genode takes the meaning of _virtual_ file systems to an entirely new level. Not only does Genode virtualize the physical location of files but each component can have its own VFS whereby the supported file-system types are provided by VFS plugins. Those plugins can go as far as providing a TCP/IP stack as showcased by Genode's use of the Linux TCP/IP stack as VFS plugin. The composition of subsystems out of Genode components is another highlight of the current release. In each Genode-based system, the init component already plays a central role as it bootstraps the initial system components. Thanks to Genode's recursive system structure, init can easily be nested. With the improvements of the new version, such a nested init becomes a dynamic system-composition engine that responds to configuration updates and applies changes to its subsystem in a differential way. These and many more improvements are covered in full detail in the [https:/documentation/release-notes/17.02 - release documentation of version 17.02...] Open-source license update | 2017-02-21 ####################################### | With the upcoming version 17.02, Genode will adopt the GNU Affero General | Public License (AGPLv3) as its regular open-source license. Since our first release in 2008, Genode has been available under two flavors of licenses addressing different user bases. With Genode's regular open-source license, we address the Free-Software community, researchers, and technology enthusiasts. With the commercial license, Genode Labs enables product vendors to leverage Genode's technology for their businesses. For our open-source license, we originally picked the time-tested GNU General Public License version 2 (GPLv2). However, the time did not stand still. After 9 years, it is time to update the license to a more recent version. After careful review of the open-source licensing landscape, we settled on the GNU Affero General Public License (AGPLv3), which is based on the GNU GPLv3 and thereby rectifies several shortcomings of the GPLv2. Furthermore, it closes loopholes of the GPLv3 license with respect to web applications. Unlike 2008 when most applications were programs executed directly on the end user's computer, web applications have become predominant by now. To address possible concerns about the interoperability of the AGPLv3 with other open-source licenses, Genode's license will be accompanied with a linking-exception clause that clarifies our consent to link Genode with all commonly established open-source licenses. In December, we presented our plan of the license change to the subscribers of Genode's mailing list. The following constructive [https://sourceforge.net/p/genode/mailman/genode-main/thread/585116C8.2020607%40genode-labs.com/#msg35550569 - discussion] within the community helped us to refine our linking clause and to create a common understanding of the rationale behind our licensing choice. Thanks to everyone who participated in this discussion! Road Map for 2017 | 2017-01-17 ############################## | The year 2017 will be overall focused on stressing the scalability and | stability of the framework. After wrapping up the revision of Genode's architectural underpinnings and its API in 2016, it is time to push the scalability of the framework further. Over the course of 2017, we plan to greatly ease the creation of Genode systems out of packages, enable automated system updates, move our regular work flows from GNU/Linux to the Genode world, and extend the application scope of Genode systems to cloud-based appliances. The new road map is available at the [https:/about/road-map - road-map page]. Genode at FOSDEM 2017 | 2017-01-11 ################################## | The microkernel developer room at this year's FOSDEM will host four | Genode-related talks, ranging from our custom kernel, over | kernel-independent binaries, execution replay, to Genode's VFS | infrastructure. To us, the microkernel developer room at FOSDEM in Brussels has become the most anticipated joint event of the open-source microkernel world. The developer room is part of FOSDEM, which is the world's largest event of the Free-Software and Open-Source community. The upcoming FOSDEM will be held on 4th - 5th of February in Brussels: FOSDEM 2017: [https://fosdem.org/2017/] Originally initiated by our friends of the HelenOS project, the micro-kernel developer room is shepherded by a different project each year. In 2017, it's our turn to host the event. The developer room is open for all open-source projects that are related to microkernels or component-based operating systems. It features a mix of project introductions, experience stories, progress reports, discussions, and demos. This year, the following Genode-related topics will be presented: Saturday 10:45 *A kernel in a library Genode's custom kernel approach* _Microkernel devroom (AW1.125)_ [https://fosdem.org/2017/schedule/event/microkernel_kernel_library/ - abstract...] Saturday 12:45 *Deterministic replay support for Genode components* _Microkernel devroom (AW1.125)_ [https://fosdem.org/2017/schedule/event/microkernel_replay_support/ - abstract...] Saturday 14:24 *Introducing kernel-agnostic Genode executables* _Microkernel devroom (AW1.125)_ [https://fosdem.org/2017/schedule/event/microkernel_kernel_agnostic_genode_executables/ - abstract...] Saturday 17:10 *The VFS paradigm from the perspective of a component OS* _Microkernel devroom (AW1.125)_ [https://fosdem.org/2017/schedule/event/microkernel_vfs_component_os/ - abstract...] The complete schedule of the developer room is available at [https://fosdem.org/2017/schedule/track/microkernels_and_component_based_os/]. Genode OS Framework release 16.11 | 2016-11-30 ############################################## | Version 16.11 revisits the most fundamental low-level protocols of the | framework to further improve its scalability, refines the | virtual networking facilities, adds support for smart cards, and | improves the NOVA kernel. The fundamental mechanism of Genode is the interplay between parent and child components. This interplay remained unchanged since the very first version more than ten years ago. With the current release, we ultimately took the chance to revisit those low-level aspects of the framework in the light of the design of modern components. Specifically, we replaced the former fully synchronous model of interaction with asynchronous communication. Even though this change is barely visible at the API level of the framework, it greatly eases the validation of the framework's most crucial components and facilitates the scaling-up of Genode-based systems. As the second prominent improvement, we refined the design and configuration interface of the recently introduced network routing facilities. Whereas the initial version was primarily concerned with the details of network packet processing, the new version is tailored to the most prominent use cases and towards the ease of use. Further highlights of the current release are the added support for using smart cards, kernel improvements of the NOVA hypervisor, updated VirtualBox versions, and a virtual file system for generating time-based passwords. The topics are covered in more detail by the [https:/documentation/release-notes/16.11 - release documentation of version 16.11...] Genode OS Framework release 16.08 | 2016-08-31 ############################################## | Genode 16.08 makes the entirety of the framework's drivers, protocol stacks, | and libraries available on the seL4 kernel, brings VirtualBox 4 to the Muen | separation kernel, and hosts VirtualBox 5 on top of the NOVA kernel. Further | highlights are virtual networking and TOR, profound Zynq board support, and | tools for statistical profiling. With the current release, the interoperability of Genode with different OS kernels comes to a great effect. By completing the implementation of the framework's base mechanisms for seL4, literally hundreds of existing Genode components become suddenly available to the seL4 community. In a different arena, Genode serves as enabler to run commodity OSes like Windows via VirtualBox on top of the Muen separation kernel. The cross-kernel portability of components is certainly a key feature of the framework and version 16.08 pushes this idea even further by attaining binary compatibility across the various supported kernels. In fact, compiled once, the same component can be executed on kernels as different as seL4 and Linux. Speaking of components, the current release extends the framework's library of ready-to-use building blocks in several areas. Most prominently, there are new network-related components for routing traffic, using TOR, and for distributing Genode over the network. Other added components are concerned with improving the use of Genode as a general-purpose OS, or to aid the optimization of components by the means of statistical profiling. Version 16.08 is further complemented with added board support for devices based on Xilinx Zynq, including drivers for GPIO, video DMA, SD cards, and I2C. These and many more topics are covered in detail by the [https:/documentation/release-notes/16.08 - release documentation of version 16.08...] Genode OS Framework release 16.05 | 2016-05-27 ############################################## | With version 16.05, the Genode API receives a fundamental revision. | The list of further improvements ranges from the introduction of Rust, | over improved GDB support, to a profound update of many device drivers | and ACPI features. The current release marks the most profound API revision in the project's history. The new API is designed to reinforce the best practices for implementing Genode components. It is the result of countless experiments and the practical experiences made while developing over hundred genuine components during the past ten years. The introduction of the new API prompted us to rework our documentation. In particular, Genode 16.05 is accompanied with a new edition of the "Genode Foundations" book that incorporates all architectural changes and interface modifications of the past year. The second focus of the current release is the major update of device drivers. All the drivers that we ported from the Linux kernel correspond now to Linux version 4.4.3. Those drivers comprise the Intel wireless stack, the Intel graphics driver, the USB drivers, and the TCP/IP stack. The updated OpenBSD-based audio driver corresponds to OpenBSD 5.9. Apart from the revision of the base framework and device drivers, Genode gains the ability to use the Rust programming language, makes many ACPI features accessible, and allows the use of the GNU debugger with the 64-bit version of the NOVA hypervisor. The complete story behind these and many more changes is covered by the [https:/documentation/release-notes/16.05 - release documentation of version 16.05...] How Genode came to RISC-V | 2016-03-22 ###################################### | Our new article provides a look behind the scenes of porting Genode to | the RISC-V hardware architecture. The experience report [https:/documentation/articles/riscv - How Genode came to RISC-V] complements our recent [https:/documentation/release-notes/16.02#New_support_for_the_RISC-V_CPU_architecture - announcement] about Genode's added RISC-V support with in-depth technical information. It briefly introduces the parts of the instruction set architecture (ISA) that were most relevant for the porting work, presents various challenges we encountered, and explains how we overcame them. The article is written with two target audiences in mind: People interested in practical experiences with RISC-V, and developers who aspire to port Genode to new CPU architectures. [https:/documentation/articles/riscv - Read the article...] Genode OS Framework release 16.02 | 2016-02-26 ############################################## | Genode 16.02 introduces the RISC-V hardware architecture to the framework, | enables the secure pass-through of USB devices to virtual machines, and | updates the Muen separation kernel and the seL4 microkernel. In contrast to the feature-oriented previous release, the new version focuses on diverse topics around low-level platform support. First, there is the addition of a new hardware architecture. With the addition of RISC-V, we anticipate future trustworthy open-source hardware platforms. Second, as the major functional addition motivated by Genode's use as day-to-day OS, the new version adds the ability to assign USB devices to virtual machines in a dynamic yet secure way. This clears the way to cover many typical desktop work-flows with a Genode-based system. With respect to the framework's underlying kernels, we are happy to announce the update of the Muen separation kernel to version 0.7 and the update of the seL4 kernel to version 2.1. The new version of Muen comes with welcome work-flow improvements. In fact, the separation kernel can now be targeted by Genode's automation tools in the same uniform way as all the other base platforms. An in-depth coverage of these and many more improvements is provided by the [https:/documentation/release-notes/16.02 - release documentation of version 16.02...] Road Map for 2016 | 2016-01-15 ############################## | We finalized the road map for 2016, which is primarily focused on extending | the community of users. After having passed the point where a few enthusiasts use Genode as their day-to-day OS, it is time to extend the user base beyond the inner circle of developers. The road map outlines the plan to make Genode appealing to two target audiences, namely system builders and a narrow group of privacy-considerate end users. Hence, the overall theme of 2016 is to help a growing community to leverage the full potential of Genode. The new road map is available at the [https:/about/road-map - road-map page]. Genode at FOSDEM 2016 | 2016-01-12 ################################## | There are four Genode-related talks scheduled at this year's FOSDEM, | covering the USB Armory, seL4, the Nix package manager, and Genode | as desktop OS. [https://fosdem.org/2016 - FOSDEM] is the worlds biggest gathering of open-source and free-software enthusiasts. It takes place during 30 and 31 of January in Brussels. This year, Genode will show a strong presence again. On Saturday, Emery, Martin, and Norman will contribute to the [https://fosdem.org/2016/schedule/track/microkernels/ - microkernel devroom]. On Sunday, we have the opportunity to present the current state of Genode as desktop OS at the desktops devroom. The summary of the Genode-related parts of the FOSDEM schedule is as follows. Saturday 10:40 *An exploration of the seL4 kernel from Genode's perspective* _Microkernel devroom (K.4.601)_ [https://fosdem.org/2016/schedule/event/microkernels_genode_sel4/ - abstract...] Saturday 14:10 *Porting Nix to Genode - Package management without a canonical file system* _Microkernel devroom (K.4.601)_ [https://fosdem.org/2016/schedule/event/microkernels_genode_nix/ - abstract...] Saturday 15:55 *Genode's TrustZone demo on the USB Armory* _Microkernel devroom (K.4.601)_ [https://fosdem.org/2016/schedule/event/microkernels_genode_usb_armory/ - abstract...] Sunday 10:20 *Genode as Desktop OS* _Desktops devroom (K.4.401)_ [https://fosdem.org/2016/schedule/event/genode_as_a_desktop_os/ - abstract...] The story behind Genode's TrustZone demo on the USB Armory | 2015-12-08 ####################################################################### | Our latest article provides a look behind the scenes of the | development of Genode's support for the USB Armory platform. The [https://inversepath.com/usbarmory - USB Armory] is a computer in the form of a USB stick. It normally runs Linux. But thanks to the ARM TrustZone capabilities of the device, it is possible to run Genode behind the back of Linux. This is useful for shielding sensitive information like cryptographic keys from Linux by exposing it to Genode only and thereby drastically reducing the attack surface. Even in the event Linux gets compromised, e.g., by a vulnerability in the USB stack, the secrets remain protected. The article "The story behind Genode's TrustZone demo on the USB Armory" presents the adventurous story behind enabling this scenario. The biggest challenge was splitting the hardware platform into two worlds while maintaining the full functionality of Linux. The article goes on to explain the interplay between the secure world (Genode) and the normal world (Linux). Furthermore, it provides all the pointers needed to reproduce the scenario. [https://genode.org/documentation/articles/usb_armory - Read the article...] Genode OS Framework release 15.11 | 2015-11-30 ############################################## | The primary focus of version 15.11 is the use of Genode as a 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 such as a VFS server. Whereas the previous release marked the point where the very first user adopted Genode as day-to-day OS, we maintained the direction to create a Genode-based desktop OS. Most improvements of the new version are related to this goal: The GUI and audio stacks have become much more modular, dynamic, and flexible. With a new copy-and-paste mechanism, we added a universally expected desktop-integration feature in a unique way that mitigates the misuse of the clipboard as a covert communication mechanism. Those higher-level features are complemented with profound low-level device-driver improvements, most noteworthy the addition of the Intel KMS driver. This driver allows us to drive multiple displays and switch screen resolutions on the fly. What high- and low-level components have in common, is the use of Genode's uniform configuration concept, which solves a variety of configuration problems with a single low-complexity mechanism. It allows us to modify all kinds of system configurations - ranging from the wireless driver to the style of window decoration - live by merely editing and saving text files. Even though the majority of improvements are attributed to the use of Genode as desktop OS, the release also covers other areas. Xilinx Zynq-7000 has been added to the supported platforms, TrustZone on the USB Armory received a lot of attention, and a new VFS server makes Genode's file-system infrastructure much more flexible. These and many more topics are covered in detail by the [https:/documentation/release-notes/15.11 - release documentation of version 15.11...] Genode OS Framework release 15.08 | 2015-08-31 ############################################## | Version 15.08 marks the starting point of Genode used as day-to-day | operating system, which underlines the maturity and scalability of the | framework. A further highlight is the ability to execute Genode on | top of the Muen separation kernel. Since the first release of Genode seven years ago, we dreamed of being able to use our OS technology as the underlying platform for our day-to-day computing needs. With the current version, the day has come: One of Genode's core developers has made the switch and others plan to follow soon. Hence, the use of Genode as day-to-day OS is the underlying theme of most improvements seen in the new version. It addresses long-standing deficiencies of the kernel-memory management of the NOVA kernel and Genode's custom kernel platform, extends the framework's system-monitoring and file-system abilities, and significantly improves the integration of VirtualBox with Genode. The second highlight of version 15.08 is the ability to execute Genode system scenarios on top of the Muen separation kernel. Compared to microkernels, Muen takes the ambition to reduce kernel complexity to an extreme. Written in the safe implementation language SPARK and with a code complexity of merely 5,000 lines, it lends itself to be high assuring about its correct behavior. From Genode's point of view, Muen represents an additional target architecture of the framework's custom base-hw kernel. The component isolation enforced by base-hw and the static isolation boundaries enforced by Muen represent two lines of defense for protecting security-critical system functions from untrusted components. More details about all the improvements are provided by the [https:/documentation/release-notes/15.08 - release documentation of version 15.08...] Genode OS Framework release 15.05 | 2015-05-26 ############################################## | For the first time, a Genode release is accompanied by a book. | Further highlights of the current release are vast improvements of our | base-hw kernel, preliminary support for the seL4 microkernel, new | device-driver infrastructure, and plenty of new device drivers. With version 15.05, we equip Genode users with comprehensive documentation in the form of the free book "Genode Foundations". The book covers the architecture in great detail, assists developers with the explanation of the development environment and system configuration, and provides insights behind the scenes of the framework. Furthermore, the book contains the specification of the framework's programming interfaces. Besides the documentation, the second highlight of the release is the base-hw kernel, which enables the execution of Genode without a 3rd-party microkernel. Our kernel, originally designed for the ARM architecture, has become able to run on the 64-bit x86 architecture, it received support for kernel-protected capabilities, and its scheduler got much more flexible. Even though we invest a lot of work in our custom kernel, the biggest strength of Genode is its ability to leverage the benefits of different kernels. With the current release, we introduce preliminary support to run simple system scenarios on top of the seL4 microkernel. With seL4, there is now the prospect of running Genode on top of a formally verified kernel. At the framework's architectural level, we took the opportunity to redesign the infrastructure for user-level device drivers. With this release, device drivers become subjected to rigid access control with respect to hardware resources. Along with this architectural change, there are massive improvements of the device driver support. There is a new AHCI driver, new audio drivers ported from OpenBSD, new SD-card drivers, added platform support for i.MX6, and support for message-signalled interrupts on x86-based machines. A detailed description of all the improvements is provided by the [https:/documentation/release-notes/15.05 - release documentation of version 15.05...] Genode's core running on the seL4 kernel | 2015-05-18 ##################################################### | In the third part of our seL4 article series, we describe the steps | taken to run Genode's fundamental components on seL4. The article "Porting the core component" builds upon the experience gained from the first two articles to execute Genode-based systems on top of seL4. As for the previous articles, it is full of technical insights into both seL4 and Genode. Among the many challenges that had to be overcome are the management of capabilities and memory, the synchronous RPC communication between components, and the handling of page faults. As result, simple Genode system scenarios can be readily executed on top of the seL4 kernel. [https://genode.org/documentation/articles/sel4_part_3 - Read the article...] All the steps described in the article can be followed in the topic branch [https://github.com/nfeske/genode/commits/sel4] of the ongoing development. Furthermore, the principle support for seL4 will be featured in the upcoming Genode release 15.05. An in-depth look into the ARM virtualization extensions | 2015-03-12 #################################################################### | Our new article explores the mechanisms of the ARM virtualization extensions | and describes how Genode's custom base-hw kernel was turned into | a microhypervisor. With the recently published [https:/documentation/release-notes/15.02 - version 15.02], Genode received support for ARM's virtualization extensions. While conducting this line of work during the year of 2014, we took the chance to thoroughly document the experience. The article "An in-depth look into the ARM virtualization extensions" presents the overall virtualization architecture and goes into detail about the virtualization of memory, CPU, interrupts, and time. Furthermore, it covers a series of experiments with I/O protection mechanisms. [https:/documentation/articles/arm_virtualization - Read the article...] Exercising the seL4 kernel interface | 2015-03-10 ################################################# | The second part of the article series about Genode on seL4 goes into | detail about the kernel mechanisms for synchronous inter-process | communication and the management of virtual memory. The article "Genode on seL4 - IPC and virtual memory" examines the most important mechanisms of the seL4 kernel. It covers synchronous inter-process communication between threads, the delegation of capabilities, and the management of virtual memory. Apart from presenting hands-on experience with using the kernel, it identifies potential challenges for using it as Genode base platform. [https://genode.org/documentation/articles/sel4_part_2 - Read the article...] All the steps described in the article can be followed in the topic branch [https://github.com/nfeske/genode/commits/sel4] of the ongoing development. Genode OS Framework release 15.02 | 2015-02-27 ############################################## | 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. Most of the previous releases were motivated by our desire for features that we deemed as fundamentally important to use Genode as a general-purpose system. Now that we have reached most of the feature set that we longed after, the project adjusts its focus. According to our recently published [https://genode.org/about/road-map - roadmap], the underlying theme of the current development shifted towards the cultivation of the existing feature set rather than the introduction of new functionality. The current release perfectly reflects this change. It introduces a highly modular tool kit for scaling up the project's automated testing efforts and comes with stability and performance improvements all over the place. In particular, we are happy to report substantial performance gains of our version of VirtualBox running on NOVA. As a second focus of the version 15.02, our custom base-hw kernel platform received a lot of attention. The most prominent news is the added support for virtualization on ARM. This line of work has been conducted and refined over the time span of more than a year and took much of our prior experience with the NOVA virtualization architecture and ARM TrustZone into account. This experience resulted in a novel microhypervisor design with an extremely tiny foot print with respect to the added complexity on the account of virtualization support. In fact, less than 1000 lines of code had to be added to the root of the trusted computing base. Besides virtualization support, our kernel's scheduler got refined to take IPC relationships into account while additionally gaining support for the USB Armory hardware platform. These and many more improvements are covered in more detail by the [https:/documentation/release-notes/15.02 - release documentation of version 15.02...] Road Map for 2015 | 2015-01-14 ############################## | After brainstorming Genode's mid-term future on our mailing list, | we finalized our road map for this year. The development during the past years was primarily driven by our desire for features. With respect to the feature set, we have eventually reached a state where Genode becomes viable as general-purpose computing platform. That said, we are still not there yet, because apart from a list of features, it is important how those features fit together and how easy it is to use them. Therefore, the focus for 2015 will be the consolidation and cultivation of the existing feature set. Still, there will be room for new developments, i.e., the use of Genode on the seL4 kernel. The new road map is available at [https://genode.org/about/road-map]. Genode at FOSDEM 2015 | 2015-01-14 ################################## | With three talks, Genode will show a strong presence at this year's FOSDEM. | The talks will cover an introduction of Genode, our line of work | regarding VirtualBox on NOVA, and Genode's evolving GUI architecture. Keeping up with our tradition to participate in the worlds largest gathering of the open-source and free-software community, we are happy to announce three talks to be held by Norman Feske at FOSDEM 2015: Sunday 12:00 - 12:25 *Genode - OS security by design* _Security devroom (AW1.120)_ Sunday 14:20 - 15:00 *Transplantation of VirtualBox to the NOVA microhypervisor* _Virtualization devroom (UD2.120)_ Sunday 15:30 - 16:15 *Introducing a radically componentized GUI architecture* _Microkernel devroom (K.3.201)_ More information about the talks (including abstracts) are available at the [https://fosdem.org/2015/schedule/speaker/norman_feske/ - FOSDEM website]. Genode OS Framework release 14.11 | 2014-11-28 ############################################## | With the availability of the Intel wireless stack in version 14.11, | we close one of the last functional gaps to use Genode on modern laptops. | Further highlights of the new version are the trading of CPU resources | between subsystems on top of our custom HW kernel, VirtualBox 4.3.16, | a new dynamic linker, and networking on the Raspberry Pi. Early on our long way towards the use of Genode as a general-purpose OS, we identified wireless networking as a crucial functionality. For a long time, however, we feared the topic because WiFi driver stacks are known to be extremely complex. In spring this year, we have finally started to port the Intel wireless stack from Linux to Genode. With the current release, we are proud to present the outcome of this activity as a new component on Genode. As the second major improvement of the new version, we added a new scheduler to our custom HW kernel that allows us to trade CPU resources between Genode subsystems, similarly to how memory is managed on Genode. Furthermore, the new version comes with an upgrade of VirtualBox on NOVA to version 4.3.16 along with profound stability improvements, a new dynamic linker with a complexity of less than 20% of the old one, added networking support for the Raspberry Pi, and new GUI components. The story behind our work on the WiFi stack as well as detailed information about all the other improvements are provided by the [https:/documentation/release-notes/14.11 - release documentation of version 14.11...] Article about building a simple seL4 root task | 2014-10-30 ########################################################### | As we have just kicked off our work on porting Genode to the seL4 | microkernel, we took the chance to document the process in the form | of a series of articles. The first part covers the steps of creating | a minimalistic root task. The seL4 kernel is a modern microkernel jointly developed by NICTA and General Dynamics. This summer, it was released under GPL, which makes it intriguing as a potential base platform for Genode. Its biggest appeal stems from the fact that there exists a formal proof of correctness of the kernel code. But besides this assuring attribute, with solid kernel resource management, support for capability-based security, and good performance, it is attractive on technical merits too. The article "Genode on seL4 - Building a simple root task from scratch" covers the first steps of enabling Genode to run on seL4. It describes the integration of the kernel code with Genode's source tree and the steps taken to create a minimalistic root task that runs on the kernel. It is full of hands-on information about the methodology of such a porting effort and describes the experience with using the kernel from the perspective of someone with no prior association with the seL4 project. [https://genode.org/documentation/articles/sel4_part_1 - Read the article...] All the steps described in the article can be followed in the topic branch [https://github.com/nfeske/genode/commits/sel4] of the current development. Genode OS Framework release 14.08 | 2014-08-28 ############################################## | The central theme of version 14.08 is a new GUI architecture that maintains | strong security yet scales to highly flexible and dynamic GUIs. Furthermore, | the release comes with a port of OpenVPN, networking support for VirtualBox, | updated DDE Linux, and vastly improved performance of our custom base-hw | kernel. The new GUI architecture introduced with the release puts security in the front seat while aiming at highly customizable user experiences. In line with Genode's philosophy, it does not come as a complete solution with a fixed feature set but as a number of building blocks. Its flexibility stems from the many different ways of how those building blocks can be combined. Because each component uses well-defined interfaces, it becomes easy to customize the look&feel and the behaviour of the user interface by replacing individual components by alternative implementations. Further highlights in addition to the GUI-related improvements are the added support for networking in VirtualBox, multi-processor support for the Seoul virtual machine monitor, pluggable file systems, and the added port of OpenVPN. Many existing parts of the framework received attention as well. For example, the environment for executing Linux device drivers (DDE Linux) on top of Genode has been updated to Linux 3.14.5, we improved the integration of Qt5, and the performance of our custom kernel for ARM hardware got a boost. More background information about all the new features and improvements is provided in the [https:/documentation/release-notes/14.08 - release documentation of version 14.08...] Genode OS Framework release 14.05 | 2014-05-29 ############################################## | Version 14.05 greatly improves the way 3rd-party software can be combined | with the framework, VirtualBox on NOVA received guest-additions support, | there is a new block-encryption facility, and our custom base-hw kernel | became able to use multiple processors. Genode-based system scenarios combine the software of up to 70 different open-source projects, which presents the user with the challenge to keep those software ports consistent with the framework. The new version comes with new tools and build-system improvements, which make the porting and use of such 3rd-party software easier than ever and pave the ground to scale Genode-based systems far beyond the current state. The second focus of the release cycle was the enhancement of the platform support for NOVA on the x86 architecture and for our custom kernel on the ARM architecture. The latter received multi-processor support and a new memory management concept. For NOVA, we enabled the use of real-time priorities and continued our line of work with running VirtualBox on this kernel by adding support for guest additions such as file systems shared between Genode and the guest OS. Furthermore, we added a new component for block-level encryption based on NetBSD's cryptographic device driver and enabled USB 3.0 on x86-based platforms. More information about all the changes is provided in our detailed [https:/documentation/release-notes/14.05 - release documentation of version 14.05...] An Exploration of ARM TrustZone Technology | 2014-04-10 ####################################################### | A new article supplemented by a demonstration video presents our endeavour | of combining Genode with the security features of ARM TrustZone. ARM TrustZone technology has been around for half a decade. Even though it is used on most ARM-based devices ranging from low-cost development boards to mobile phones like the Samsung Galaxy S4, there exists almost no public body of knowledge around this technology. This prompted us to start a series of experiments with ARM's security extensions. Our line of work ultimately led to a demonstrable prototype where Genode is used as secure OS behind the back of Android running on a FreeScale i.MX53 SABRE tablet. We share our experience (and of course the full source code) in the form of the article [https:/documentation/articles/trustzone - An Exploration of ARM TrustZone Technology...] Genode OS Framework release 14.02 | 2014-02-28 ############################################## | The two highlights of the new release are VirtualBox running on | top of the NOVA microhypervisor and the added support for NetBSD's file | systems. Furthermore, the release comes with new or largely revised | storage components such as a block cache. During the release cycle for version 14.02, the development was focused on the topics storage and virtualization, both considered as fundamental for using Genode as general-purpose OS. Concerning storage, we took the chance to redesign the existing block-level components to work asynchronously. This way, block requests can be processed in a pipelined fashion and even out of order, which is beneficial to hide device latencies and to maximize throughput. Additionally, there are entirely new storage components, most prominently a new block cache, FUSE-based file-system services, and support for the file systems of the NetBSD kernel. The latter was made possible by the use of so-called rump kernels, which allow the execution of individual NetBSD kernel subsystems at user level. We use it to execute NetBSD's file systems as Genode components. Virtualization has become a popular use case for microkernel technology. Until now, however, none of Genode's existing virtualization options such as L4Linux on top of Fiasco.OC or the Vancouver VMM on top of NOVA could be considered as compelling alternatives to commodity virtualization products. With the added support for running VirtualBox on top of the NOVA microhypervisor, we combine the benefits of microkernel technology and capability-based security in particular with a product-grade virtualization solution. Compared to the traditional host operating systems supported by VirtualBox, using VirtualBox on top of Genode/NOVA reduces the trusted computing base for the security of virtual machines by more than three orders of magnitude. For existing Genode users, VirtualBox opens up the ability to run a wide range of unmodified guest operating systems such as GNU/Linux and MS Windows side by side with regular Genode components. As is the case for every release, there are many additional improvements all over the place, for example unified interfaces for graphics, support for POSIX signals in the Noux runtime for Unix programs, and a new pseudo file system for the interactive exploration and tracing of Genode's process tree. These and more topics are covered by the detailed [https:/documentation/release-notes/14.02 - release documentation of version 14.02...] Slides and videos of our FOSDEM talks | 2014-02-10 ################################################## | We held two talks at FOSDEM 2014: Stefan Kalkowski presented Genode | running on the secure side of ARM TrustZone whereas Norman Feske gave an | overview of the project's efforts towards general-purpose computing. The slides of both talks are available at the [https://genode.org/about/publications - publications section]. Both talks feature several live demonstrations. E.g., Stefan presented Genode running besides Android on an i.MX tablet. Norman showed off VirtualBox on Genode among several other demos. For the latter talk, there is a [https://video.fosdem.org/2014/H2214/Sunday/Genode_as_generalpurpose_OS_progress_report_and_demonstration.webm - video recording] available. A video for Stefan's talk will follow soon. Thanks to the video crew at FOSDEM for their great work! Guide for porting 3rd-party software to Genode | 2014-01-28 ########################################################### | Our new porting guide provides step-by-step instructions on how to | port existing libraries, applications, and device drivers to Genode. The comprehensive documentation is written in the style of a tutorial, taking DosBox as a practical example to motivate the steps needed to port an existing application to Genode. Furthermore, it gives valuable insights into time-tested methodologies of porting libraries and device drivers. [https://genode.org/documentation/developer-resources/porting - Genode Porting Guide...] Road Map 2014 | 2014-01-17 ########################## | The updated road map outlines the major topics and schedule of the | project for 2014. In 2014, the development of Genode will be focused on the base-hw kernel platform, a capability-based user interface, storage, and the scalability of 3rd-party software support. The updated road map provides a brief reflection of the last year's progress before giving the rationale for the next steps the project will take. The various topics include for example virtualization using ARM's virtualization extensions, a novel user-interface, storage, VirtualBox on NOVA, and 3rd-party source-code package management. [https://genode.org/about/road-map - Please refer to the official road-map for more details...] FOSDEM 2014 | 2014-01-06 ######################## | It goes without saying that Genode will participate in FOSDEM this year | during February 1 - 2 in Brussels. Like the years before, there will be a microkernel devroom. This time, the devroom will be held on Sunday. There will be two presentations at the devroom specifically related to Genode: 09:55 - 10:40 *Genode as general-purpose OS - Progress report and demonstration* _Norman Feske_ 15:00 - 15:30 *Virtualization Dungeon on ARM* _Stefan Kalkowski_ As usual, those presentations will be garnished with demonstrations. Besides our contributions, the devroom will cover many other intriguing topics related to the Open-Source microkernel community. The devroom schedule for the whole day is available here: [https://fosdem.org/2014/schedule/track/microkernel_based_operating_systems] Genode OS Framework release 13.11 | 2013-11-28 ############################################## | In addition to evolving the Genode API to better accommodate dynamic | workloads, version 13.11 comes with a host of new features such as | Qt5 QML, the Linux TCP/IP as user-level library, file systems based | on FUSE, and HDMI support for Exynos-5 and Raspberry Pi. As follow-up to the inclusion of Qt5 in the previous release, the new version principally enables the most distinctive feature of Qt5, namely QML. QML parts ways with the classical QWidget approach and thereby makes the development of visually appealing applications easier than ever. Most of the development during the release cycle was dedicated to work on protocol stacks. Thanks to the new implementation of the FUSE API for Genode, FUSE-based file systems have become available to the whole range of supported kernels. In addition, when using Genode on top of the Linux kernel, a new file-system service allows the integration of (parts of) the Linux file system with Genode. To improve the performance of gigabit networking, we supplemented the existing lwIP stack with a fresh port of the Linux TCP/IP stack that we call LXIP. Using LXIP, it becomes possible to execute one or many networking applications, each linked to its own Linux TCP/IP stack. In line with other releases, version 13.11 comes with improved device drivers. This time, the framework gains HDMI and USB 3.0 storage support for Exynos-5 SoCs as well as graphics and USB HID support for the Raspberry Pi. The added drivers were the only missing pieces to run interactive graphical system scenarios on both platforms. Among the many further improvements are the switch to C++11, new protocols for enabling dynamic resource balancing, new terminal services, and support for ARM TrustZone on i.MX53. For the full story, please refer to the detailed [https:/documentation/release-notes/13.11 - release documentation of version 13.11...] Genode OS Framework release 13.08 | 2013-08-15 ############################################## | We celebrate our 5th anniversary with the addition of three major features: | Qt5 on all kernels, profound multi-processor support on the NOVA and | Fiasco.OC kernels, and light-weight tracing of inter-process communication. The availability of Qt has always been one of the features that made our framework attractive to the microkernel community. We have closely followed the development of Qt5 and greatly appreciate the direction the Qt developers are heading to. Now that Qt5 has reached a stable state, the time is right for Genode to make the switch from Qt4 to Qt5. With the fresh port of Qt version 5.1 to Genode, Qt becomes available on the entirety of kernels supported by the framework. Component-based systems use to pose the difficulty of getting a holistic view on the system. The more complex the system scenarios become, the more inter-component communication takes place. Finding performance bottlenecks in such kinds of de-componentized systems tends to be much more challenging than in the world of monolithic systems. To overcome this challenge, the new version comes with tracing support deeply built into the framework. This facility is able to capture the interactions of Genode components between each other in a light-weight fashion with almost no side effects. As the third major addition, version 13.08 comes with substantial support for multi-processor systems, in particular for using Genode with the NOVA kernel. Within the NOVA developer community, this controversial topic has been discussed for several years. It seemed like NOVA's multi-processor model was inherently contradicting with the design of the Genode API. However, we have finally found a fairly elegant solution that makes multiple CPUs seamlessly available for Genode users on NOVA. Besides these highlights, the release comes with new SATA 3.0 and power-management drivers for the Samsung Exynos-5 SoC, updates the Fiasco.OC kernel and L4Linux, and introduces measures for verifying the integrity of downloaded 3rd-party source codes. Those and many more topics are presented in detail in the [https:/documentation/release-notes/13.08 - release documentation of version 13.08...] Genode OS Framework release 13.05 | 2013-05-30 ############################################## | The highlights of version 13.05 are new tools for automated testing and | benchmarking including a suite of networking benchmarks, added device drivers | for the Samsung Exynos 5 and Freescale i.MX SoCs, and new components for | the operation of headless systems. The growing diversity of Genode base platforms, in particular the variety of ARM-based SoCs, calls for quality-assurance measures that go beyond unit testing and Qemu-based integration tests: Genode's base functionality including device drivers need to be continuously tested and measured on real hardware. To automate this task, version 13.05 introduces extensive tooling support including a suite of networking benchmarks that operates on different levels of the networking stack. Speaking of broadening the hardware support, the new version enhances the existing base of device drivers for ARM-based SoCs with support for SATA, USB-3, eMMC, and networking on Samsung Exynos 5, as well as support for LCD display and touch-screen devices on Freescale i.MX SoCs. Furthermore, it features basic support for the Broadcom BCM2835 SoC, which is the heart of the popular Raspberry Pi platform. Apart from the extended pool of device drivers, there is a new facility for capturing LOG data to files stored on a file system, a command-line based user interface for managing Genode subsystems, and the addition of Linux/ARM as Genode base platform. The full story behind these and many more changes is detailed in the [https:/documentation/release-notes/13.05 - release notes of version 13.05...] Genode OS Framework release 13.02 | 2013-02-28 ############################################## | The version 13.02 takes a major leap with supporting the NOVA hypervisor by | fully embracing IOMMUs and NOVA's virtualization capabilities. Additionally, | the framework enables the use of ARM Cortex A15, comes with a new audio | interface, and introduces file-system notifications. Following the tradition to focus the February release on platform improvements, we dedicated the release cycle of version 13.02 to bringing the NOVA platform to new heights, revisiting several framework internals, and exploring the Exynos 5250 SoC based on ARM Cortex A15. The work on the NOVA platform pursued three goals: Improving the kernel to make it fit for Genode's highly dynamic work loads, leveraging the IOMMU support provided by the kernel, and tightly integrating the Vancouver virtualization solution with the Genode environment. These improvements combined turn NOVA into an intriguing base platform for Genode on x86 machines. Besides the x86 architecture, the framework receives new support for ARM Cortex A15 CPUs in the form of the Exynos 5250 SoC. We enabled Genode on this hardware platform using both our custom kernel as well as the Fiasco.OC kernel. Even though the current version is primarily focused on platform support, there are noteworthy functional improvements as well. A few highlights are a completely redesigned audio interface, added file-system notification capabilities, and a new fault-detection mechanism. These and many more improvements are described in elaborative detail in the [https:/documentation/release-notes/13.02 - release notes of version 13.02...] Road Map 2013 | 2013-01-15 ########################## | The updated road map provides the background and rough schedule for the | advances of the framework planned for 2013. The road map of 2013 encompasses four major topics: improving the framework infrastructure, using Genode as a self-hosting environment, tooling and optimizations, and hardware support. Before going into detail about each of those topics, the updated road map document takes the chance to look back at the outcome of 2012. Even though the project largely maintains its main motivation of last year to turn Genode into a real-world general-purpose OS, the planned work reaches out to challenges that lie beyond this immediate goal, in particular multi-processor scalability, support for IOMMUs, extended ARM SoC support, and improved virtualization on x86. [https://genode.org/about/road-map - Review our road-map for more details...] Genode OS Framework release 12.11 | 2012-11-29 ############################################## | With version 12.11, Genode has become able to execute the Genode build system | directly on microkernels, introduces audio drivers based on the Open Sound | System project, and largely revisits the platform mechanisms used on Linux. We are excited to report on a real break-through towards using Genode as our day-to-day OS. The just released version 12.11 of the Genode OS Framework bears the fruit of the extensive effort to enable the execution of the entire build system within the genuine Genode environment. On the course of this work, we improved the whole software stack ranging from the underlying kernels, over the framework infrastructure, third-party libraries, up to the actual tool-chain utilities. In the process, the official Genode tool chain has been updated to GCC 4.7.2. In addition to the primary topic of self-hosting Genode, the release largely revisits and improves the existing base platforms. The Linux platform support has been almost reinvented to accommodate the use of the framework as an attractive middleware solution on Linux. Our custom kernel platform for ARM hardware gained new SoC support for Freescale i.MX and Texas Instruments OMAP4. The NOVA, Fiasco.OC, and L4ka::Pistachio kernels have been updated and improved. With the addition of the new device driver environment for the Open Sound System, Genode users on the x86 platform have a new option for driving popular sound hardware. For users of the ARM-based OMAP4 platform, a new GPIO driver clears the way towards building more sophisticated system scenarios. To learn more details and background information about the current release, please continue with reading the [https:/documentation/release-notes/12.11 - release notes of version 12.11...] How Genode came to the Pandaboard | 2012-11-23 ############################################## | In the just published experience report, the Genode developers | provide insights into the process of porting the framework to | a new hardware platform, namely the popular Pandaboard. The new article [https:/documentation/articles/pandaboard - "How Genode came to the Pandaboard"] describes the steps to bring various peripherals such as HDMI output, networking, and SD-cards to live. Additionally, the report takes the reader along the long-winding road of performance optimizations. For those who are eager to try out running Genode on the Pandaboard, the article presents a example scenario that may serve as a good starting point. Learn more about [https:/documentation/articles/pandaboard - how Genode came to the Pandaboard...] Genode OS Framework release 12.08 | 2012-08-23 ############################################## | Version 12.08 introduces a way to execute the framework on bare ARM | hardware without the need for a separate kernel, adds comprehensive | device-driver support for the OMAP4 SoC, and revives NOVA as base platform. Succeeding the feature-rich version 12.05 released in May, Genode 12.08 focuses on enhancing the framework's platform support. With regard to the framework's supported kernels, we are happy to announce a new base platform called base-hw and the largely reworked support for the NOVA hypervisor. The new base-hw platform enables the execution of Genode on bare ARM hardware without the need for a separate kernel. Using this platform, the kernel's functionality is integrated with Genode's core into one program, leading to a significant reduction of software complexity at the root of the process tree. Among the existing base platforms, the NOVA hypervisor has received plenty of love. Motivated by NOVA's recent move to GitHub, we largely reworked the support for this base platform, enabling x86_64, adding object integrity protection, facilitating the use of process-local names only, and changing the way of how kernel resources are allocated. These changes combined promote NOVA to a first-class citizen among the supported kernels. The second string of development contained in the current release is the addition of comprehensive device drivers for the OMAP4 SoC. The new drivers cover HDMI output, SD-card access, USB HID, and networking. With the new device drivers in place, Genode can be leveraged on low-cost ARM platforms such as the popular Pandaboard. Besides low-level platform improvements, the current release comes with new functionality in the form of custom components and ported 3rd-party software. Among the additions are a FFAT-based file system service, the principal ability for on-target debugging, and a way to host the genode.org website on Genode. These and many more improvements are described in detail in the [https:/documentation/release-notes/12.08 - release notes of version 12.08...] NOVA Hypervisor supported on 64-bit x86 machines | 2012-07-27 ############################################################# | NOVA combines microkernel principles with capability-based security and | virtualization technology. The updated version complements the existing | x86_32 support with a new variant for x86_64. NOVA is a so-called microhypervisor for the x86 architecture. It combines the principles of microkernels with capability-based security and hardware-assisted virtualization. Genode supports NOVA as base platform since 2010. But because we used NOVA solely for sporadic research activities and NOVA was lacking a regular release schedule, Genode's platform support received only little attention. This has changed now. NOVA's main developer Udo Steinberg moved from TU Dresden to Intel Labs where he leads the development of NOVA as an Open-Source project. In fact, the code is now being hosted at GitHub. [https://github.com/IntelLabs/NOVA - NOVA on GitHub..] This ignited our renewed interest in promoting this platform to a first-level citizen of our framework. The first significant improvement is the recently added 64-bit support of NOVA. We enabled Genode to work with both variants of the kernel - 32 and 64 bit. We congratulate the NOVA developers to this new model of development and open collaboration and look forward to work closely together! Interview in Revista Espírito Livre magazine | 2012-06-20 ######################################################### | Issue 36 of the Brazilian Revista Espírito Livre magazine features a | comprehensive interview with Norman Feske. _(update: english version)_ The Brazilian Revista Espírito Livre is a magazine dedicated to Free and Open-Source software. With current issue 36, the Portuguese language magazine explores controversial questions about Internet freedom, privacy, neutrality among others. Genode seemingly represents a possible technical answer to some of these questions. In the comprehensive interview starting at page 35, co-founder of Genode Norman Feske talks about the background and motivation behind the project, describes the current structure of the community, and outlines his vision of the next generation of operating systems. [https://www.revista.espiritolivre.org/lancada-edicao-n-36-da-revista-espirito-livre - Issue 36 of the Revista Espírito Livre...] [https:/about/interview_rel36 - English version of the interview...] Genode OS Framework release 12.05 | 2012-05-30 ############################################## | The highlights of version 12.05 are our new USB stack, added media replay | capabilities, new support for dynamic system re-configuration, | and the ability to run the GNU tool chain on Genode. The just released version 12.05 is another corner stone for our plan to shape Genode into a general-purpose OS for the everyday use by its developers. It introduces numerious features that are crucial for this goal, in particular the groundwork for the use of file systems, the ability to execute the GNU tool chain directly on a Genode system, and a way to flexibly adapt the behaviour of operating-system components at runtime. In addition to working on the functionality outlined above, several of the framework's base platforms have received close attention. We profoundly revisited the platform-specific code for the Fiasco.OC kernel to fully leverage the kernel's capability concept. To facilitate the use of Genode as component framework on Linux, we extended the possibilities to use Linux-specific mechanisms, in particular chroot, in a way that is easy to use and coherent with the framework's architecture. For the full story behind all the new features and improvements, please refer to the [https:/documentation/release-notes/12.05 - release notes of version 12.05...] Genode participation at GSoC 2012 | 2012-04-25 ############################################## | Tobias Börtitz steps up to the challenge of combining the HelenOS kernel | with the Genode userland. Google has announced the list of scholarships accepted for this year's Google Summer of Code program. Thanks to HelenOS being an accepted mentoring organization, we are happy to announce the project of Tobias Börtitz, who will bring the worlds of HelenOS and Genode closer together: :[http://trac.helenos.org/ticket/419 - HelenOS as a Genode platform]: Genode Labs will support Tobias on his quest. His mentor will be long-time Genode developer Stefan Kalkowski. We are looking forward to working together on this intriguing topic! New dynamic run-time configuration support | 2012-04-11 ####################################################### | A new mechanism for re-configuring subsystems at run-time paves the way | to sophisticated general-purpose usage scenarios. Genode's approach to system configuration facilitates a unified way for supplying parameters to individual components as well as to entire subsystems. Thanks to the recursive nature of Genode, complex system-integration problems can be segregated into multiple problems of low complexity whereas each partial problem retains to be individually testable. Thereby, this solution greatly mitigates the manual labour of system integration even for highly complex scenarios. However, until now, the mechanism was limited to supplying configuration parameters at the creation time of components. Once a component is running, it was expected to adhere to a fixed predefined policy. With Genode's move towards general-purpose computing, many use cases are popping up where this limitation becomes a hindrance, for example the dynamic changing of screen resolutions, mixer settings, user-input calibration, and GUI policies. To accommodate such use cases, we have extended Genode's configuration concept with support for re-configuring components at runtime. The new feature has landed in the master branch just now: :[https://github.com/genodelabs/genode/commit/9a00ad7ae3ac8e4fd4867555db7671df34aac882 - Commit introducing dynamic re-configuration]: In addition to alleviating the problems mentioned above, the new mechanism enables many new opportunities to use Genode's slave pattern in creative ways. To illustrate how this is supposed to work, the commit contains examples for dynamically generating configuration data by a separate service as well as by the master of a slave component. GSoC 2012 application rejected | 2012-03-17 ########################################### | Unfortunately, Genode Labs was not accepted as mentoring | organization for this year's Google Summer of Code program. We just received the following notification from Google: :
: Thank you for submitting "Genode Labs" organization application to : Google Summer of Code 2012. Unfortunately, we were unable to accept : your organization's application at this time. We received many more : applications for the program than we are able to accommodate, and : we would encourage you to reapply for future instances of the program. : : Best regards, : : Google Open Source Programs :Google Summer of Code 2012 | 2012-03-08 ####################################### | Genode Labs applies as mentoring organization at the Google | Summer of Code 2012 program. If you are a student interested in working on a Genode-related topic during the summer, the application of our project to this year's Google Summer of Code (GSoC) program may provide you with the perfect opportunity. If accepted, you will be able to work on one of a wide range of intriguing topics, get hands-on experience with advanced OS technology, and learn from the methodologies of long-term systems architects and developers mentoring your work. Learn more about Genode's aspired participation in GSoC 2012 at our dedicated [https:/community/gsoc_2012 - Google Summer of Code 2012 website...] Genode OS Framework release 12.02 | 2012-02-28 ############################################## | Version 12.02 comes with a new API for MMIO access, a new ACPI driver, | fork support for the Noux runtime, Qt version 4.7.4, and special support | for using Genode as application framework on Linux. We took the current release cycle as opportunity to carry out our plan to open up our development process. Because carrying out such a fundamental change of our work flows and tools bears many risks, we were curious about the outcome of this undertaking. We can happily report that the transition went actually better than expected. Genode 12.02 is the first version conducted under a completely open development model. The new version contains the first steps towards the goal of using Genode as general-purpose OS for the daily use by its developers. The Noux runtime environment has been enhanced with support for the fork system call, which enables us to run the bash shell and coreutils natively on various microkernels. A new ACPI driver paves the ground for using the whole feature set of Fiasco.OC and NOVA on recent x86-based hardware platforms. Furthermore, you can find the first bits of a new device-driver manager. The framework's base API has been enhanced to foster code reuse and robustness. For example, we introduced a new API for accessing memory-mapped I/O resources, which facilitates the use of the C++ type system to simplify device drivers. Another example is the added API support for the common pattern of reusing existing components as sandboxed libraries. These and many more changes are described in full detail in the [https:/documentation/release-notes/12.02 - release notes of version 12.02...] Slides of our talks at FOSDEM 2012 | 2012-02-14 ############################################### | The slides for both Genode-related talks at FOSDEM 2012 are available. At this year's FOSDEM, the Genode project was present with two talks and the participation in a panel discussion at the microkernel developer room. Norman Feske held an introductory talk, presenting Genode's architecture and demonstrating several use case live: :[https://genode-labs.com/publications/nfeske-genode-fosdem-2012-02.pdf - Introducing Genode]: Stefan Kalkowski presented his experience with supporting many different kernels as base platforms of Genode: :[https://genode-labs.com/publications/skalkowski-diversity-fosdem-2012-02.pdf - The agony of choice - the diversity of microkernels in Genode]: The abstracts of both talks are available at the updated [https:/about/publications - publications section]. Source code moved to GitHub | 2012-01-17 ######################################## | GitHub has become the central place for Genode's mainline development. Moving Genode's code base to the new public GitHub repository represents the final step on our agenda to open up our development process. From now on, the 'genodelabs/genode' repository is where the current development happens: :[https://github.com/genodelabs - Genode Repository at GitHub]: To follow the development of the master branch, you may like to subscribe to the corresponding [https://github.com/genodelabs/genode/commits/master.atom - Atom Feed]. In addition to having moved the code over to the new repository, our documentation and website underwent several changes. First, the genode.org website has been migrated away from the original Plone CMS to an entirely static custom-made CMS that fetches its content from the 'genodelabs/genode' repository. Thereby, most of the web-site content has been incorporated into the repository and will be managed through Git. Second, the Wiki is no more. Its content has been moved to the normal documentation section. By using Git for the documentation, the process of contributing to the documentation is streamlined with the way of how code contributions are handled. The steps of this process are described in the updated [https:/community/contributions - how-to-contribute] guide. So far, our experience with using GitHub for hosting the Genode development has been a smooth and overly enjoyable ride. We hope you will appreciate the greatly liberated development process as much as we do. Genode at FOSDEM | 2012-01-04 ############################# | Meet us at FOSDEM 2012, to be held on 4-5 February in Brussels. FOSDEM is one of the world's largest events of the Free-Software and Open-Source-Community. :[https://fosdem.org/2012 - FOSDEM 2012, 4-5 February, Brussels, Belgium]: This year, it will feature a dev room specifically dedicated to multi-server and microkernel-based operating systems. The list of participating projects include HelenOS, MINIX, GNU Hurd, and Genode. The dev room will host talks, discussion sessions, and demonstrations. Among the talks, there will be an introduction of the Genode OS Framework presented by Norman Feske: :Abstract: _Today's operating systems try to find a balance between seemingly_ _conflicting goals. Ease of use is traded against security, resource_ _utilization is traded against resource accountability, and system_ _complexity is traded against scalability. For example, SELinux is ill_ _famed as hard to use and consequently remains widely unused. As another_ _example, isolation kernels minimize the complexity of critical system_ _software but at the cost of limiting these solutions to static applications._ _The Genode OS architecture shows how these apparently inherent conflicts_ _can be solved by operating-system design. By combining a recursive_ _system structure with capability-based security, mandatory access_ _control becomes easy to deploy. At the same time, the trusted computing_ _base can be minimized for each application individually such that the_ _attack surface for security-critical system functions gets reduced by_ _orders of magnitude compared to existing approaches. Furthermore, a_ _concept for trading physical resources among processes allows for_ _dynamic workloads while maintaining quality of service. That is not just_ _theory - the system is ready for demonstration and its developers are_ _planning to use it as development environment by the end of 2012._ _After a brief introduction of where Genode comes from, the main part of_ _the talk will be focused on the OS architecture and give a glimpse at_ _the implementation via live demonstrations. Finally, the talk will_ _briefly discuss the planned steps towards using Genode as_ _general-purpose OS._ For everyone interested in operating systems in general and microkernel technology in particular, this year's FOSDEM is a great opportunity to get in touch. We are looking forward to meeting you in Brussels! Road Map 2012 | 2012-01-02 ########################## | The road map for 2012 envisions the use of Genode as everyday development | platform. The overall theme for Genode in 2012 will be the practical use of our OS technology for carrying out regular development work. We see this as the best way to proof the maturity of the framework. Furthermore, by eating our own dog food, we generate a strong incentive for ourself to address topics that would otherwise be deferred. For assembling the road map, we introspected ourselves and identified a list of functionalities that we could not live without, ranging from a Unix-like command-line interface, over the support for specific PC hardware, to fancy features such as a tiled window manager. We plan to publish four releases at our quarterly release cycle. So the list of desired functionalities are spread throughout those releases. However, each release will have a different emphasis. Version 12.02 will be geared towards the usage scenarios that we are going to present at our next Live CD scheduled for March. For version 12.05 we are planning a major rework of our arsenal of Linux-based device drivers. The release 12.08 will be the tipping point for making the initial switch to Genode by including Intel wireless drivers and a tiled window manager. Towards the end of the year, we will take the opportunity of version 12.11 to optimize the support for our beloved Lenovo Thinkpads and bring additional tools such as emacs to the table. [https://genode.org/about/road-map - Review our road-map for more details...] New issue tracker at Github | 2011-12-20 ######################################## | To promote open development, the new issue tracker replaces both the public | tracker at Sourceforge and the tracker formerly internal to Genode Labs. As promised earlier, Genode has got a new issue tracker at Github: :[https://github.com/genodelabs/genode/issues]: Please use this tracker to report and discuss Genode-related issues from now on. The old public tracker at Sourceforge is still there but all issues have been either closed or migrated to Github. Steps towards an open development process | 2011-12-05 ###################################################### | Genode is going to embrace an open and transparent development process. Posted by Norman Feske at the Genode mailing list: Over the past four years, the Genode OS Framework has seen rapid progress. Skimming over the release notes of the past releases makes me very proud. It is clear that the project's development is going stronger than ever. However, at the same time, I recognise that progress on a technical level is only one part of a successful Open-Source project. A certainly even more important part is the participation of a diverse community. This is where our project is vastly underdeveloped. By continuing the development at status quo, Genode will continue to steadily improve but it will not be able to capture a significant position in the operating-systems world. Instead, it will possibly remain a curiosity. Therefore, we Genode developers regard the transition of our work to an open and transparent development process as the next big challenge we want to tackle. Review of the situation ======================= Even though Genode is an Open-Source project, its development has been pursued largely behind the closed doors of our company Genode Labs. The planning of the road map, most technical discussions, issue tracking, and revision management are used to be done within the company. There had been two reasons for this policy namely the preservation of exclusivity and the efficiency of coordination. Regarding the first reason, when we started our business, we desired to preserve a certain degree of competitive advantage to ourselves by keeping some information "protected" from the public eye. For example, revealing the detailed history of the over 5000 source-code revisions of the project would enable any outsider or competitor to deeply analyze the way of how our company works. These concerns had been acknowledged by other startup companies with statements in the line of "Open-Source has hurt our business". The second reason is the way of how humans intuitively work together in a non-distributed environment such as a our small company. Instead of discussing technical matters on a mailing list, it appears to be much easier and presumably more efficient to engage in face-to-face conversations. The writeup of our releases notes at regular intervals served us as an instrument to recapture the rationale behind our discussions and document it. This worked exceedingly well. In comparison, discussing every detail on a mailing list seems to be inconvenient. Why do we desire a change? ========================== The answer to this question can be put quite simply as "to make the project relevant". But it goes deeper than that. First, we see ourself as Free-Software AND Open-Source advocates. I wholeheartedly disagree with statements that suggest that Open Source is incompatible with having a business. For us, the contrary is true. Without Free and Open-Source Software, there would be no Genode Labs. The great wealth of the GNU software stack forms the basis of all the tools we use every day and it plays a significant role for our passion to develop software. Furthermore, Genode would not be of much value without all the great building blocks in the form of existing Open-Source code that we reuse in our context. Hence, it is our personal desire to contribute to the Free and Open-Source software world and to intensify the collaboration with other projects with the same spirit. We still see the preservation of a certain degree of exclusivity as important for our dual-licensing business model. If we made Genode available under the BSD license, there would be not point in pursuing this model. However, hiding the development process from the public is not only poor-spirited but it creates an artificial barrier for people who want to participate. The book "Producing Open Source Software" (https://producingoss.com) by Karl Fogel was an eye opener to us. Regarding the efficiency of collaboration, I have to admit that the statement above about how great the current way works is really not well-founded - simply because we haven't tried the alternative to discuss everything in public, yet. Obviously, we are risking to spoil our presumed efficiency by changing the mode of collaboration. On the other hand, by documenting the process of solving each problem in the form of public mailing-list postings, we give everyone the chance to contribute to and to learn from our findings. The next steps ============== We take the current release cycle as opportunity to execute our plan to open the development process. Our coarse schedule is to migrate our internal issue tracker to the public until mid of December. From this day on, all issues will be tracked publicly. The place for all technical discussions will be the Genode mailing list. Until mid of January, we will prepare a new public source-code tree in the form of a Git repository that we will then use as mainline development tree. As a further change of policy, we plan to include all documentation as found on the website in the mainline repository and remove the Wiki. This way, contributions to the documentation will be handled in the same way as code contributions. I hope that our designated change is in the interest of all of you and I look forward to see how it will impact the further progress of Genode. Best regards Norman Genode OS Framework release 11.11 | 2011-11-29 ############################################## | With version 11.11, we explore a plethora of options of combining Genode with | virtualization techniques. The overall theme of Genode 11.11 is the exploration of various levels of virtualization, ranging from faithful virtualization, over paravirtualized Linux, to custom variants of OS-level and application-level virtualization. The latter approach is particularly related to Genode and provides us with a novel approach to user-level debugging. Each of the experiments were conducted with concrete goals. The goal for enabling faithful virtualization was to integrate the high-performance Vancouver virtual machine monitor (VMM) into Genode. This VMM implementation used to be tied to a NOVA-specific user land. With Genode 11.11, it becomes apparent how this virtualization technology and Genode's component framework can cross-fertilize. Our work on paravirtualized Linux was motivated by the goal to execute Android as a node in Genode's process tree. Based on the L4Android project and L4Linux, our work comprised the implementation of Genode-specific stub drivers for L4Linux. This way, L4Linux can be tightly integrated with Genode interfaces for block devices, framebuffer, input, UART, and network. With Noux, Genode brings along a custom OS-level virtualization approach aiming at the execution of unmodified command-line based GNU software on Genode. The immediate goal for this release was to develop Noux to a level that enables us to run VIM as Genode sub system. This work involved extending the Noux runtime as well as creating a terminal emulator. For the highest abstraction level of virtualization on Genode, we coined the term application-level virtualization. Enabled by the sandboxing inherent to Genode's architecture, we implemented a solution for user-level debugging via the GNU debugger. The solution fits perfectly with the Genode architecture and provides powerful debugging facilities without compromizing the security of the system. To learn more about those and many other improvements, please read on the [https:/documentation/release-notes/11.11 - release notes of version 11.11...] Android on top of Genode | 2011-09-27 ##################################### | With the new support for L4Android, the Android software stack can be used as | Genode sub system. As of today, Google's Android OS is apparently one of the hottest topics in the world of smartphones and tablets. Among the users of Genode, we recognise a general interest in combining the framework with the Android platform. With L4Android there already exists a special variant of the L4Linux kernel that is able execute the Android software stack on top of the Fiasco.OC kernel. Our port of L4Linux to Genode in May has shown that L4Linux works well with Genode. Since L4Android is derived from L4Linux, we were confident that we could adapt L4LAndroid to Genode in a similar way. We are happy to report that this feature has now become available at our subversion repository. With the new support of L4Android on Genode, Android can be used on Genode on the Fiasco.OC kernel on the IA32 architecture. For those of you who are eager to experiment with L4Android on Genode, please find further information at the top-level [https://genode.svn.sourceforge.net/viewvc/genode/trunk/ports-foc/README - README] file of the 'ports-foc' repository and share your results with us at the [https:/community/mailing-lists - Genode mailing list]. Genode OS Framework release 11.08 | 2011-08-17 ############################################## | Version 11.08 introduces a unified workflow for dealing with all microkernels | supported by the framework. This way, application scenarios can be ported | from one kernel to another in an instant. The Genode OS Framework aspires to provide a common ground for creating microkernel-based operating systems, relieving developers from wasting efforts in duplicating other people's work such as implementing basic device drivers, tools, and application runtimes. Because in the microkernel domain, each development poses different requirements, there is no single microkernel that fits all purposes. Instead, there exist a plethora of different kernels, each focused on different use cases. By supporting as many as 8 different kernels at API level, Genode allows users of the framework to develop an application once while preserving the freedom to pick the kernel that fits best with the use case at hand. Still, each kernel uses to come with different tools, configuration mechanisms, and boot concepts. Even though Genode programs can be developed in a kernel-independent way, the deployment of such programs still required profound insights into the peculiarities of the respective kernel. The new version 11.08 of the framework addresses these concerns by providing a unified workflow for all supported kernels. Downloading and using a different kernel has become a matter of a few minutes and requires no prior knowledge about the kernel. In addition to the new tooling support, the current release advances the framework's block-device infrastructure and extends the support for ARM platforms. There are several new drivers for peripheral devices such as AHCI, SD-card, and IDE, a new block-partition service, and libc support for accessing VFAT partitions. The ARM support has been extended to cover both L4Linux (on Fiasco.OC) and Qt4 (ARMv6, ARMv7). Furthermore, the new version is accompanied with a comprehensive documentation update. Read [https:/documentation/release-notes/11.08 - the full story] about the various improvements that come with the version 11.08... Genode OS Framework release 11.05 | 2011-05-26 ############################################## | The Genode version 11.05 advances the Fiasco.OC platform support to the same | level as the other fully-featured base platforms, enables the use of L4Linux | with Genode, and introduces a brand new API for inter-process procedure calls. Fiasco.OC is a modern microkernel developed at the OS Group of the University of Technology Dresden. It is highly regarded for two reasons, its comprehensive support for different CPU architectures and the user-level variant of the Linux kernel called L4Linux. Now, those advantages have become available to the users of Genode. Thereby, new usage scenarios can be realized by combining the L4Linux virtualization solution with Genode's rich set of components such as Qt4, lwIP, and a growing number of device drivers. Our custom kernel implementation for MicroBlaze-based SoCs has undergone a major upgrade to enable the implementation of user-level device drivers. To make this platform easy to explore, the release is accompanied with a reference SoC that is ready-to-use on the Xilinx Spartan3A Starter Kit. The most significant API-related change of the framework is a brand new API for implementing remote procedure calls across process boundaries. The new RPC API takes our experience during last 5 years of Genode development into consideration and alleviates long standing shortcomings of the original inter-process communication API. To pave the way towards the use of Genode for productive use, we have started to explore ways to make standard debugging solutions available to Genode. Our new GDB monitor implementation speaks the GDB protocol over TCP/IP and thereby enables the GNU debugger to inspect a user-level Genode process via a remote connection. Read the complete story about these and many more changes in the [https:/documentation/release-notes/11.05 - release notes of version 11.05...] Exciting challenges ahead | 2011-03-24 ###################################### | Explore more than 30 new Genode-related project proposals at our challenges | wiki page With each new Genode release, the scope of feasible use cases for the framework grows and motivates us to reach out for new ambitious goals. There is a dedicated [https:/community/wiki/Challenges - Wiki page] for collecting those ideas. After having released the version 11.02 of the framework, we took the chance to reiterate the many ideas that popped up recently, ideas ranging from the support of diverse potential base platforms, over creative combinations of Genode with other Open-Source projects, to novel tools and applications. So if you are curious about what kinds of projects we have in mind in the mid term, have fun browsing through the project proposals. If one of these topics catches your interest, we'd be happy about you joining in with the development or discussing those ideas at our [https:/community/mailing-lists - mailing list]. Also, if you have additional ideas, please do not hesitate to tell us more. Discover the Wiki page about our [https:/community/wiki/Challenges - future challenges...] Norman Feske introduces Genode on YouTube | 2011-03-10 ###################################################### | Bas de Lange has published the footage of Norman Feske's talk at the Software | Freedom Day 2010 in Amsterdam In his talk, Norman Feske sheds light on the background behind the company Genode Labs, introduces the Genode OS architecture, and demonstrates the concepts live. The talk was recorded at the [http://www.softwarefreedomday.eu - Software Freedom Day 2010] event in Amsterdam. Thanks to Bas the Lange for publishing the material. : [https://www.youtube.com/watch?v=Z1IMV3FJO7Q - Visit the YouTube page...] Genode OS Framework release 11.02 | 2011-02-24 ############################################## | Version 11.02 of the framework adds support for the Fiasco.OC and NOVA v0.3 | kernels as well as a new custom kernel platform targeted at softcore CPUs. | Furthermore, we introduce the Noux execution environment for using GNU | software natively on Genode. The Genode project takes another leap forward regarding the use of different kernels as base platforms for using the framework. The new supported Fiasco.OC kernel offers a rich feature set that is unmatched by any other open-source microkernel. It works with the x86_32, x86_64, and ARM architectures, features capability-based security, scales to multiple CPUs, and provides special optimizations for running virtualized operating systems on top. Genode can now leverage the advanced features of this kernel, in particular those related to enforcing strict security policies. With NOVA and Fiasco.OC, there have now become two kernels available that are capable of enforcing Genode's security architecture at kernel level. Speaking of NOVA, we are happy to report to have upgraded Genode's NOVA support to version 0.3 of the kernel. This version was released earlier this month and brings many of the features we desired, the most important being the revocation of resources. With the new version, NOVA has now become a base platforms that supports the entire Genode API without compromises. In addition to broadening the support for existing kernels, we have started to reach out into kernel land for running Genode on softcore CPU as found in FPGA-based SoCs. Our custom kernel architecture achieves a further reduction of TCB complexity by consolidating kernel functionality with Genode's user-level core. The current implementation is able to run core and multiple instances of nested init processes on the Xilinx MicroBlaze CPU. The most significant functional addition to the framework is a new execution environment called Noux that enables running unmodified GNU software on top of Genode. Even though in an early stage, Noux is already able to execute GNU coreutils without requiring manual porting work. Read on about further details regarding the new kernel platforms, the vision behind Noux, and many more improvements of the framework in the [https:/documentation/release-notes/11.02 - release notes of version 11.02]. Genode OS walk-through on YouTube | 2010-12-22 ############################################## | Check out our new screencast presenting the Genode Live CD 10.11. For those of you who like to get a glimpse of our recently released Live CD but hesitate to download and boot the ISO image, we have prepared the following screencast with a guided walk-through. Enjoy! : [https://www.youtube.com/watch?v=CJdWOmajo_8 - Visit the YouTube page...] [https:/download/live-cds - Download the real thing...] Genode OS Framework release 10.11 | 2010-11-30 ############################################## | With version 10.11, Genode has become able to run network drivers of the gPXE | project, employ user-level on-demand paging, and use advanced graphics with | the nitpicker GUI server. With the [https:/download/live-cds - recently published Live CD], the Genode project has reached a new stage by integrating advanced device drivers, complex protocol stacks, and real-world applications into one dynamic setup. The new Genode release 10.11 bears fruit of the intensive effort that went into this important milestone. There are improvements and functional additions all over the code base. To highlight a few, we enhanced the Nitpicker GUI server to support alpha blending, added an execution environment for running network drivers of the gPXE project, completed the implementation of Genode's concept for user-level page-fault handling, and further advanced the integration of the paravirtualized Linux kernel with Genode's native interfaces for networking, block-device access, graphics, and audio. Furthermore, the release comes with a number of new components such as a virtual network bridge and a http-based block server, which can be combined with the existing components to open up new use cases of the framework. Please enjoy the [https:/documentation/release-notes/10.11 - full description] of all the improvements that come with version 10.11. Genode Live Demonstration 2010-11 | 2010-11-16 ############################################## | The new Genode Live CD showcases the vast functional progress during the past | year in a selection of five demos ranging from native Qt4/Webkit support to | hardware-accelerated 3D graphics. Since the release of the previous Genode Live CD in September 2009, we focused our development work on supporting native Qt4/Webkit applications, user-level Linux, sound support, Mesa/Gallium3D, block drivers, and a networking stack. Furthermore, we paid special attention to tightly integrate existing software with native Genode features. Two prominent examples are the seamless integration of a virtualized Linux desktop and the support for running complete Genode subsystems as plugin in the Arora web browser. In response to several requests to complement our regular source-code releases with a new bootable live CD, we have now published a new version. You can now test drive the current version of Genode on your PC (or virtual machine) to get an idea about where the development of the framework is heading. [https:/download/live-cds - Download the new live CD] featuring five setups showcasing our efforts of the past year. Genode OS Framework release 10.08 | 2010-08-11 ############################################## | With Gallium3D, MadWifi, and a new block-driver infrastructure, the release | 10.08 takes Genode's device-driver support to the next level. Wireless networking and hardware-accelerated graphics are commonly regarded as two of the most sophisticated domains when it comes to device-driver support in operating systems. We are proud to have taken the challenge to support these device classes in the Genode OS Framework. The just released version 10.08 comes with support for the Gallium3D software stack alongside the Intel graphics execution manager, which enables Genode applications to perform hardware-accelerated 3D graphics on Intel GMA platforms. Our port of the MadWifi wireless stack pushes the limits of what can be done with our Linux device-driver environment. Furthermore, we extended our device-driver-related activities to block devices, resulting in a new block-device interface and an ATAPI driver accompanied with an ISO 9660 file system. Apart from device drivers, there are numerous other improvements such as the upgrade to Qt4.6.3 and support for dynamic linking on platforms using ARM EABI. Please find more in-depth information in the detailed [https:/documentation/release-notes/10.08 - release notes of version 10.08...]. Genode OS Framework release 10.05 | 2010-05-27 ############################################## | The new version 10.05 adds support for mandatory access-control policies, | introduces audio playback, and improves the integration of the paravirtualized | OKLinux kernel with the framework. With the current release, we focused on functionality to broaden the application area of the framework. The infrastructure of the framework has advanced to a point that allows running a steadily growing number of typical general-purpose applications directly on Genode. This is best illustrated by the fully functional Arora web browser running as a native Genode process. Still, there are a large number of usage scenarios that rely on Linux applications. For this reason, we further improved the integration of the paravirtualized OKLinux kernel with Genode. The new version adds support for seamlessly integrating the X Window System running on OKLinux with the native nitpicker GUI. For Genode developers, there is a new build system, which significantly improves the build performance on multi-processor systems. Read on about these and many more improvements detailed in the [https:/documentation/release-notes/10.05 - release notes of version 10.05...] Adaptation to Codezero kernel v0.3 | 2010-04-06 ############################################### | The just released version 0.3 of the Codezero kernel adds support for the | latest ARMv7 CPUs. The Genode OS Framework is now ready to be used with this | new kernel version. Since version 10.02, the Genode OS Framework officially supports the version 0.2 of the [http://l4dev.org - Codezero microkernel] developed by [http://b-labs.com - B-Labs]. The road map of this kernel promised support for the latest ARM CPU cores. With the just released version 0.3, which added support for ARMv7 CPU cores, the project lives up to this promise. In addition to the extended CPU support, the new release adds important functionality regarding device I/O, which prompted us to adapt Genode to the new version. The adaptation to Codezero version 0.3 is now available at our Subversion repository. To facilitate the use of Genode with Codezero, we created a dedicated [https:/community/wiki/GenodeOnCodezero - Wiki page], which provides up-to-date documentation about building and using Genode on this kernel. Thanks to the Codezero developers for being extremely responsive to our questions and feature requests! Learn more about [https:/community/wiki/GenodeOnCodezero - using Genode with Codezero...] Genode OS Framework release 10.02 | 2010-02-24 ############################################## | Among a variety of platform-related improvements, the release 10.02 adds | support for the NOVA and Codezero kernels and introduces a new concept for | managing real-time priorities. Succeeding the previous feature-rich release, the Genode project took the chance to focus on extending the base-platform support of the framework. We are happy to report that we were able to complement the already broad range of supported kernels by two new modern microkernels namely NOVA and Codezero, both first released in 2009. Thereby, Genode provides a unified user-level infrastructure that runs directly on those kernels as well as on Linux (32 bit and 64 bit), OKL4v2 (x86 and ARMv4), L4/Fiasco, and L4ka::Pistachio. For developers creating microkernel-based applications, the framework hides the intricacies of the respective kernel. But it also strives to make the unique capabilities of each base platform accessible to the user. For example, with the new release, we made the real-time scheduling of OKL4 and L4ka::Pistachio available to Genode applications. Read on the full story about our experiences with the new kernels and the many [https:/documentation/release-notes/10.02 - improvements of the release 10.02...] [https:/download/latest-release - Download the latest release...] Road map 2010 | 2010-01-04 ########################## | We have updated our road map with the planning of the year 2010. With the start of the new year, its time to pause for a moment, looking back the progress we made during 2009, and planning the next steps. The overall theme of 2009 was the creation of fundamental base functionality to make the framework usable for practical applications. We are proud when revisiting the long list of achievements introduced with the four releases of the past year: Support for the OKL4 and l4ka::Pistachio kernels, Linux device-driver environment, networking, USB input and storage, dynamic linking, Qt4 including Webkit, and support for a paravirtualized Linux kernel. With this strong foundation in place, its time to raise the bar again. [https:/about/road-map - Please read on about our updated road map for 2010...] Genode OS Framework release 9.11 | 2009-11-25 ############################################# | With release 9.11 Genode gets Webkit, USB storage, TCP/IP stack, support for | ARM, OKLinux and more ... For the project, the current release is a major leap towards the goal of Genode to become a general-purpose OS platform. The addition of OKLinux - a paravirtualized Linux kernel - to the distribution makes it possible to run security-sensitive native Genode applications side by side with unmodified Linux binaries. This particular version of Linux has no direct hardware access but rather uses native Genode services as virtual hardware devices. With respect to available device classes, we extended Genode's support to cover USB storage and networking drivers. Moreover, the porting of the Light-weight IP stack and Q4/Webkit now enables developers to create web applications on top of Genode. Beside the new functionality, Genode's platform scope was broadened by initial support of the ARM architecture. Read on about these and all additional changes in more detail in the [https:/documentation/release-notes/9.11 - release notes for Genode 9.11...]. Genode Live Demonstration 2009-09 | 2009-09-02 ############################################## | The latest release of the ready-to-boot Live CD image is available. The Live CD features the graphical demonstration of the Genode architecture, known from the last Live CD. But this time it doesn't run on L4/Fiasco only. It also can be started on top of the L4 microkernels OKL4 and Pistachio. Moreover, it features QT4 application support and a para-virtualized Linux version running on top of Genode. The Live CD runs directly on PC hardware and has been tested on Qemu/KVM and VirtualBox. _Edit: We have further improved the performance of the L4/Fiasco and_ _L4ka::Pistachio demos, and refined the presentation of the Qt4 demo._ [https:/download/live-cds - Download the updated Live-CD image...] Genode OS Framework release 9.08 | 2009-08-19 ############################################# | The release 9.08 advances the portability of the operating-system framework | to a new level. We have released the version 9.08 of the Genode OS Framework. The general theme of this release has been refinement. We are particularly happy for having resolved long standing concerns about our locking and signalling implementations. The actual focus of our work during the last three months was the unification of all supported base platforms resulting in many generalizations of former platform-specific code. We managed to bring the code for the Linux version very much in line with the supported L4 platforms, reducing platform-specific source-code complexity and maintenance costs. Feature-wise, the most important news are the port of the dynamic linker from FreeBSD, the added support for thread-local storage, a much improved timer service, and core extensions for running Linux on the OKL4 version of Genode. Read on about all the changes in the [https:/documentation/release-notes/9.08 - release notes for Genode 9.08...] Document about Genode's native Qt4 port available | 2009-07-06 ############################################################## | The document "Portierung von Qt auf Genode" (german) describes the | undertaking of making the Qt4 framework natively available on Genode. Among | many technical insights, it provides an overview about the integration with | Genode's GUI, and explains how Qt4's low-level interfaces are mapped to | native Genode functionality. Qt4 is a popular and versatile C++ framework for developing platform-independent GUI applications. In addition to GUI-related functionality, Qt4 covers a comprehensive library of data structures and platform abstractions. It is widely used for both commercial and open-source applications, most prominently, it serves as the foundation of the KDE project. Since the release 9.05, the official distribution of Genode supports Qt4 as a regular feature. The document "Portierung von Qt auf Genode" _(german)_ describes the challenging endeavor of porting this high-complexity C++ framework to Genode. Major problems to overcome had been the missing C library (at the time when the project started), the integration of the Qt4 project files with Genode's build system, the adaption of Qt4 to the basic primitives provided by Genode, and the integration of Qt4 with Genode's GUI. In addition to the mentioned technical insights, the document evaluates the achieved solution with respect to compatibility and maintainability. [https://www.genode-labs.com/publications/qt4-on-genode-de-2009.pdf - Download the PDF...] Genode OS Framework release 9.05 | 2009-05-27 ############################################# | With the release 9.05, we introduce the first fragments of USB support, | update Qt to version 4.5.1, and add the OKL4 kernel as supported base | platform. The new release continues the general theme to enhance our potential user base by broadening the base-platform support and, at the same time, extending the functionality of the framework. We have now added the OKL4 kernel to the supported base platforms. OKL4 is a commercial-grade kernel developed by [http://www.ok-labs.com - Open Kernel Labs] and primarily targeted at embedded systems. Along with this integration work, we were able to further advance the portability of Genode by generalizing much of former platform-dependent code. On the feature side, we introduced the first parts of a USB stack, making Linux' USB host-controller drivers and a human-interface device driver available on Genode. As outlined in the release notes, there is also good progress on executing Linux as a sub system of Genode. Furthermore, we have now seamlessly integrated the support for the Qt application framework into the Genode source tree and bumped the version to 4.5.1. Read on about the new features described int the [https:/documentation/release-notes/9.05 - release notes...] [https:/download/latest-release - Download the release 9.05...] [https:/about/road-map - See our updated road map...] Bringing Genode to the OKL4 kernel | 2009-05-06 ############################################### | We have enhanced the range of supported kernel platforms by bringing Genode | to the OKL4 kernel developed by Open Kernel Labs. With the port of Genode to the OKL4 kernel, we have taken another step to reach a broader user base of the framework. In contrast to the already supported microkernels L4ka::Pistachio and L4/Fiasco, the OKL4 kernel developed by [http://ok-labs.com - Open Kernel Labs] is largely deployed in commercial settings. Even though being a member of the L4 family of kernels, OKL4 has a much modernized kernel API that fits quite well with the Genode architecture. For example, OKL4 does not rely on an in-kernel mapping database, frees the IPC operation from wall-clock timeouts, supports asynchronous notifications, and provides kernel support for user-level synchronization. In the process of porting Genode to OKL4 version 2.1, we took the chance of generalizing a lot of former L4-specific code such that the remaining platform-specific code is now in the order of less than 2,000 lines of code for each kernel platform. To ease future ports of the frameworks to other kernels, we have documented our work in detail. If you are interested in learning more about the OKL4 kernel from our perspective, or if you like to dive right into the inner parts of the Genode OS Framework, read on about [https:/documentation/articles/genode-on-okl4 - Bringing the Genode OS Framework to the OKL4 kernel...] The OKL4 version is available at our subversion repository and will be included in the upcoming release 9.05. For further information about building and using Genode on OKL4, please refer to the new [https:/community/wiki/GenodeOnOKL4 - Genode on OKL4 Wiki page...] Genode on 64-bit Linux kernels | 2009-04-17 ########################################### | Genode can now use both 32-bit as well as 64-bit versions of the Linux kernel | as base platform. From the ground up, Genode was co-developed supporting Linux and L4 as base platforms but the both versions were restricted to the 32-bit x86 architecture. We have now expanded the Linux support to 64 bit. Because most of the adaptions of Genode to 64 bit took place in generic code, we are now well prepared to support future 64-bit versions of L4 kernels as well. The patch for adding 64 bit support supplied by Christian Prochaska is now included in the current version of the Genode subversion repository. [https:/download/subversion-repository - Access the Genode subversion repository...] Christian Prochaska joins our project as regular developer | 2009-04-08 ####################################################################### | The developer of the Qt4 port for Genode joins Genode Labs to bring forward | his Genode-related projects. As the original developer of the Qt4 port for Genode, Christian Proachaska has gained long-time experience with running complex software on top of Genode. In the future, he will leverage his skills to further advance his Qt4-related work. Furthermore, he strives to improve the framework towards general-purpose computing. Currently, he is working on adding 64-bit support to Genode. Genode OS Framework release 9.02 | 2009-02-26 ############################################# | The version 9.02 of the Genode OS Framework introduces support for | L4ka::Pistachio as base platform, a port of the Qt4 application framework, | and networking. Whereas the focus of the previous release 8.11 was the refinement of Genode's base API and the creation of the infrastructure needed to build real-world applications, the new release 9.02 is focused on functional enhancements in two directions. The first direction is broadening the number of possible base platforms for the framework. At present, most microkernels bring along a custom user land, which is closely tied to the particular kernel. Our vision is to establish Genode as a common ground for developing applications, protocol stacks, and device drivers in such a way that the software becomes easily portable among different kernels. This release makes Genode available on the L4ka::Pistachio kernel. Hence, software developed with the Genode API can now run unmodified on Linux/x86, L4/Fiasco, and L4ka::Pistachio. In the second direction, we are steadily advancing the functionality available on top of Genode. With this release, we introduce a basic networking facility and support for native Qt4 applications as major new features. Thanks to Genode's portability, these features become automatically available on all supported base platforms. Read on about the new features described in the [https:/documentation/release-notes/9.02 - release notes...] [https:/download/latest-release - Download the Genode release 9.02...] Port of libSDL to Genode | 2009-01-23 ##################################### | As announced on the Genode mailing list, the popular Simple Directmedia | Library is being ported to Genode. A first version of the port and a demo | application are already available. The [http://www.libsdl.org - Simple Directmedia Layer library] (libSDL) is a very popular cross-platform media library that provides hardware abstractions for graphics, input devices, and sound. It is often used as back end for games, emulators, and media players. Also the Linux version of Genode relies on the hardware abstractions provided by libSDL. As [https://sourceforge.net/mailarchive/message.php?msg_id=21406424 - announced on the Genode mailing list], libSDL has been ported to Genode. At the current stage, the port supports the video subsystem and the input handling for mouse and keyboard. With libSDL now becoming available for Genode, it becomes much easier to make the wealth of libSDL-based applications available on our platform. [https://sourceforge.net/mailarchive/message.php?msg_id=21406424 - Read the announcement...] Genode on the L4ka::Pistachio kernel | 2008-12-18 ################################################# | The new L4ka::Pistachio version of the Genode OS Framework makes the unique | features, performance, and stability of the L4::Pistachio kernel available | for Genode's software stack. L4ka::Pistachio is the reference implementation of the L4 API version x.2 (also referred to as version 4). With the port of Genode to L4ka::Pistachio conducted by Julian Stecklina, this kernel has become available as a base platform for Genode. The choice of leveraging the special characteristics of L4ka::Pistachio, the Linux kernel, or L4/Fiasco has become just a matter of recompilation. This way, software written against the Genode API can benefit from the long-year research and development invested into L4ka::Pistachio by the L4ka group at the University of Karlsruhe and the DiSy group at the University of New South Wales. We have made the L4ka::Pistachio version of Genode available at our public subversion repository. It will become a regular part of Genode with the upcoming release as scheduled for February. The instructions for building and using Genode with the L4ka::Pistachio kernel are provided at our Genode-on-L4ka::Pistachio wiki page. [https:/community/wiki/GenodeOnL4kaPistachio">Learn more about Genode on L4ka::Pistachio...] Public bug tracker available | 2008-12-12 ######################################### | Because we received several requests for a public bug tracker, we have now | enabled the public tracker of our Sourceforge project. With the new bug tracker, we want to simplify the sharing and solving of issues related to Genode in a coordinated fashion. If you discover things you like to see improved in our code or documentation, please do not hesitate to share your experiences and ideas by posting a bug. [https:/community - Community resources...] Genode OS Framework release 8.11 | 2008-11-21 ############################################# | We are pleased to announce the release 8.11 of the Genode OS Framework | introducing a new device-driver API, a C runtime, support for asynchronous | notifications, and many improvements of the base API. With the new release 8.11, we are aiming at enabling Genode for real-world applications that require custom device drivers and the reuse of existing code. Among the major improvements are a new device driver API that eases the reuse of existing device drivers and a C runtime that facilitates the reuse of a wealth of existing C library code on Genode. Furthermore, we extended the base API by a number of exciting feature such as support for asynchronous notifications, capability typification, and managed dataspaces. Learn more about all the new features and changes described in our comprehensive [https:/documentation/release-notes/8.11 - release notes...] [https:/download/latest-release - Download the release 8.11 of the Genode OS Framework...] Ready-to-boot Live-CD image available | 2008-10-21 ################################################## | As a teaser for the upcoming release 8.11, we have compiled a Live-CD image | showing off the current state of the Genode OS Framework. The Live CD features a fully graphical demonstration that presents the fundamental concepts of the Genode architecture in an interactive fashion. It runs directly on PC hardware and has been tested on Qemu and VirtualBox. [https:/download/live-cds - Download the Live-CD image...] New and exciting challenges ahead | 2008-09-19 ############################################## | To foster the involvement of developers interested in working on Genode, we | have enhanced the compilation of future challenges in our Wiki by a number of | interesting Genode-related projects to pursue. The Genode architecture inspires a large number of topics for research, experimentation, and development. The [https:/community/wiki/Challenges - challenges section of our Wiki] compiles a number of existing ideas. We have now enhanced this compilation by a number of further avenues that we find interesting to explore. For example, exploring Linux process containers, running Genode on FPGA platforms, dynamic linking support, de-privileging VESA, optimizing locking performance, and the port of libSDL. Maybe some of you find these topics as thrilling as we do? If yes, please feel welcome to pick up the ideas to start experimenting with Genode. The Genode build system thoroughly examined | 2008-08-22 ######################################################## | In his paper "Empirical Comparison of SCons and GNU Make", Ludwig Hähne | pursues the question of which build system to choose for an operating-system | project such as ours. For his study, he took the Genode build system as a | real-world use case. His results are not only valuable for our particular | project but for everyone with an interest in build systems. For the Genode OS Framework, we consider flexibility, usability, reliability, and scalability of the build infrastructure is crucial. When we started project, we created a custom build infrastructure with a particular focus on developer convenience. The effort already paid off for our daily work. The current implementation relies on GNU Make as back end but we are aware that there exist more modern approaches for building software, in particular there is SCons. In his paper, Ludwig Hähne used the Genode build system as a use case to compare SCons and GNU Make. He replicated our build system for the use of SCons as back end and conducted comprehensive experiments. The empirical results presented in the paper reveal a number of interesting issues, for example the limited scalability of the current Genode build system with regard to parallelism, and the memory consumption of SCons when used for large projects. [https://www.genode-labs.com/publications/scons-vs-make-2008.pdf - Download the PDF document...] Genode ported to Syllable Server OS | 2008-08-22 ################################################ | The developers of the Syllable OS project have ported Genode to the | Linux-based server version of Syllable OS. Syllable is a fully fledged free-software operating system that is mainly targeted at desktop computers. Thanks to its long-year steady development, there exists a large base of custom applications. As announced on the [http://development.syllable.org/pages/index.html - website of the Syllable OS project], Genode has been ported to the server version of Syllable OS. Kaj de Vos of the Syllable project also considers the incorporation of Genode into the desktop version of Syllable, which would be a very interesting synergy. Genode OS Framework release 8.08 | 2008-08-06 ############################################# | We released the first official version of the Genode OS Framework. The initial version of the Genode OS Framework is available for download. For naming our releases, we use the Ubuntu version-number scheme, which takes the year as the major number and the month as minor number. Hence, the release is called 8.08. It contains everything needed to execute an interactive graphical demonstration scenario on Linux via libSDL or alternatively via L4/Fiasco on bare PC hardware. [https:/download/latest-release - Download the latest release...] Project website launched | 2008-07-29 ##################################### | The launch of our comprehensive project website genode.org marks the begin of | our effort to turn Genode into a community project. The initial release of the | Genode OS framework is scheduled for the 6th of August. Today, we proudly launched the website of the Genode project [https://genode.org - https://genode.org]. This website is the central resource for people using or developing the Genode OS framework. It covers the latest news about our progress, architectural and technical documentation, a community-maintained wiki, mailing lists, information on accessing the source-code, and much more. We sincerely hope that this website will draw the attention of people who want bring forward the project together with us. We have scheduled the first official release of the Genode OS framework for the 6th August. Until then, we invite you to test-drive the beta-version of the framework as provided at the [https://genode.org/download - download]. Genode Labs founded | 2008-07-17 ################################ | The original authors of the Genode OS Framework start a company dedicated to | promoting and advancing Genode. At 15th of May, the two former PhD students of the TU Dresden Operating Systems group who developed the original vision behind the Genode architecture and who created the present implementation of the Genode OS Framework started their company Genode Labs. Genode Labs is committed to bring forward their novel OS technology as a community project and to facilitate its application to real-world problems.