Site logo
Stories around the Genode Operating System RSS feed
  • Norman Feske avatar

    Let's make -Wconversion our new friend!


    Ten years ago, Christian Helmuth opened a Genode issue with the suggestion to enable warnings about implicit type conversions by default. Now that this issue has almost finished primary school, the time is ripe to attend it. Continue...

  • Johannes Schlatow avatar

    Zynq guide #1 - getting started


    This is the first article of a series about the Zynq-7000 SoC from Xilinx. Though not a particularly new SoC, it is still quite unique as it features an FPGA in conjunction with a Cortex-A9 CPU. This opens a bunch of interesting application scenarios since the FPGA can act as a customisable co-processor or hardware accelerator. In this article, I will guide you through the very basic board bring-up to get a first sign of life from this hardware with Genode. Continue...

  • Norman Feske avatar

    An Attempt to avoid C++ exceptions


    Genode employs C++ exceptions for propagating errors, which is true to the language. However, the use and the mechanics of C++ exceptions comes with its own bag of problems. The upcoming Genode version 21.11 introduces a new error-handling pattern that will hopefully give us relief. Continue...

  • Stefan Kalkowski avatar

    Sculpt OS 21.10 on ARM


    Beside the x86 architecture, the new Sculpt OS 21.10 can also be used on top of the MNT Reform 2 and i.MX 8MQ EVK board. Although those ARMv8-based boards are not yet officially supported, you can give it a first try. Continue...

  • Sebastian Sumpf avatar

    Test driving Sculpt's 3D support


    With Sculpt release 21.10 we revived Genode's Intel GPU multiplexer which we demonstrated at FOSDEM 2018. At the time we supported only the Broadwell platform and after many bugfixes, the enablement of further Intel Graphics Devices (Skylake, Kaby Lake, ...), the update of the Mesa 3D library to version 21.0.0, and many new features, we are happy to announce that 3D acceleration support on Sculpt OS has been dramatically enhanced. Continue...

  • Martin Stein avatar

    Genode's VFS #3: Networking


    Over the past years, the Virtual File System (VFS) has played an ever more important role in Genode-based systems. Its applications cover not only access to conventional file systems but also font servers, network stacks, cryptographic devices, debugging facilities, and more. Yet documentation about the VFS is quite scattered and context-specific. In this article series I'd like to gather simple examples that explain how to use most of the plugins and utilities around Genode's VFS. Continue...

  • Michael Grunditz avatar

    Genode and RISC OS integration.


    This is the story of running two full systems at the same time on different cpu cores. Continue...

  • Norman Feske avatar

    Pine fun - Booting Genode on the Pinephone


    Until now, my exploration of the Allwinner A64 SoC was mainly concerned with the Pine-A64-LTS board, which offers developer conveniences like booting over the network, or easily accessible reset and GPIO pins. Now, it's time to switch gears by moving the development workflow over to the Pinephone. Continue...

  • Martin Stein avatar

    Spunky #6: CPU device driver


    In this article series I illustrate the development of an Ada kernel for Genode named Spunky. The approach is to first successively translate parts from the C++ base-hw kernel and temporarily integrate them with the remaining C++ parts. Once, the whole Kernel made it to Ada, Spunky can be further developed independently to benefit from the characteristics of Ada or even SPARK. This time, I'll talk about the port of the CPU device driver and about the use of the GNAT binder for the Spunky main package. Continue...

  • Norman Feske avatar

    Pine fun - Networking


    This article walks through the challenge of porting a network driver from the Linux kernel to Genode. It thereby exemplifies Genode's device-driver environment approach for the reuse of unmodified Linux kernel code, touches crucial technicalities of the Linux kernel, and provides practical clues. Continue...

  • Josef Söntgen avatar

    Experimental Gpu session for the etnaviv GPU driver


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The third post is about replacing the ad hoc Drm session with an adapted Gpu session. Continue...

  • Stefan Kalkowski avatar

    MNT Reform 2 - Use Sculpt OS on SD-card


    There is a new, updated Sculpt OS version available for the MNT Reform 2. It features a fully functional, and more performant SD-card driver. It enables you to persistently install Sculpt OS and additional depot packages on your MNT Reform 2. Moreover, the new driver support enables you to exchange the SD-card dynamically at runtime. Continue...

  • Johannes Schlatow avatar

    Mobile networking in Sculpt


    Last year, ssumpf added basic LTE modem support to Genode. Since many Sculpt-compatible laptops come with integrated LTE modems already or can be easily upgraded, I started a little side project to equip Sculpt with easy-to-deploy mobile networking support. In this article, I summarise how to reap the fruits of this project. As a side effect, it showcases the varied possibilities of component compositions. Continue...

  • Martin Stein avatar

    Genode's VFS #2: Storage and interconnections


    Over the past years, the Virtual File System (VFS) has played an ever more important role in Genode-based systems. Its applications cover not only access to conventional file systems but also font servers, network stacks, cryptographic devices, debugging facilities, and more. Yet documentation about the VFS is quite scattered and context-specific. In this article series I'd like to gather simple examples that explain how to use most of the plugins and utilities around Genode's VFS. Continue...

  • Josef Söntgen avatar

    Experimental porting of the etnaviv Mesa driver


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The second post is about dealing with the Mesa driver and briefly skims over the process. Continue...

  • Martin Stein avatar

    Spunky #5: IRQ controller driver


    In this article series I illustrate the development of an Ada kernel for Genode named Spunky. The approach is to first successively translate parts from the C++ base-hw kernel and temporarily integrate them with the remaining C++ parts. Once, the whole Kernel made it to Ada, Spunky can be further developed independently to benefit from the characteristics of Ada or even SPARK. This time, I talk about my personal learning curve regarding low-level programing with Ada and the porting of the IRQ controller driver. Continue...

  • Josef Söntgen avatar

    Experimental porting of the etnaviv Linux DRM driver


    In this series of posts I am going to elaborate on porting the etnaviv driver to Genode and what this effort did entail. The first post is about dealing with the Linux DRM driver and briefly skims over the process. Continue...

  • Martin Stein avatar

    Genode's VFS #1: The basics


    Over the past years, the Virtual File System (VFS) has played an ever more important role in Genode-based systems. Its applications cover not only access to conventional file systems but also font servers, network stacks, cryptographic devices, debugging facilities, and more. Yet documentation about the VFS is quite scattered and context-specific. In this article series I'd like to gather simple examples that explain how to use most of the plugins and utilities around Genode's VFS. Continue...

  • Stefan Kalkowski avatar

    Linux device driver ports - Choose compilation units


    In my first blog post of this series, I've described the motivation to break new grounds in porting Linux drivers to Genode. Moreover, you've seen how to re-use the headers and configuration of a pre-built Linux kernel. In the last blog post, we continued our journey with a new helper tool to generate missing Linux kernel function definitions automatically. This time I'll continue with how to choose the absolutely necessary compilation units for a given driver resp. subsystem. Continue...

  • Johannes Schlatow avatar

    Dynamically changing keyboard remapping rules


    When setting up my Sculpt-based work environment, my intent was to run an unmodified Linux installation as VM in Sculpt. Being strongly accustomed to i3wm, I quickly noticed the lack of the Windows key that is used for controlling the i3 window manager but which is intercepted by Sculpt for the same job. A bit reluctant to change my habits and retrain new key combos, I needed a better solution. With advice from Norman, I came to a pretty neat solution that I would like to share with you. Continue...

  • Johannes Schlatow avatar

    Native screenshot component


    Martin had recently expressed to me that a native screenshot component using the Capture session would be really helpful. Moreover, when writing the VNC server article, I also encountered the need to make a screenshot myself. As I already got in touch with the Capture session, I briefly switched contexts to bring the screenshot component into being right away. Continue...

  • Johannes Schlatow avatar

    Remote desktop solution for Sculpt via VNC


    Thanks to alex-ab, we already have a native VNC client available in Sculpt to connect to VMs remotely. How nice would it be to also bring a VNC server to Sculpt and thereby enable remote desktop scenarios? In this article, I want to share my experiences made when developing a VNC server application with Goa and ultimately present a ready-to-use package for Sculpt. Continue...

  • Martin Stein avatar

    Spunky #4: Kernel Timing


    In this article series I illustrate the development of an Ada kernel for Genode named Spunky. The approach is to first successively translate parts from the C++ base-hw kernel and temporarily integrate them with the remaining C++ parts. Once, the whole Kernel made it to Ada, Spunky can be further developed independently to benefit from the characteristics of Ada or even SPARK. This time, I talk about the translation of timeout scheduling and the underlying timer driver. Continue...

  • Stefan Kalkowski avatar

    MNT Reform 2 - Run Sculpt OS


    It has been a while since I started to do the first steps of porting Genode to the MNT Reform 2. Continue...

  • Martin Stein avatar

    A short guide to the Timer Session interface


    In my last article about timing, I presented the Timeout framework - the most preferable solution when you want to do timing in native Genode applications. However, I also pointed out that the Timeout framework isn't always the best solution and promised to explain in detail when and how to fall back to the Timer session in this case. That's what this article is about. Continue...

  • Norman Feske avatar

    Pine fun - Pruning device trees


    We briefly touched the treasure trove called device trees in the previous article. To leverage the wealth of information for the development and porting of Genode device drivers, this article introduces a handy new tool set. Continue...

  • Martin Stein avatar

    Introducing the File Vault


    The File Vault is a graphical user interface that aims for making it easy for everyone to create and manage encrypted file systems in Genode. A beta version of the vault was just published for Sculpt 21.03b in my depot mstein -> Tools -> file vault. Therefore, I'll give a short overview of the program. Continue...

  • Johannes Schlatow avatar

    Do you 🖤 your 💻?


    Once in a while, I come across a website that uses unicode emoji for illustration. Github is one of these that uses such symbols in the sidebar of the notification view. However, if you do not have a font installed that contains the corresponding glyphs, you will only see those beautiful inexpressive boxes ⌷ (or even whitespace). This is the case for the falkon browser packaged for Sculpt. Yet, it is pretty easy to augment it with emoji support. Continue...

  • Norman Feske avatar

    Pine fun - Taking Linux out for a Walk


    In preparation of the porting of drivers from Linux to Genode, we have to gather knowledge about the drivers' natural habitat. This article goes through the steps of building a custom Linux system that is tailored to a driver of our choice. Continue...

  • Martin Stein avatar

    A short guide to the Timeout framework


    Last week, a colleage of mine asked me on how to use the native interface for userland timing in Genode, the Timeout framework. So, I thought it would be worth sharing this knowledge in form of a short article. Continue...

  • Johannes Schlatow avatar

    Troublesome guest additions


    On my journey towards transitioning to Sculpt as a day-to-day OS, I already desribed how to access an existing Linux installation in my previous article. Since I recently struggled with installing the VirtualBox Guest Additions, I want to share my findings with a short follow up article. Continue...

  • Martin Stein avatar

    USB stick passthrough in Sculpt 21.03


    Recently, I wanted to use an USB stick in my Linux VM in Sculpt 21.03 and I couldn't figure out anymore how to do it. I was surprised that I struggled to find information on this topic and so I wrote this short tutorial in order to make it easier for others. Continue...

  • Norman Feske avatar

    Pine fun - One Platform driver to rule them all


    In the previous article we exercised direct-device access from user-level components. In Genode systems beyond such toy scenarios, however, it would be irresponsible to follow the path of allowing arbitrary drivers to access any device willy-nilly. Our call for discipline and rigidity is answered by the (rising drum roll) platform driver. Continue...

  • Johannes Schlatow avatar

    Starting an existing Linux installation from Sculpt


    In the last years, I've had an on-and-off relationship with Genode mostly because other commitments kept me from spending time with the framework. Although I was keen on using Sculpt as a day-to-day OS, I didn't manage to make a smooth transition. Initially, my idea was to use my existing Linux system and install Sculpt in parallel. Ideally, I would be able to start my existing Linux system in Virtualbox on Sculpt. My first efforts were stalled by some EFI boot issues and due to a lack of time this idea slumbered for about two years...until recently. Continue...

  • Norman Feske avatar

    Making the MNT Reform my own


    This is the little embarrassing story of my first customization of the MNT Reform laptop that I received just two weeks ago. Continue...

  • Stefan Kalkowski avatar

    Linux device driver ports - Generate dummy function definitions


    In my last blog post I've described the motivation to break new grounds in porting Linux drivers to Genode. Moreover, you've seen how to re-use the headers and configuration of a pre-built Linux kernel. This time we'll continue by invoking the very first initialization routines. Therefore, a new little helper tool gets introduced to generate missing Linux kernel function definitions automatically. Continue...

  • Norman Feske avatar

    Performance analysis made easy


    Identifying performance bottlenecks of Genode's low-level system components remains a tedious effort. For this reason, it is usually not practiced as a routine during development but only under strong pressure. Conversely, performance optimizations may be implemented without evidence for their presumed effect, increasing complexity for rather intangible benefits. Now a new utility presented in this posting comes to the rescue. Continue...

  • Stefan Kalkowski avatar

    Linux device driver ports - Breaking new ground


    In my following blog post(s) I want to elaborate on recent attemtps to renew and enhance the way Linux device drivers are ported to Genode. This is highly experimental work. So be warned if you try to follow the same approach: it hasn't proved its worth yet. But first let me explain why to break new grounds at all. Continue...

  • Norman Feske avatar

    A C++ inlining anecdote


    During my recent work on the management component of Sculpt OS, the compile time of this particular component started to bother me. Moreover, the size of the resulting binary raised my eyebrows. So I took a closer look. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 21.03


    The just released version 21.03 of Sculpt OS becomes resilient against several classes of driver failures, improves the responsiveness and convenience of the user interface, and makes recent Genode features like CPU-load balancing and screen capturing available to Sculpt components. Let's have a look at the most prominent changes. Continue...

  • Norman Feske avatar

    Pine fun - Device access from the user level


    Genode's peripheral device drivers live outside the kernel and have the form of regular user-level components. This article presents how the device-hardware access works under these conditions, while taking the general-purpose I/O pins of the Pine-A64-LTS single-board computer as playground. Continue...

  • Norman Feske avatar

    Pine fun - Kernel packaging and testing


    With our toes still a bit frozen from testing the waters of the user land, we now take the remaining steps towards a cultivated Genode life, largely automating our work flow, packaging the kernel, and testing the platform like there is no tomorrow. Continue...

  • Sebastian Sumpf avatar

    Genode on RISC-V - an Update


    RISC-V support on Genode has been around for five years by now. Our initial RISC-V port to the base-hw kernel reached back to the privileged ISA specification 1.7 while the current stable version is already at 1.11. Therefore, we have experienced quite a big part of the RISC-V evolution and generally appreciate the direction RISC-V is heading. Continue...

  • Norman Feske avatar

    Pine fun - Excursion to the user land


    Equipped with the rudimentary debugging skills presented in the previous article, it is time to conquer the remaining stumbling blocks on our way to the user land. Continue...

  • Norman Feske avatar

    Pine fun - How did we come here?


    Some kids from the city once told me about programs called "debuggers". They also use a technology named "green light" to cross the streets. City kids. As we are still far away from urban territory, we are in need of the rural ways of debugging. What are our options? Continue...

  • Norman Feske avatar

    Pine fun - Kernel skeleton


    Of the several kernels supported by the Genode OS framework, the so-called base-hw kernel is our go-to microkernel for ARM-based devices. Section Execution on bare hardware of the Genode Foundations book goes into detail about its underlying software design. This article describes the process of porting this kernel to a new board, specifically the Pine-A64-LTS single-board computer. Continue...

  • Stefan Kalkowski avatar

    Mobile Tech Demo


    Recently, a bunch of posts on this blog platform circled around Genode seriously entering the mobile world. Be it the enabling of a touchscreen, LTE modem support, or the first steps to bring Genode to the Pinephone. But a mobile platform doesn't have different technical requirements only, like support for certain peripherals. It varies in the way people are interacting with it, which needs to be considered in its GUI. To experiment in this direction a bit on the one hand, and to integrate several of the recent new components available in Genode in a sound prototype was the motivation behind the tech demo that is described in the following. Continue...

  • Norman Feske avatar

    Pine fun - Bare-metal serial output


    For low-level kernel-bootstrapping work, we need a primitive way to print debug messages over a serial connection. This article goes through the steps of executing custom code on bare-metal hardware with no kernel underneath, and attaining serial output by poking UART device registers directly. Continue...

  • Norman Feske avatar

    Warming up for some Pine fun


    I recently got my hands on a Pinephone along with a Pine64 board and have the aspiration to bring Sculpt OS to this platform. This is a very welcome opportunity to document the process of such a porting effort. Continue...

  • Sebastian Sumpf avatar

    LTE modem support for Genode


    One of Genode's visions is to support smartphones in the no so distant future. After we took care of touchscreen input the second most important feature of a phone is to drive modems in order to provide network connectivity. Modern modems are usually connected via an M.2 slot to the SoC of the phone and because protocols like LTE have real-time demands ship their own real-time capable operating system. Continue...

  • Alexander Böttcher avatar

    CPU-load balancing


    In the following article the current state of the load balacing topic, as scheduled by the 2020 roadmap, will be described. Additionally, the feature can be test driven by a extended Sculpt 20.08 based image and a video recording is available. Continue...

  • Sebastian Sumpf avatar

    "U can't touch this"


    With our on-going effort to add more and more Genode support for NXP's i.MX 8M Quad EVK SoC, which is for example deployed by the Librem 5 smartphone from Purism, it became time to add touchscreen input to the list of Genode supported features, because a phone without a touchscreen would not be of much use, would it be? Continue...

  • Stefan Kalkowski avatar

    Genode development container


    In the past, the question was asked several times: why doesn't Genode provide a development container, e.g., a docker image. The question was raised by some community members, as well as people interested in giving Genode a try. They did not want to install an additional compiler toolchain and a bunch of tools and thereby pollute their daily working environment. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 20.08


    The version 20.08 of Sculpt OS has just become available. Let's have a look at the most interesting changes and new features. Continue...

  • Martin Stein avatar

    Genode Community Summer 2020


    Update: Due to the uncertain situation with the Corona virus and the low number of participation requests so far, the Genode Community Summmer 2020 will not take place! Continue...

  • Alexander Böttcher avatar

    Streaming Android to Genode using Scrcpy


    In this post I report about the work of bringing Scrcpy to Genode. Additionally, a short video demonstrates the outcome of the undertaking. Continue...

  • Stefan Kalkowski avatar

    MNT Reform 2 - First Steps


    Recently, I was honored for receiving the first beta MNT Reform 2.0 shipped by MNT Research GmbH. This is an interesting laptop project produced by a team of three people: Lukas Hartmann (electronics / software design), Ana Beatriz Albertini Dantas (product / industrial design), and Greta Melnik (sleeve design / SMD assembly). Continue...

  • Norman Feske avatar

    Re-stacking the GUI stack


    As I am currently right in the middle of a far-reaching rework of Genode's low-level GUI stack, I'd like to share a bit of background behind this work: the Why, the What, and the How. Continue...

  • Stefan Kalkowski avatar

    Micro benchmarks - what can possibly go wrong


    From time to time I need to compare execution times and memory throughput in between Genode's hw-kernel and the baseline (typically using Linux) regarding one of the hardware platforms supported by Genode. Mostly this is done when the hw-kernel is ported to new hardware, or we experience unusual workloads on a platform, like recently when investigating a non-working USB driver on Raspberry Pi 1. Continue...

  • Martin Stein avatar

    The CBE series #4 - Video "A Linux VM on a CBE device"


    There is now an online video of the tutorial "The CBE series #3 - A Linux VM on a CBE device" available on Youtube. It goes through the whole tutorial starting with a fresh Sculpt 20.02 installation until the rekeying of the CBE device while rebooting the Linux VM on top of it. Continue...

  • Martin Stein avatar

    The CBE series #3 - A Linux VM on a CBE device


    In the Genode 20.05 release notes we teased using the CBE for running encrypted VMs in Sculpt. This article will guide you through setting up a CBE device, installing and using a Linux VM on it, and controlling the CBE online - like creating snapshots, resizing the device, or doing a rekeying. Continue...

  • Martin Stein avatar

    The CBE series #2 - Online resizing


    This article describes in detail how online resizing is done in the Consistent Block Encrypter (CBE). Online resizing enables the user to re-dimension the block pools used in the CBE block device with the device remaining accessible throughout the entire process. Continue...

  • Martin Stein avatar

    The CBE series #1 - Online rekeying


    This article explains in detail how online rekeying works in the Consistent Block Encrypter (CBE). Online rekeying means to re-encrypt a CBE block device completely with a new encryption key and eventually remove the old encryption key while the device remains accessible the whole time. Continue...

  • Norman Feske avatar

    Autoconf support is landing in Goa, Git comes to life


    I'd like to share a few recent developments around Goa, which is a new tool for porting, building, and packaging Genode components. With autoconf, a third build system enters the picture, which, in turn, paves the ground for bringing software like Git over to Genode. Continue...

  • Norman Feske avatar

    Porting Sculpt (1) - Preparations


    In my previous article, I presented an overview of undertaking the port of Sculpt OS to another SoC. Today, let us take a closer look at the first step - taking technical and non-technical preparations. Continue...

  • Josef Söntgen avatar

    Remap mouse buttons in the input filter


    As the current USB HID driver simply parses the report descriptor some input devices will operate in its default configuration. That, however might be undesirable - input filter to the rescue. Continue...

  • Sebastian Sumpf avatar

    An Android VM for ARMv8 (update)


    This is a follow up on the current state of the An Android VM for ARMv8 line of work. The article explained how to build Android from source and how to execute Android as a virtual machine on Genode. We were able to boot Android successfully but still had issues with the camera and the audio devices. Continue...

  • Norman Feske avatar

    What does it take to bring Sculpt OS to another ARM SoC?


    Since I wrote the article about the ARM SoC landscape from Genode's perspective, I got repeatedly asked about the principle steps needed to enable Sculpt OS for various ARM-based hardware platforms. Drawing from our experience with the initial port of Sculpt OS to a 64-bit ARM device in Genode version 20.02, let me try to provide a rough guide for the steps needed to port Sculpt OS to a new ARM-based hardware platform. Continue...

  • Alexander Böttcher avatar

    Native VNC client


    In order to connect to VMs remotely, several options exist. Using VNC is one way to go. Virtualization solutions like Qemu/KVM have built-in support, so a native VNC client on Genode becomes handy. In this post I'm going to report about a ported VNC client of the libvncserver project and its usage on Sculpt 20.02. Continue...

  • Stefan Kalkowski avatar

    Virtual Machine Monitor for ARM


    In my last blog post, I described some aspects of ARMv8 hardware-assisted virtualization. The presented findings were collected during some exploration work I've done together with my colleague Alexander Boettcher during last year. As already mentioned, one outcome of this work was a new Virtual Machine Monitor (VMM) written from scratch for the ARMv8 architecture. In the meantime the VMM got extended to support recent, generic Linux kernels for ARMv8 and ARMv7, and thereby supersedes the former, outdated PoC implementation for ARMv7. Continue...

  • Sebastian Sumpf avatar

    An Android VM for ARMv8


    In my last article I described how to build a Linux image that can be executed by Genode's VMM on i.MX8 platforms. With this article we take things to the next level by creating and executing an unmodified Android 10 VM on the i.MX 8M EVK SoC. Continue...

  • Norman Feske avatar

    Compartmentalized window management in Sculpt OS


    When using Sculpt OS day-in day-out, the simple default window manager as introduced in the manual is quite limiting. This article presents an alternative that is able to remember window positions across reboots, swap out window decorations on the fly, and that empowers the user to modify the window layout directly via a textual interface. Continue...

  • Josef Söntgen avatar

    Using the Block::Request_stream API in the NVMe driver


    The NVMe driver component is switched to the Request_stream API in accordance to the road map, where consolidation of the Block-level components is scheduled for the upcoming 20.05 release. As a side-effect, things got a little bit simpler in the driver. Although being one of the first drivers to be converted to new the API it is late to the party nonetheless. Continue...

  • Alexander Böttcher avatar

    CPU affinity with Sculpt OS


    With the latest 20.02 Sculpt release we added support to configure the affinity and number of CPUs available to components running on Sculpt. The principal support was already part of the Genode framework since 13.08, but missed to be easily usable on previous Sculpt versions. Continue...

  • Christian Helmuth avatar

    Let's encrypt Genodians.org: Extending Goa


    Since the first days we're serving Genodians.org via HTTPS and retrieve the site certificate from https://letsencrypt.org/. Unfortunately, our current certificate-update process uses the quite complex Certbot tool, which requires Python 3 and around a dozen of libraries. Therefore, the process is run in a temporary Linux VM periodically by hand, and I'd like to replace this cumbersome procedure by a Genode subsystem in Genodians. Continue...

  • Norman Feske avatar

    Goa updated to Genode 20.02


    Now that Genode 20.02 is out of the door, it's a good time to update Goa to the match the most recent Genode version. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Virtualization


    During last autumn, my colleague Alexander Boettcher and me wrote a virtual-machine-monitor for ARMv8 for Genode from scratch. It was an intensive teamwork and much more fun than just poring alone over some problem. In this fifth post about my ARMv8 first steps, I'd like to summarize some of the insights from this work. Continue...

  • Sebastian Sumpf avatar

    Building a Linux VM image for ARMv8


    This brief article summarizes the steps necessary to build a runnable Linux kernel and initrd disk image that can be executed on top of Genode's custom VMM for i.MX8 platforms. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Multi-Cores


    Within the past months I collected some experiences with enabling Genode's own hw kernel on ARMv8 hardware platforms. A first series of posts covered the low-level first steps that had to be taken. In this forth part I like to summarize the insights gained by enabling multi-cores of the NXP i.MX 8M SoC, and by investigating several other SoCs and its SMP setup. Continue...

  • Norman Feske avatar

    FOSDEM 2020 in review


    FOSDEM and the microkernel developer room in particular was certainly one of the highlights of the year. In this posting, I share my personal impression of the event and a few links of interest. Continue...

  • Martin Stein avatar

    Running Genode in VirtualBox


    After I finished the most recent article about Spunky I received feedback from people who tried to run Sculpt OS with Spunky inside a VirtualBox VM and met some difficulties. While trying to reproduce the scenario, I noticed that there seems to be not much documentation about how to run Genode scenarios other than the ready-to-use Virtual-Appliance image from the Sculpt download page in VirtualBox. And there are a few pitfalls. Continue...

  • Martin Stein avatar

    Spunky #3: Desktop system, FOSDEM video, scheduler, plans


    In this series of articles I'll illustrate a hobby project of mine that is trying to create a kernel for Genode written in Ada 2012. This project is not about writing a kernel from scratch but rather successively take parts from the existing base-hw kernel and translate them to Ada. Thus, the design mainly follows the approach taken with base-hw. To be able to test the already translated parts, I link them together with the remaining parts from base-hw. The interfacing between the Ada and the C++ parts is done on the level of object methods. Over time, the code base of the new kernel will become more and more Ada and less C++. Maybe later this work will also lead to some formal verification with SPARK. But for now, I'm happy with Ada. So let's go! Continue...

  • Norman Feske avatar

    Sculpt OS - FOSDEM 2020 Edition


    In my talk at FOSDEM, I present a brand new version of Sculpt OS. It is a preview of the upcoming release. For those of you who are eager to play with this version, I have put a downloadable image online. Continue...

  • Norman Feske avatar

    Goa - publishing packages


    In the previous articles (1, 2, 3) about Goa, we created a minimalistic Unix system by combining Genode's ready-to-use building blocks with universally loved GNU software. Now it's time to publish our little creation so that it can be deployed directly on Sculpt OS. Continue...

  • Alexander Böttcher avatar

    Screencast on Sculpt OS


    From time-to-time the screen cast support on Genode pops up. Martin successfully ported avconv and demonstrated it back then in 2016. In the event of Sculpt OS, I lately had the chance to update the port and integrate it with Sculpt OS in form of packages ready for use. The following instructions will guide you through the setup. Additionally a short video recorded running on Sculpt is available. Continue...

  • Norman Feske avatar

    Pending Sculpt user-interface changes


    During our road-map discussion, I vaguely mentioned my plan to change the administrative user interface of Sculpt OS. This post is a response to John's inquiry for more details. Continue...

  • Alexander Böttcher avatar

    Graphical CPU utilization and monitoring tool (19.12)


    The top_view component is a tool using the tracing infrastructure of Genode to gather thread related information, e.g. execution time, and prepare them for graphical presentation. Lately the tool got some updates I want to share. Beside the textual post I also uploaded a short tutorial video. In order to test the current version, you will have to build the Sculpt OS image yourself. Continue...

  • Norman Feske avatar

    Goa - sticking together a little Unix (part 3)


    In the previous article, we went from a first life sign of the bash shell to an interactive scenario. Today, we spice up our little system with the magic potion of Unix, namely the presence of a collection of useful utilities and a mechanism to combine them. If someone asked me for one word condensing the essence of Unix, it would be "pipe". Off we go, plumbing! Continue...

  • Martin Stein avatar

    Spunky - Part 2: The Signals, The FOSDEM, and The Repository


    In this series of articles I'll illustrate a hobby project of mine that is trying to create a kernel for Genode written in Ada 2012. This project is not about writing a kernel from scratch but rather successively take parts from the existing base-hw kernel and translate them to Ada. Thus, the design mainly follows the approach taken with base-hw. To be able to test the already translated parts, I link them together with the remaining parts from base-hw. The interfacing between the Ada and the C++ parts is done on the level of object methods. Over time, the code base of the new kernel will become more and more Ada and less C++. Maybe later this work will also lead to some formal verification with SPARK. But for now, I'm happy with Ada. So let's go! Continue...

  • Norman Feske avatar

    Goa - sticking together a little Unix (part 2)


    Let us transcend the simplistic bash scenario created in part 1 and enter the stage of an interactive system. Continue...

  • Norman Feske avatar

    Goa - sticking together a little Unix (part 1)


    Whereas the first article about Goa was concerned with building software using commodity build systems, this article takes you on a ride of creating a small Unix OS out of Genode's ready-to-use building blocks, publishing the result, and deploying it on top of Sculpt OS. Continue...

  • Norman Feske avatar

    Goa - streamlining the development of Genode applications


    The development of applications for Genode used to require a lot of learning about Genode's way of organizing source code, our custom build system, and the use of run scripts. With Goa, I introduce a new tool that aims at largely removing these burdens from application developers. Continue...

  • Norman Feske avatar

    The ARM SoC landscape from Genode's perspective


    We get repeatedly asked for our opinion about ARM system-on-chips (SoCs) suitable for the use with Genode. Even though Genode supports the ARM architecture since 2009, the answer has remained anything but simple. This article presents constraints faced by a small player attempting to realize an ARM-based product that deviates from the beaten track of using a Linux-based OS. It should not be regarded as ground truth but rather as the subjective perspective of Genode Labs. Continue...

  • Sebastian Sumpf avatar

    Simple tracing within Qemu


    I recently discovered Qemu's tracing feature. It is useful for examining the state of device models, like interrupt controllers or the CPU, or for observing the behavior of guest operating systems. As a simple example, lets enable tracing for ARM's interrupt controller called GIC. The device model resides in Qemu in the file hw/intc/arm_gic.c. In order to find out which trace events exist one can either grep for trace- or examine the file trace_events which resides in each directory that supports tracing. The file hw/intc/trace_events contains the following entries for ARM's GIC: Continue...

  • Christian Helmuth avatar

    Sculpt OS on HP EliteBook 840 G5


    A few weeks ago, I got hold of a brand-new HP EliteBook and was eager to find out how Sculpt OS may do on it. The specs promised a smooth ride but as always I had to face some hidden obstacles. Continue...

  • Norman Feske avatar

    New Challenges ahead


    We maintain a collection of future project ideas on a dedicated website. Today, I reviewed and updated the topics. Let me present the ideas. Continue...

  • Tomasz Gajewski avatar

    Exploring Genode Base HW with Raspberry Pi - further workflow automation


    In a previous article I described step by step how to prepare a Raspberry Pi and Genode build system to be able to almost automatically build and test compiled images on a device. There was one piece missing in this puzzle that made it incomplete: after each build device had to be started manually. This article describes my solution to this missing element. Continue...

  • Martin Stein avatar

    Invitation to the Genode Community Summer


    Recently, several requests reached us at Genode Labs from people interested in coming to Dresden for a certain period of time to work on their Genode project while beeing able to seek our assistance in person. To give this idea a dedicated space, Genode Labs will hold a new event, the "Genode Community Summer" this year. Continue...

  • Norman Feske avatar

    Speaking of Security


    The term security is overloaded to a point that makes it almost meaningless. On our website, we speak of Genode as a technology for building highly secure operating systems. But what does that even mean? Let's take a closer look at the security landscape at large, and our focus in particular. Continue...

  • Martin Stein avatar

    The Säntis System Summit in Summer 2019


    I must admit that I more or less stumbled into this wonderful event by chance. Not knowing what to expect exactly from the online presentation I was totally overwhelmed by the positive experience in the end. Not only provided the location at mountain Säntis in Appenzell a breathtaking scenery and the hotel was great, but, most of all, amongst all organizers and participants there was an enthusiastic, open-minded and relaxing atmosphere that made this (un)conference special to me. Continue...