Hi everyone,
I've been watching closely for years but unfortunately I couldn't do
much in 2025 (have other responsibilities...). In 2026 I plan to do what
I've been always planning to do: a more user-friendly Genode-based
distro, maybe by basing off Sculpt OS, maybe by directly building upon
the Genode framework. Genode is an interesting project, I wish more
people would start learning and building upon it... HID is also very
interesting and I would like to do some related work (if needed) too.
Best Regards,
Z Lin
On 12/18/25 00:39, Norman Feske wrote:
Hello everyone,
I'm writing this email on a Sculpt OS image [1] running on Genode's
custom kernel and using HID as the format for its textual user
interface [2]. To me personally, a distant dream has just become real.
What else happened this year, and where to go next? Let me kick off
our annual roadmap discussion with sharing my perspective and ambitions.
[1]
https://genode.discourse.group/t/sculpt-25-10-with-hid-syntax-highlighting
[2] https://genodians.org/nfeske/2024-12-20-moving-on-from-xml
Reflection of 2025
------------------
Our overarching theme for this year was "rigidity, clarity,
performance" [3]. My main contributions towards these goals had been
the replacement of C++ exceptions by sum types throughout the
framework, and the move from XML to the lean syntax I envisioned 2,5
years ago and officially proposed in December last year [2].
[3] https://genode.org/about/road-map
Both topics had ripple effects on the entire code base. The systematic
change of the error handling to sum types forced me to reconsider the
longest-standing system-wide abstractions such as the low-level
allocator interfaces, to the welcome effect of becoming conscious of
all possible error conditions, unveiling loose ends formerly obscured,
and ultimately solving them. I'm extremely grateful to my team mates
who joint the effort, e.g., Alexander applying the new error handling
scheme to the seL4-specific portions of Genode, or Stefan for the
tremendous curation of our custom kernel as well as Genode's
virtualization interfaces. It has been a long way. But now we have the
luxury of knowing that Genode's base system has left no error
condition unconsidered.
The replacement of XML with a human-friendly alternative had been
largely my personal line of work. While being convinced of the goal, I
was quite cautious of possible disruption. I tried hard to not
distract my colleagues from their working topics by pursuing the
migration path to the new syntax on my own account while upholding the
framework's compatibility to XML. I was quite afraid to disrupt API
users external to our team for a mere syntactic change. However, by
combining the change with an API revision that addresses long-standing
deficiencies of the former XML utilities, I could justify the
disruption. We had to revise the XML processing anyway. The introduced
'Node' and 'Generator' APIs generally simplify the code, do not rely
on exceptions, and improve memory safety. Even we kept XML, this
repair would have been needed rather sooner than later. As the
intended side effect, components using the new API became
syntax-agnostic. Voila. In summer, I managed to start up Sculpt OS
using the new syntax, and in October, I switched to this flavour full
time, eating my own dog food with great delight.
All the while working on these main topics, I witnessed wonderful
things happening in Genode land: With the new scheduler and the added
virtualization support for our custom kernel, the final puzzle pieces
have fallen into place for using Sculpt as self-sufficient OS without
depending on a 3rd-party kernel! The culmination of a seemingly
eternal line of work, which started as a heretic idea "Couldn't
roottask and the kernel be merged into one program?" I dared to utter
in 2007 to the distress of the Dresden church of L4, then first
explored by Martin Stein with Genode on the Xilinx Microblaze in 2011
[4], then moved to the realms of x86 by Adrian-Ken Rueegsegger and
Reto Buerki in 2015 [5], then becoming our go-to kernel for using
Genode on ARM for many years, later equipped with x86 virtualization
support by Ben, and now finally made fit for general-purpose use with
Sculpt OS by Stefan and Johannes. Given this long story, having the
kernel now running on the laptop under my fingers is truly amazing.
[4]
https://genode.org/documentation/release-notes/11.02#Approaching_platform_support_for_Xilinx_MicroBlaze
[5]
https://genode.org/documentation/release-notes/15.05#Principal_support_for_the_64-bit_x86_architecture
Another super satisfying sight had been the coolness of Sebastian,
Josef, and Alex while updating our arsenal of Linux-based drivers to
Linux 6.12, reinforcing hardware support as one of Genode's most
distinctive features in the world microkernel-based systems. The
tool-chain update to GCC-14 went equally smooth, thanks to the careful
preparation and execution by Christian Prochaska.
Finally, I'm overly happy to see the proliferation of the Goa SDK as
the central tool for the development of Genode software. I see Josef's
re-organization of the Genode-world repository as a Goa-project tree
as the begin of a new chapter.
Ambitions for 2026
------------------
What could that "new chapter" be about? I think it should be about
building bridges. Bridges to other open-source projects. Bridges to a
variety of programming languages. Bridges to new user demographies.
Bridges for the interoperability of applications.
Personally, I feel the urge to implement HID parsers to different
programming languages while - at the same time - bringing those
programming languages to Genode. So we gain new freedom for
implementing components, and the HID syntax could potentially become
useful elsewhere.
Another interest of mine is the seamless interoperability of Genode
components in a sort of capability-based desktop environment. As a
preparatory step, I'm longing to make the VFS more flexible, in
particular adding dynamic reconfiguration support.
Closely related to the VFS, I'm dreaming of making the GUI session
available as a VFS plugin. With the GUI session exposed as file-system
interface, the porting of GUI toolkits will become easier because
those toolkits no longer need to interface with Genode's C++ API.
For Sculpt OS, I have a long list of topics in the back of mind. I
hope that I will have the time to realize the on-screen documentation
view and the interactive management of USB devices. I'd love to see
HID becoming the default in Sculpt OS 26.04 and to drop the support
for XML in version 26.10.
How about you?
--------------
I'm eager to learn about the perspectives and plans of you, users and
developers alike.
What is your retrospective on Genode in 2025?
Which topics are of most interest to you?
How do my plans resonate with you?
What are your plans for 2026?
Where do you see Genode by the end of 2026?
Following the tradition of the previous years, I'll do my best to
distill your input along with the plans of Genode Labs into the
project's official road map by mid of January.
Cheers
Norman
_______________________________________________
users mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Archived at
https://lists.genode.org/mailman3/hyperkitty/list/[email protected]/message/ME3PNBYXZTGEH6ARJ3H7UD3Q5G5V56HY/