New issue tracker at Github Dec 20, 2011

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:

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 Dec 05, 2011

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" (http://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 Nov 29, 2011

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 release notes of version 11.11...

Android on top of Genode Sep 27, 2011

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 <a class="external-link" href="http://l4android.org">L4Android</a> 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 README file of the ports-foc repository and share your results with us at the Genode mailing list.

Genode OS Framework release 11.08 Aug 17, 2011

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 the full story about the various improvements that come with the version 11.08...

Genode OS Framework release 11.05 May 26, 2011

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 release notes of version 11.05...

Exciting challenges ahead Mar 24, 2011

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 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 mailing list. Also, if you have additional ideas, please do not hesitate to tell us more.

Discover the Wiki page about our future challenges...

Norman Feske introduces Genode on YouTube Mar 10, 2011

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 Software Freedom Day 2010 event in Amsterdam. Thanks to Bas the Lange for publishing the material.

Visit the YouTube page...

Genode OS Framework release 11.02 Feb 24, 2011

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 release notes of version 11.02.