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

    Moving on from XML? A teaser for a possible alternative


    The prominent role of XML throughout Genode has been a recurrent point of critique. Technical pros and cons notwithstanding, syntax is a matter of taste, and XML tastes not favorably to many. Over the past two years, I've secretly pondered over a tasteful alternative, which I'd like to share with you today. Continue...

  • Norman Feske avatar

    A couple of new challenges


    An update to Genode's official list of future challenges has been long overdue. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 24.04


    Sculpt OS 24.04 is packed. The spectrum of topics ranges from user experience, over audio, USB, suspend/resume, on-target debugging, and goes on. In the article, I'm presenting my personal highlights of this most profound release so far, garnished with various bits and pieces of the updated documentation. Continue...

  • Norman Feske avatar

    FOSDEM 2024 aftermath


    This year's FOSDEM was once again an eventful experience. By now, most presentations have become available. Yet I took the opportunity to re-record a more complete version of my talk that I want to share with you. Continue...

  • Norman Feske avatar

    Crafting a modded Sculpt OS image in a few moderate steps


    I'd like to invite you to get playful with Sculpt OS. Because Sculpt OS is entirely Free Software, no user is bound to the decisions taken by us core developers. This article gives you tangible steps to start modding your user experience beyond the mere configuration level. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 23.10


    My personal highlights and a few technical tidbits about the just released Sculpt OS version 23.10, putting the spotlight on the Framework laptop, the PinePhone, and the MNT Reform laptop. Continue...

  • Norman Feske avatar

    What's new in Sculpt OS 23.04


    With Sculpt OS 23.04 being in the wild since almost two weeks, it's time to put the spotlight on the most prominent changes. Continue...

  • Norman Feske avatar

    Goa tool under the umbrella of Genode Labs


    The Goa project was started in 2019 with the ambition to streamline the workflows of application developers targeting Genode, and Sculpt OS in particular. I maintained and improved the tool off-and-on as a personal project over the years. Now, coordinated with the release of Sculpt OS 23.04, Goa has become an official Genode-Labs project. Continue...

  • Norman Feske avatar

    First system image of mobile Sculpt OS


    At FOSDEM 2023, I'm going to introduce the mobile version of Sculpt OS at the "FOSS on mobile" developer room - the perfect opportunity to kick off a first public field test. Continue...

  • Norman Feske avatar

    Mobile user interface, not in the face!


    When approaching the user interface for a Genode-based phone, we started with the vague idea to mirror time-tested user-interface paradigms established in the worlds of Android and iOS, but we ultimately diverged from this beaten track. Instead, we took the opportunity to reflect the unique security architecture of our operating system at the user-interface level, giving the user an extremely strong sense of control over the device. This article presents our rationale and the initial scope of functionality. Continue...

  • Norman Feske avatar

    Pine fun - How low can we go...


    One of the most pressing practical concerns of mobile phones is battery lifetime. We wondered, what can we expect from a Genode-based PinePhone? To find out, we took our custom SCP firmware as instrument to poke all the dials and knobs and we could find deep in the device. Continue...

  • Norman Feske avatar

    Pine fun - Cutting Linux-driver competencies


    The previous episodes of the article series covered the challenges of transplanting complex driver code from the Linux kernel into Genode components. Once running happily in its new habitat, however, the driver code needs a heavy dose of domestication. This article shows how to curb the driver code from the overarching access of power, reset, pin, and clock controls. Continue...

  • Norman Feske avatar

    Darling, I FORTHified my PinePhone!


    This is my experience story behind Genode's forthcoming custom firmware for the PinePhone's AR100 system-control processor (SCP). It makes a case for using Forth for implementing SCP functionality and describes the process of bringing Forth to the OpenRISC instruction-set architecture. Continue...

  • Norman Feske avatar

    Pine fun - Touchscreen


    On our mission to enable the PinePhone hardware for Genode piece by piece, let's turn our attention to the touchscreen device, which is the gateway to interactive system scenarios. Continue...

  • Norman Feske avatar

    Genode's Browser Odyssey


    This article tells the twisted story behind Genode's native web browser, which is one of the most prominent achievements of the project during the past year. It is going to cover our motivation behind this undertaking, the rationale behind the choice of the browser engine, and many technical tidbits. Continue...

  • Norman Feske avatar

    Pine fun - Display


    Having switched the development workflow from the Pine-A64-LTS board to the real deal - the PinePhone - in the previous article, it is time to turn our attention to the arguably most challenging parts of the hardware, namely the display subsystem. Continue...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • 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...

  • Norman Feske avatar

    Copy and paste with Sculpt OS 19.07


    The upcoming Sculpt OS version 19.07 allows the user to copy and paste text between virtual machines, terminal windows, Qt5 applications, and the administrative interface (Leitzentrale). This article sheds light on the underlying mechanism and its security considerations, shows how to configure subsystems to use the new feature, and covers a few caveats you may encounter. Continue...

  • Norman Feske avatar

    Resurrecting Escape Paint with Hatari


    A recent series of events flared up my enthusiasm for Atari home computers. I just couldn't help but draft a plan of bridging this nostalgic trip with our modern-day Sculpt OS. Continue...

  • Norman Feske avatar

    C++ and SPARK as a continuum


    SPARK is an Ada-inspired programming language for high-assurance computing. It was designed for the application of formal verification methods to real-world software. The prospect of bug-free software is music to our ears! I wonder, can there be a love affair between SPARK and Genode's predominant implementation language, C++? Continue...

  • Norman Feske avatar

    Sculpt as a Community Experience


    We just released the fourth version of Sculpt OS today. It is subtitled "Sculpt as a Community Experience". In this posting, I'd like to explain what's behind this slogan. Continue...

  • Norman Feske avatar

    A convenient shortcut for working with test packages


    The train to FOSDEM was the perfect setting for creating a dirty little tool for quickly building and running single test packages. Continue...

  • Norman Feske avatar

    Genode's Conscious C++ dialect


    C++ is a power tool that scales from embedded systems to the most complex software stacks imaginable. When we started Genode in 2006, the feature set of the language was extremely persuasive. It strikes a great balance of giving the programmer full control whenever needed while also featuring means of expressing high-level software designs. This power is a two-edged sword though. In this series of postings, I'd like to share how we learned to handle it without regrets. Continue...

  • Norman Feske avatar

    A new place for sharing Genode-related stories


    Genodians.org presents ideas, announcements, experience stories, and tutorials around Genode, written by people like you and me. Genode users and developers are very welcome to join our tribe of authors! Continue...