Live CD planning

Norman Feske norman.feske at ...1...
Thu Mar 22 10:54:48 CET 2012


Hello everyone,

according to our road map, we intend to release another Genode Live
CD in the not-too-distant future. The live CD should not be just an
update of the current one - that would be rather boring. Instead,
the goal behind the new live system is to provide a glimpse of our
vision to use Genode as OS for doing productive work. Even though
it will still have the character of a tech demo rather than a
productive system, its presentation and content will be mainly
focused on topics important to (at least our personal notion of)
general-purpose computing. The previous live CD was designed to be
easily approachable and relatively simple. The new system should
be attractive to people who enjoy tinkering with a command-line
interface.

I propose the following demo setups to be included on the live
system:


1. Self hosting - running the GNU tool chain on Genode

The setup should showcase the use of Noux to run the GNU userland
natively to accomplish everyday tasks such as editing and compiling
source code. The most distinctive concept of Noux compared to
traditional Unix systems is that each working topic can be executed
in a specially tailored instance. So I would like to present one
Noux instance with only VIM and coreutils (read-only) and the Genode
source code (read/writable). This is for doing editing work. A
second instance includes coreutils, make, GCC, binutils, findutils,
the Genode source code (all read-only), and the build directory
(read/writable). This is for compiling. By separating the editing
from compiling, we can make sure that no bug in the build system or
tool chain may affect the source code. A third Noux instance should
allow us to execute the resulting binary and look at its output.
This instance won't be able to access anything besides the actual
binary.


2. On-target debugging - use GDB to debug a subsystem

With GDB monitor, we are able to debug Genode processes over a
serial line or a TCP connection. Using Noux, we could principally
run GDB on the system as well and simply connect it via the
terminal-session interface to GDB monitor. This would allow us to
execute most steps of our GDB tutorial directly on the machine. As a
nice side effect, people who explore this setup will learn how to
use GDB. .-)


3. L4Android

Running L4Android on Genode is merely a feature demo but flavoured
with a bit of hackability. Besides showing the Android framebuffer
output, I would like to show the Linux kernel output and the Genode
LOG output side-by-side (using small fonts). The remaining part of
the screen should be used for a console with access to the Android
debugger. This way, users can dive right inside the running Android
OS.


4. Media replay

This setup should present how Qt4, audio output, and video decoding
are running together. In addition, I'd like to enhance the setup
with (some kind of) a real-time demonstration that facilitates
Nitpicker and our Qt4 plugin mechanism. Using this mechanism it is
possible to provide a data path for pixels originating from the
video component to the screen but bypassing Qt4. Thereby, we can run
the real-time critical video processing at a higher static priority
than Qt4, yet still present Qt4 and the video component tightly
integrated in one GUI.


Overall presentation

I propose to let the user run each of the setups exclusively by
selecting a menu entry from a small area at the top of the screen
(similar to how tabs work). By not allowing the concurrent use of
multiple setups, we simplify the UI and guide the attention of the
user to only one topic at a time. The main part of the screen will
be used by fixed-positioned windows (maybe except for the media
setup). The left side (maybe 25% of the screen width) will always
present a PDF file (MuPDF in action!) with a brief description of
what to see and what to do (e.g., explaining the GDB commands to use
in the GDB demo). The middle and right portions of the screen will
be used for displaying the actual demo and, depending on the demo,
will be further subdivided.


Technical qualities and limitations

The previous live CD could only be started from CD-ROM, which is
kind of old-fashioned. The new system should be bootable from both
CD-ROM and USB stick. For the latter, we need to work on the USB
stack because our existing USB driver (on linux_drivers) is outdated
to a point where it does not work with most current-generation
hardware.

For the screen output, we will still use our VESA driver with a
fixed video mode of 1024x768. Obviously, this is quite behind the
times but there are several reasons to have it this way. First, it
works nicely - no additional work is needed. Second, most people
will try out the live CD on VirtualBox or a similar VM. Here, a
lower resolution than the host system does not hurt. Third, when
giving presentations, 1024x768 have proven to work well with most
data projectors. Last but not least, fixing the resolution allows us
to design the graphical presentation pretty easily. In contrast, if
we supported varying resolutions, static placement and sizing of
screen portions would no longer be feasible. This screams for a
tiled window manager, which we don't have yet.

The live CD will use the Fiasco.OC kernel as this is the only
kernel where L4Android and GDB are featured.


Working topics

I am current busy with getting Noux into shape for realizing the
self-hosting and GDB setups. Once this is finished I will take care
of the graphical touches, editing, and overall conceptual work.
Stefan will take care of the Android setup, which comes mostly down
to integrating existing components. The media setup is mainly worked
on by Christian Prochaska. Sebastian is looking into the new USB
stack.

Of course, we will need to do comprehensive stability testing before
releasing the live CD. Fortunately, each of the setups can be
developed and tested independently. This enables us to pre-release
each setup as a different ISO image for everyone to test. I will
certainly do so for my work. This way, we can start testing way
before the final integration phase.


Release date?

There is no definitive release date yet. Given the rather ambitioned
plan outlined above and our past experiences with the substantial
testing effort needed for such an undertaking, I think that the
release in the first half of May is feasible. But that is just a
rough estimation from my side.


Do you have further ideas for setups to feature on the live CD or
remarks on the current plan? Please don't hesitate to share them
with us. Or maybe you interested in lending a helping hand for any
of the topics?

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth




More information about the users mailing list