With the just released version 15.11, the Genode OS framework takes a big step towards desktop computing. On that account, its GUI and audio stacks have become much more modular, dynamic, and flexible. Moreover, the release features the port of Intel KMS from Linux, extends the support for the USB Armory and Xilinx Zynq-7000, and introduces new file-system infrastructure such as a VFS server.
In their release documentation, the Genode developers dedicate an entire section (including screenshots) to the ambition to use Genode as desktop OS. It turns out that the framework’s existing component architecture solves a number of difficult problems in new and elegant ways. For example, the configuration of all types of components – be it low-level device drivers or high-level GUI components – can be edited live with a plain text editor. The changes become effective by merely saving a file. This works even for components that have no means or permissions to access a file system at all. Another interesting twist on classical GUI-integration features is Genode’s new copy-and-paste mechanism that prevents the clipboard to be misused by malicious applications as a covert information channel while retaining the convenience of traditional clipboard mechanisms.
At a lower level, the desktop theme of the release is supported by the new Intel KMS driver ported from the Linux kernel. It allows the use of multiple displays, and screen resolutions can be switched on the fly. With nearly 70,000 SLOC of Linux kernel code, the porting was a major feat. This work continues the pattern of reusing Linux kernel code, which already enabled Genode to use the Intel wireless stack, the Linux USB stack, and the Linux TCP/IP stack as user-level components. The Intel KMS driver is interesting also in another respect: Since it is tightly coupled with the Intel GEM and DRM infrastructure of the Linux kernel, those subsystems had to be ported as well. So the driver may become a suitable starting point for the development of a future GPU multiplexer.
Thanks to the developer’s continuous focus on making the framework fit for day-to-day computing, Genode is now used by a hand full of die-hard Genode enthusiasts as their primary OS. Still, many tasks are carried out via a guest OS in VirtualBox. But all of the circa 40 underlying components such as the kernel, device drivers, protocol stacks, and a growing number of applications are working nicely together and are stable and fast enough to get productive work done.
Besides the main focus on desktop computing, the release is not short of other areas of improvement. Xilinx Zynq-7000 has been added to the supported platforms, TrustZone on the USB Armory received a lot of attention, and a new VFS server makes Genode’s file-system infrastructure much more flexible. Those and many more topics are covered by the detailed release documentation.
So it’s a microkernel OS… running 70,000 lines of Linux kernel code, using ext2 as a filesystem, using GNU tools in userspace, with editable text files for configuration, using Qt and OpenGL for graphical applications, and including Linux and Windows VMs for unported stuff.
At what point do they admit it’s converging on a Linux distro?
Edited 2015-12-01 23:52 UTC
70k lines is like nothing… probably just enough to do a reasonable port of the graphics drivers.
Linux in all it’s glory is millions of lines…
That said… I’m finding Xinu interesting… especially considering I just picked up an AT&T unix PC which happens to have a port of an older version of Xinu in addition to running AT&T Unix SRV5 release 3.51
Edited 2015-12-02 04:23 UTC
If the kernel isn’t Linux, just having driver code copied from Linux distributions doesn’t make it a Linux distro.
If Linux is not Unix, Genode is not Linux
It’s an OS “framework”, as they pitch it. They use Linux components now, but they could use netBSD’s, or anything else, or mix it all. It is far more modular, and many paradigms are completely different. (Would re-architecture be the right term?) I warmly welcome the code reuse; the team has far more useful things to do than rewrite existing high-level tools and low-level drivers. What they focus on is the “glue”, and that makes all the difference.
Edited 2015-12-02 06:05 UTC
These guys have found a way to not only keep their own interest high, but to actually make progress on a regular scale. They also write great documentation that is both highly technical, accurate and still readable. My favorite example:
So for now I will take their advice and not start using it. I will keep on monitoring this one though. They know what they are doing and they are doing it well. This is the only hobby-OS that actually seems to be going somewhere
(disclaimer 1: Yes, Haiku is further along but also progressing much slower and aiming much lower)
(disclaimer 2: See disclaimer 1 but about ReactOS)
(disclaimer 3: Sailfish, WebOS, etc are not Hobby-OS)
I searched the project’s website for a download and I can’t find any ISO files newer than 2010. Their file archive, live images page and past releases are all either years out of data or source-only. I wonder why they stopped providing live images? Now that there is a desktop component and good VirtualBox support, this would seem to be a good time to let people actually run the OS.
I agree with this.
It would be really nice to have VirtualBox / VMWare images, even if it is just for playing around. That way, they wouldn’t have to support too many hardware configurations, but everyone could try it.
I’ll ditto that too. Just in case Norman’s reading.
Br,
I can clearly see the demand for a live system. But there is more to it than merely putting a snapshot of a system scenario online. Earlier today, I have written up my thoughts about it:
https://github.com/genodelabs/genode/issues/1000#issuecomment-161260…
I hope that the posting is able to explain our hesitance.
As you suggest on your post, maybe leadingly.. but
Both Routes seems to make a certain sense
I think involving folk from the Secure OS/ USB Armoury communities in discussions here and now could get that wing off the ground soon enough
and maybe the “Lego” idea is rather more of a Genode solely in-house effort and longer term (or more time consuming rather)
You make good points there. We certainly wouldn’t want to distract the main devs from what they are doing!
Your “Lego” idea makes a lot of sense, but again, we don’t want to distract the main developers from their core mission.
For us hobby OS types, I still think it makes sense to have some kind of demo “disk”. Nothing fancy – maybe just some simple apps that demonstrate some of the principles / capabilities.
In any case, this type of thing should probably be done by a second level of developers, i.e. a developer community. (I would volunteer, but I don’t have as much free time as I used to.)
Food for thought…