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.

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.

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.

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.

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.