Site logo
Stories around the Genode Operating System RSS feed
  • 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...

  • Josef Söntgen avatar

    Download Debian VM and the VirtualBox Guest Additions reloaded


    With the release of Sculpt 19.07 and release of Debian 10 (Buster) it is about time to update the download_debian package as well. I briefly tested the VirtualBox guest-additions version 6.0.4 (that's the version provided in the non-free repository) by installing them directly from the .iso which appear to work well. Continue...

  • Tomasz Gajewski avatar

    Exploring Genode Base HW with Raspberry Pi - beginning


    It started few months ago. 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...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Part 3


    Within the last weeks I collected some experiences with enabling Genode's own hw kernel on ARMv8 hardware platforms, and like to share it via genodians.org. In the first post I've described how to first create a non-functional dummy system image. In part 2, I wanted to show how easily you can develop and debug early system level startup code when using QEMU. This time I'll center on the exception level changes, and the flexible page-table layout in ARMv8. Continue...

  • Sebastian Sumpf avatar

    Tracing support for Genode's VFS


    I just published a new trace_fs component within my depot. It announces a file system that can be mounted, e.g. to a noux-system instance. The directory structure of the file system represents Genode's recursive parent child relationship. Continue...

  • Martin Stein avatar

    Type-safe bit access using the register framework


    Years ago, when I wrote my first device drivers for Genode, I found myself thinking about a very common problem in this area: MMIO regions that are structered with bit-granularity. Accessing such structures in C++ was normally done with hand-crafted bit arithmetics that not seldom ended-up in long cryptographic statements with raised error potential. Type-safety in this field is highly desirable to improve driver development but unfortunately not part of the basic C++ features. This initiated the development of the so-called MMIO framework in Genode, which later evolved into the more generic Register framework. Over the years, the Register framework has become the prefered tool to describe and access sub-byte structures of any type (not only MMIO) in Genode and has received a lot of handy features of which I'd like to give an overview in this article. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level - Part 2


    In this blog series I write about my insights when porting Genode's hw kernel to ARMv8. In the first post I've described how to first create a non-functional dummy system image. In this post, I want to show how easily you can develop and debug early system level startup code when using QEMU. Continue...

  • Emery Hemingway avatar

    Restoring git merge functionality


    To restore basic git functionality such as git diff and git merge the depot hash artifacts must be treated as binary files by git. The hash files are in fact mostly binary, they contain a date and sha256 digest. Hash files should not be hand-edited and are produced as a side effect of the depot build system. Continue...

  • Sebastian Sumpf avatar

    Enablement of Genode's ARMv8 support


    ARMv8 introduces a new 64 bit instruction set architecture (ISA). This implies that there exists a different general purpose register set as well as new instructions and opcodes that are not compatible with ARMv7 or ARMv6. While for high level languages like C or C++ the burden of opcode generation is transparently handled by the compiler, there are always cases (e.g, assembly, application binary interface, ELF format) that have to be handled specifically for each ISA. In this article I will describe the most important adaptions required to execute Genode on the ARMv8 architecture. Continue...

  • Stefan Kalkowski avatar

    Exploring the ARMv8 system level


    Recently I got the chance to explore the 64-bit ARM system level universe. Finally, there were resources left to implement support for the ARMv8 architecture in Genode's own hw kernel. In the following blog posts I'd like to summarize my insights. Continue...

  • Christian Helmuth avatar

    Modern look for the graphical terminal


    Some weeks ago, I was finally done with the wishy-washy Solarized Dark color theme in my terminals and searched for a palette rich of contrast but still pleasing to the eyes. The new color palette inspired me to a small coding project for our graphical terminal over the Hack'n'Hike weekend. Continue...

  • Martin Stein avatar

    User-friendly handling of missing ports in depot tools


    I enjoy the elegant and potent system behind packages in Genode. Therefore I found it particularly sad that, for me, a tiny, rather superficial issue always dimished the user experience: Missing archives of third-party code, called ports, are reported only one at a time, and each time, the user has to push the process forward manually. Because of this, building large packages like Sculpt with dependencies to over 20 of these ports, can become an annoying task. Continue...

  • Johannes Kliemann avatar

    SPARK as an extremum: Components in pure SPARK


    Some time ago Norman Feske wrote about C++ and SPARK as a continuum. His article shows how SPARK can be used to implement critical functionality in SPARK while implementing the core component in C++ on Genode. He further describes a set of rules to prevent unexpected side effects in SPARK. In short it boils down to stateless libraries written in SPARK that cannot interact with the environment but can consume and produce data. While this might sound restricted at first glance this approach can be used to strengthen the security of existing software such as parsers or protocol checkers that shield the C++ code from tainted data. We also applied this method successfully outside of Genode by replacing the C++ parser of the Fizz TLS library by our own SPARK implementation. Continue...