Dear Genode Community,
hereby, I'd like to kick off our yearly brainstorming about Genode's road map for the upcoming year. Please feel invited to chime in, sharing your personal observations and plans. By mid of January, I will update Genode's official road map, trying to weave one reasonable plan out of our individual interests.
Let me start with my personal reflection of the past year and the topics that I find tempting for 2023.
Review of the past year -----------------------
My Genode year revolved all around the PinePhone, which was an extremely challenging and rewarding experience.
Driven by the vision of a Genode-based smartphone, I had to tackle topics ranging from the schematics of the device, over plenty of peripheral drivers, up to the user-interface level. Along the way, I found myself entrenched in a staggering variety of topics. To name a few: A custom Forth interpreter for our firmware for the PinePhone's system-control processor, programmed in OpenRISC assembler. Implementing a low-complexity AT-protocol stack talking to the modem, enabling voice telephony and mobile-data connectivity. Coming up with a suitable user-interface concept for the mobile variant of Sculpt OS, and implementing it. The exploration and implementation of power-management features like voltage and frequency scaling. Reducing the time from cold start to the user interface to only 5 seconds. Getting the application performance up to an acceptable level, grabbing all straws in reach.
This was of course not a one-man show but a team effort. I found myself very happy being strongly supported by Christian, Sebastian, Josef, and Stefan who played huge roles in wrestling with the hardware and ultimately enabling scenarios like media playback in the Morph browser on the PinePhone.
The result makes me immensely proud. Moreover, we haven't just managed to get it to work, but we gained detailed guidance documentation [1] as a collateral effect. The main motivation behind my laborious writing effort was to lower the barrier of entry for others who wish to port Genode to further mobile platforms in the future. Let's see how this plays out.
[1] https://genode.org/documentation/genode-platforms-22-05.pdf
Interests for 2023 ------------------
Personally, there are four main interests, I'd like to focus on now.
1. Completing the support for the PinePhone
Genode on the PinePhone evidently works now. But I want to make it rock! I'm eager to implement a prolonged standby mode that will allow me to leave the phone unplugged for a week while staying receptive for calls. I want to make the installation and use of custom software an easy and enjoyable experience. Finally, by integrating privacy-protecting functions like the file vault or WireGuard VPN support, the mobile version of Sculpt OS will give me the assurance I'm seeking for my personal mobile companion device.
At the beginning of February, I'm going to present the current state at FOSDEM's "FOSS on Mobile" Devroom [2] and will invite the community for a field test. By May, I want to reach a state where we can offer a ready to use image for PinePhone for a broader user base.
[2] https://fosdem.org/2023/schedule/event/genode_on_the_pinephone/
2. Moving existing applications to Sculpt OS
With Goa [3], we already have a nice starting point for bridging the gap between existing software and Genode. I want to elevate Goa from a personal project to an official Genode project. One particular ambition is the use of Goa for re-targeting existing mobile apps to the mobile version of Sculpt OS (e.g., using the APIs of Sailfish or Ubuntu touch UI). I'm thinking of an Open-Street-Map client and a messenger as particular examples. Should we manage to achieve a frictionless way to bringing existing apps to Sculpt OS, we may have a chance of spawning a broader active community.
[3] https://github.com/nfeske/goa
3. Improved support for Intel GEN12
This month, I swapped out my trusty Lenovo x260 by a GEN12 Frame.work laptop as Genode development machine. It is a very nice laptop. Still, there are quite a few rough edges that need attention. The fan can get very noisy, which we can presumably fix by better driver support for CPU power and temperature settings. I know that Alexander has already done promising exploratory work, which I'd love to replicate and finally make it a regular feature. Closely related, I'm missing the battery-state applet on the new machine, and the of the PS/2-emulated touchpad is, well, an interim solution at best. I ultimately long for a proper touchpad driver with support for common gestures.
4. Distillation of Genode's base mechanisms
Whereas the first three points address practical concerns, I also want to turn my attention to the framework architecture. During the past two years, I discovered several ways for simplifying the base system, slimming down the framework API, and lowering Genode's footprint. Think of my ambition to reduce the reliance on the C++ exception mechanism, consolidating core's PD and CPU services into one, streamlining the signalling mechanism, or re-implementing the page-fault handling across the various kernels. There is a lot of potential, which will ultimately open up new optimization opportunities. I restrained myself from exploring those ideas to retain my focus on the PinePhone. But they want out. The second half of 2023 would be a good time.
What about you? ---------------
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
What directions are you most excited about?
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
Cheers Norman
How did you perceive the Genode year 2022?
What directions are you most excited about?
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
Santa brought a Pinephone for my S.O. this year, she's happy and looking forward to use it (and I'm relieved my plot worked and there's no longer talk of purchasing an Android or iOS device in this home ^^)
We tried to use the OS it ships with (Manjaro/Plasma), but after a few days of use, it's broken : keeps going back to the PIN-code screen every few seconds, making it unusable ; discussion forums hint that it means Plasma keeps crashing and getting auto-restarted.
There's no Genode pre-built image yet, so I took a hint from your Genodians articles and installed LuneOS. It's been solid so far, and wow, that look and feel is slick indeed. The camera driver does not seem to handle the cams though. And their site and forums have been mostly inactive for years. Hence : I'll keep an eye out for Genode. Those start-up times sound impressive. The intended use for her will be somewhat limited : sending SMS's, Matrix or Discord, photo album, maybe a bit of web browsing. VPN features would be quite intriguing, in this day and age.
**
Re. my ongoing project of "marrying" Genode and that other system (let's call it "upstream-Hai") : the latest build is now playing music from an indexed, attributed, file system. Finally. So my years of (slow-as-molasses) work weren't for naught :-) (@Norman: will email you my cliff-notes later on, not exactly "light" reading *g* but it seems you agree to read them anyway!) In the spirit of good Q.A., I started running that "distro" on metal for several hours every day, to accumulate mileage, before I hopefully ship to an unsuspecting public in 2023.
Also, now that the main part of the system works, that opens the door to "secondary features", to wit:
* HDA driver: During 2H 2022, I should look into multi-output audio, e.g. making the "line-out" jack output a different audio stream from the "headphones" jack. The BSD driver relies on a command called "mixerctl" if memory serves, will see how that translates into code-and-configuration in Genode's port of that driver. If it's incomplete I'll try to contribute the missing stuff.
* Dynamic vfs mounting: Will soon-ish look into USB mass storage ; I presume it spawns a new component (or re-spawns an existing one) with appropriate <config>... <vfs>... nodes for reading the newly mounted USB stick/hard-drive. Maybe re-spawning will be sufficient for my needs ; however in case it has shortcomings, I might have to look into patching Genode to make vfs config "dynamic" (that is, apply vfs plug-in mounting/unmounting without killing the host component), though that's always a difficult subject on any OS, so I'll try hard to steer clear of that if I can.
* Drag'n'drop ("cooperative"): A much more distant prospect : it would be nice for my apps to re-enable DnD as in upstream, in addition to using file panels. It's just a vague idea at this point, not even on the 2023 drawing board yet, just a vague concept whereby each upstream-Hai app monitors mouse pointer movements and contributes/cooperates on visual feedback and internal IPC of the dragged BMessage... You could call it "make believe DnD", since it won't involve NitPicker much, it will be the apps themselves faking it. Anyway not sure whether it'll make the cut to year 2023, maybe the year after that (if the lights are still on in this part of the natostan Empire by then).
As always, thanks for giving Genode to the world, I try to pay you guys back by filing detailed and helpful tickets and such.
Cedric
Hi Cedric,
thank you for contributing your unique perspective.
Hence : I'll keep an eye out for Genode. Those start-up times sound impressive. The intended use for her will be somewhat limited : sending SMS's, Matrix or Discord, photo album, maybe a bit of web browsing. VPN features would be quite intriguing, in this day and age.
When Sculpt on the PinePhone happens to achieve compatibility with the needs of your SO, we will have made it! :)
In the spirit of good Q.A., I started running that "distro" on metal for several hours every day, to accumulate mileage, before I hopefully ship to an unsuspecting public in 2023.
It's amazing to see how far your project has come.
- Dynamic vfs mounting:
We will need this sooner or later. As you just stated, the devil lies in the details, in particular the lifetime management of open VFS handles. However, I keep spinning this problem in the back of my head. As preparatory work for enhancements like this, I'm currently in the process of consolidating and simplifying the VFS [1].
[1] https://github.com/genodelabs/genode/issues/4706
Once I'm through with this, we can approach the trickiness with a simpler code base to play with.
- Drag'n'drop ("cooperative"):
Another very good point, which happens to be relevant to the PinePhone as well. Some time ago, I even sketched some ideas [2] but never came around implementing them.
[2] https://www.genode-labs.com/publications/secure-gui-2009.pdf#subsection.4.3....
I try to pay you guys back by filing detailed and helpful tickets and such.
It's a joy!
Cheers Norman
https://www.genode-labs.com/publications/secure-gui-2009.pdf#subsection.4.3....
The DnD protocol exposed in secure-gui-2009.pdf reminds me of the advanced one described in the BeBook as "negociated drag'n'drop" (by opposed to the simplified B_SIMPLE_DATA I typically use in my apps). Heck, it even has the use of MIME types assigned to the data payload. That convergence is a very good sign, if I say so myself 8-)
I'll run that in my head, though an aspect for me is inter-operability with my existing code base : to keep my code working "as-is" without #ifdef-Genode's it would need continued reliance on BMessage's, by contrast to interacting with Genode ROMs/report_rom's and other components (well of course, whichever way I go, in either case I'll rely on the underlying Genode, but in a different way : if I go the "cooperative" way, the "glue" code will be down in layers, down in my h-o-g components instead of being exposed in higher layers or requiring changes in my actual application code).
(generally speaking, even beside my own DnD design idea, if I was to implement a DnD "engine" for Genode I would prioritize brainstorming about how that engine will be exposed as an API, how it will interact with known applications and their APIs : GTK, Qt, etc -- I have zero knowledge about DnD on those latter two and wonder how much they expect from the underlying operating system ; for Sculpt you would not have to worry about interaction of course as Sculpt would adapt to the provided API).
****
Regarding community contributions, after someone mentionned LVGL on the PinePhone that got me thinking a bit, trying to guess in what direction the PP GUI will go. (I make no guarantee express or implied that my below ramblings will be relevant to the Genode project, caveat emptor :^)
From one extreme (reliability) to the other (full featured),
I suppose the GUI "arsenal" could potentially look like this:
- native Genode widgets' set - LVGL - Higher-level widget toolkit? (possibly with expressive power similar to InterfaceKit or comparable ?) - Full-blown Qt etc
So which of those are used, or will be used in the future ?
We've seen screenshots of native widgets being used for Sculpt/Leitzentrale and administration GUI, and that makes sense to have a rock solid GUI -- it must be since it's part of the (user-facing) TCB. At the other end of the spectrum, it was mentionned that Qt (?) support might get consolidated on the PP in order to allow app ports, which makes complete sense too.
Someone mentionned LVGL ; that seems fairly solid/stable and (in my few weeks of working with it) impressively full-featured (some would say "eye candy", in the positive meaning) for such a small code base that is designed to run even on an Arduino with a few hundred KB of RAM (!). Seems they've put some serious coding effort into LVGL over the years. Though IIRC it needs exclusive access to the framebuffer (or part of it ?) so not sure whether its use can be wide spread or shared with Sculpt ; but since I know it a little, I'll keep an eye on it if it pops up in github changes, though it's not clear if I could make useful suggestions... Except to suggest looking for the C++ wrapper API (which allows piloting LVGL with objects instead of the plain C API... though most people seem ok with the C API, especially for small-scale GUIs).
Where I'll keep my eyes peeled however, is for the third item above. That possibility has not popped up, and it's entirely possible it will not be needed, i.e. there won't be room for a "fifth wheel" between native widgets one one hand, for implementing all "operating system" GUI aspects, and applications on the other hand, for the "everything-else" GUI aspect.
Cedric
- native Genode widgets' set
- LVGL
- Higher-level widget toolkit? (possibly with expressive power similar to
InterfaceKit or comparable ?)
- Full-blown Qt etc
Just recalled the mention of Sailfish and Ubuntu touch, didn't have that in mind when I wrote the above. So that would address my email then, please disregard that question.
Cedric
Hi Cedrik,
Regarding community contributions, after someone mentionned LVGL on the PinePhone that got me thinking a bit, trying to guess in what direction the PP GUI will go. (I make no guarantee express or implied that my below ramblings will be relevant to the Genode project, caveat emptor :^)
your question prompted me to summarize the thoughts that went into the mobile UI for the PinePhone [1].
[1] https://genodians.org/nfeske/2023-01-05-mobile-user-interface
The "left" side relies on Genode's native widget renderer (menu_view). The "right" side offers complete freedom. One user may host a single Qt app at a time, another user may host an SDL game, or even host a custom UI mimicking a commodity smartphone experience (launcher + switching between apps). So we can explore different directions without the need to agree on the one best way.
Cheers Norman
Hi Norman,
[1] https://genodians.org/nfeske/2023-01-05-mobile-user-interface
The "left" side relies on Genode's native widget renderer (menu_view). The "right" side offers complete freedom. One user may host a single Qt app at a time, another user may host an SDL game, or even host a custom UI mimicking a commodity smartphone experience (launcher + switching between apps). So we can explore different directions without the need to agree on the one best way.
Looking good, both for the existing state and for the future prospects : looking forward to the pre-built image. Thanks for expanding on this topic, which I recall had been touched in some of the 22.x release notes.
In the coming months I might get some ideas maturing in my head for the "right hand side UI' ; in order to get on the keyboard and code said ideas myself I would normally have to install Linux and the Genode ARM toolchain, but now that I say it out loud, maybe there's an easier way : prototyping GUI ideas directly on x86_64 with my existing setup (and probably in Qemu). That's what I was doing during my brief contract stint on LVGL, I was using the SDL-based 'device simulator' makefile most of the time, before building/uploading an actual target binary build to the device to test 'for real' and refine my code, We'll see what my future holds in terms of spare time, and whether or not I can think of UI designs that improve on the existing in significant ways. Thanks for all you do !
Cedric
Hi Norman,
That's quite the list! I love the ideas you are exploring here. I've only just gotten a peek into what genode is doing and I really like it, particularly on the phone front. Even though I'm brand new to the community, I thought I would share a thought with you.
I have been looking for a replacement for my iPhone 6 for 5 or 6 years and I've tried several but nothing has satisfied. What's interesting is that I am not that demanding. All I need my phone to do is take and answer phone calls, send and receive text messages and images/clips/etc, and provide me with navigation when I ask for it without any tracking - if I can run an Auth app or two, great, but not deal breakers. Back in the day of course, this was akin to sourcery. Nowadays, it's not much to ask for in terms of capability. The most promising was a Nexus 5 running UBPorts Ubuntu Touch. The problems with that it was funky with texts and navigation was horrible... I could live with spotty text capability, but the nav thing drove me nuts. It would take about 30 minutes to get a fix on my position and then it would lose it after a couple of minutes and I'd have to recalibrate (this was a known issue and there wasn't a workaround). Still, the Nexus 5 was a supported device and recommended by UBPorts, so it was sad.
Where I'm headed with this is, please do keep nav in the forefront of mind - working nav though, not just occasionally maybe it's usable in a demo nav. I would love to use a phone with control over the TCB that would, when needed, get me from point a to point b with a minimum of fuss. 5 stars for " I'm thinking of an Open-Street-Map client and a messenger as particular examples". Also, wouldn't it be nice if the nav function were completely under the user's control, meaning that when the user turned it off, their location in realtime would not be tracked? I'm sure there are valid uses for point in time requests for a device to be located, but continual tracking, not so much.
Thanks,
Will
On 12/26/22 9:58 AM, Norman Feske wrote:
Dear Genode Community,
hereby, I'd like to kick off our yearly brainstorming about Genode's road map for the upcoming year. Please feel invited to chime in, sharing your personal observations and plans. By mid of January, I will update Genode's official road map, trying to weave one reasonable plan out of our individual interests.
Let me start with my personal reflection of the past year and the topics that I find tempting for 2023.
Review of the past year
My Genode year revolved all around the PinePhone, which was an extremely challenging and rewarding experience.
Driven by the vision of a Genode-based smartphone, I had to tackle topics ranging from the schematics of the device, over plenty of peripheral drivers, up to the user-interface level. Along the way, I found myself entrenched in a staggering variety of topics. To name a few: A custom Forth interpreter for our firmware for the PinePhone's system-control processor, programmed in OpenRISC assembler. Implementing a low-complexity AT-protocol stack talking to the modem, enabling voice telephony and mobile-data connectivity. Coming up with a suitable user-interface concept for the mobile variant of Sculpt OS, and implementing it. The exploration and implementation of power-management features like voltage and frequency scaling. Reducing the time from cold start to the user interface to only 5 seconds. Getting the application performance up to an acceptable level, grabbing all straws in reach.
This was of course not a one-man show but a team effort. I found myself very happy being strongly supported by Christian, Sebastian, Josef, and Stefan who played huge roles in wrestling with the hardware and ultimately enabling scenarios like media playback in the Morph browser on the PinePhone.
The result makes me immensely proud. Moreover, we haven't just managed to get it to work, but we gained detailed guidance documentation [1] as a collateral effect. The main motivation behind my laborious writing effort was to lower the barrier of entry for others who wish to port Genode to further mobile platforms in the future. Let's see how this plays out.
[1] https://genode.org/documentation/genode-platforms-22-05.pdf
Interests for 2023
Personally, there are four main interests, I'd like to focus on now.
- Completing the support for the PinePhone
Genode on the PinePhone evidently works now. But I want to make it rock! I'm eager to implement a prolonged standby mode that will allow me to leave the phone unplugged for a week while staying receptive for calls. I want to make the installation and use of custom software an easy and enjoyable experience. Finally, by integrating privacy-protecting functions like the file vault or WireGuard VPN support, the mobile version of Sculpt OS will give me the assurance I'm seeking for my personal mobile companion device.
At the beginning of February, I'm going to present the current state at FOSDEM's "FOSS on Mobile" Devroom [2] and will invite the community for a field test. By May, I want to reach a state where we can offer a ready to use image for PinePhone for a broader user base.
[2] https://fosdem.org/2023/schedule/event/genode_on_the_pinephone/
- Moving existing applications to Sculpt OS
With Goa [3], we already have a nice starting point for bridging the gap between existing software and Genode. I want to elevate Goa from a personal project to an official Genode project. One particular ambition is the use of Goa for re-targeting existing mobile apps to the mobile version of Sculpt OS (e.g., using the APIs of Sailfish or Ubuntu touch UI). I'm thinking of an Open-Street-Map client and a messenger as particular examples. Should we manage to achieve a frictionless way to bringing existing apps to Sculpt OS, we may have a chance of spawning a broader active community.
[3] https://github.com/nfeske/goa
- Improved support for Intel GEN12
This month, I swapped out my trusty Lenovo x260 by a GEN12 Frame.work laptop as Genode development machine. It is a very nice laptop. Still, there are quite a few rough edges that need attention. The fan can get very noisy, which we can presumably fix by better driver support for CPU power and temperature settings. I know that Alexander has already done promising exploratory work, which I'd love to replicate and finally make it a regular feature. Closely related, I'm missing the battery-state applet on the new machine, and the of the PS/2-emulated touchpad is, well, an interim solution at best. I ultimately long for a proper touchpad driver with support for common gestures.
- Distillation of Genode's base mechanisms
Whereas the first three points address practical concerns, I also want to turn my attention to the framework architecture. During the past two years, I discovered several ways for simplifying the base system, slimming down the framework API, and lowering Genode's footprint. Think of my ambition to reduce the reliance on the C++ exception mechanism, consolidating core's PD and CPU services into one, streamlining the signalling mechanism, or re-implementing the page-fault handling across the various kernels. There is a lot of potential, which will ultimately open up new optimization opportunities. I restrained myself from exploring those ideas to retain my focus on the PinePhone. But they want out. The second half of 2023 would be a good time.
What about you?
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
What directions are you most excited about?
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
Cheers Norman
Hi Will,
thanks for chiming in!
Where I'm headed with this is, please do keep nav in the forefront of mind - working nav though, not just occasionally maybe it's usable in a demo nav. I would love to use a phone with control over the TCB that would, when needed, get me from point a to point b with a minimum of fuss. 5 stars for " I'm thinking of an Open-Street-Map client and a messenger as particular examples". Also, wouldn't it be nice if the nav function were completely under the user's control, meaning that when the user turned it off, their location in realtime would not be tracked? I'm sure there are valid uses for point in time requests for a device to be located, but continual tracking, not so much.
your privacy interests are perfectly aligned with mine.
Regarding positional tracking, my idea is to have a GPS switch in the "Phone" part of Sculpt's UI. So the user is always in control to switch this modem feature on/off. If GPS is enabled, the modem driver feeds the current GPS coordinates as polled from the modem into a GPS report.
Now when integrating the OSM component, one can deliberately decide how to connect the GPS ROM requested by the OSM component. Normally, one would connect it to the GPS report that reflects the position provided by the modem. Alternatively, one could provide a hand-crafted GPS ROM (pretending that you are somewhere else), or none (by directing the GPS ROM request to the black hole).
When using an offline map, the OSM app would neither need network access nor write access to any file system. Therefore, we don't need to trust the app. That's the best protection against positional tracking we can achieve.
Note, however, that the network provider or a malicious/compromised modem firmware might still be able to track you. This could only be mitigated by taking the GPS position from a distinct GPS device that is independent from the modem, and leave the modem switched off.
From your posting I get that you have probably higher expectations from an OSM client application than me. I'd be happy enough with a plain map that helps me finding my way to the nearby Hostel when arriving by train at a foreign place. The crafting/porting of a more competent OSM app would be a perfect topic for contributing because as an actual user of such features, you have the incentives to get it right.
Since such an application would merely consume a GPS ROM, it can be developed without any physical GPS device or phone. The GPS position could come from a component that reports fake GPS positions. Compass sensory data could be handled similarly.
Cheers Norman
Hello Norman,
On 1/4/23 5:20 AM, Norman Feske wrote:
snip... your privacy interests are perfectly aligned with mine.
Regarding positional tracking, my idea is to have a GPS switch in the "Phone" part of Sculpt's UI. So the user is always in control to switch this modem feature on/off. If GPS is enabled, the modem driver feeds the current GPS coordinates as polled from the modem into a GPS report.
Now when integrating the OSM component, one can deliberately decide how to connect the GPS ROM requested by the OSM component. Normally, one would connect it to the GPS report that reflects the position provided by the modem. Alternatively, one could provide a hand-crafted GPS ROM (pretending that you are somewhere else), or none (by directing the GPS ROM request to the black hole).
When using an offline map, the OSM app would neither need network access nor write access to any file system. Therefore, we don't need to trust the app. That's the best protection against positional tracking we can achieve.
Note, however, that the network provider or a malicious/compromised modem firmware might still be able to track you. This could only be mitigated by taking the GPS position from a distinct GPS device that is independent from the modem, and leave the modem switched off.
From your posting I get that you have probably higher expectations from an OSM client application than me. I'd be happy enough with a plain map that helps me finding my way to the nearby Hostel when arriving by train at a foreign place. The crafting/porting of a more competent OSM app would be a perfect topic for contributing because as an actual user of such features, you have the incentives to get it right.
Since such an application would merely consume a GPS ROM, it can be developed without any physical GPS device or phone. The GPS position could come from a component that reports fake GPS positions. Compass sensory data could be handled similarly.
Cheers Norman
This sounds like a good and rational approach that you explained nicely. Thanks for sharing. I'm pretty sure I'm not quite up to doing an app like this, I'd prolly settle for your version :).
Thanks,
Will
Hello Genodians,
accepting Norman's invitation I'd like to chime in with a short recap of 2022 and my personal interests for 2023.
On Mon, Dec 26, 2022 at 16:58:36 CET, Norman Feske wrote:
How did you perceive the Genode year 2022?
For me personally, the year 2022 was packed with PC-centric topics ranging from device enablement (NOVA kernel, device-resource management, device-driver support) to the preparation of curated patch sets for special features that did not made it into mainline yet. I'm quite proud that our team managed to fully enable Intel Gen11 notebook platforms including native Iris Xe GPU support. Our limited experiences with Gen12 (also beyond Normans nice Framework notebook) are also promising and, thus, I'm sure we'll get on par early in 2023.
What directions are you most excited about?
The perspective to use Genode not only on my developer notebook but also on a mobile phone every day is a fairly exciting prospect. I will support the Sculpt for mobile efforts as well as I can. But yet, my primary focus will still be Genode on PC-like devices.
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
My interests for 2023 are twofold and address quite distinct topics.
First, I'd like to transfer our recent experiences in the field of device-resource management and ACPI into a revised solution that moves most of the ACPI processing into early boot and tames the runtime ACPI processor. By design, the dynamic acpica component's system impact must be minimized.
The second topic I'd like to gain first experiences with is IPv6 in the Genode context. So far, we concentrated our efforts on IPv4 exclusively in the NIC router as well as with our IP-stack implementations based on code from lwIP and Linux. With basic IPv6 support as a goal, I believe we could address the dual-stack design with Genode as our environment from a genuine perspective. I'm already looking forward to my Linux VM successfully negotiating its first non-fe80 IPv6 address (and the dancing kame [1]).
Best regards
Christian
Hi,
my main topic of 2022 has been "jitsi on the PinePhone", which involved porting the Morph web browser to Genode, updating the Qt port to a version which is compatible with the public jitsi server at 'https://meet.jit.si' and a lot of time trying to figure out how the parts of the Chromium engine related to screen updates and processing of WebRTC audio packets work and to find performance bottlenecks in these areas with the help of tools like OProfile (on base-linux) and the new 'trace_recorder' component which got introduced in Genode 22.08. One of the bigger bottlenecks turned out to be Genode's custom 'malloc' implementation in the libc and replacing it with 'jemalloc' as an experiment helped already, but there's still more to do to achieve a really usable jitsi experience.
So, for 2023 I mainly intend to continue these browser performance optimization efforts and to learn more about the advanced features of the 'Eclipse Trace Compass' tool to help with that. Apart from that I'm also interested in helping with the porting of other mobile applications to the PinePhone, the next Genode tool chain update and improving the state of the 'gdb_monitor" component.
Christian
Hi Christian,
So, for 2023 I mainly intend to continue these browser performance optimization efforts and to learn more about the advanced features of the 'Eclipse Trace Compass' tool to help with that. Apart from that I'm also interested in helping with the porting of other mobile applications to the PinePhone, the next Genode tool chain update and improving the state of the 'gdb_monitor" component.
all your points make perfect sense.
Thanks to your endurance, we made such huge strides with the browser performance on the PinePhone. I'm very hopeful that the continuation of these efforts will ultimately fulfill our vision of Jitsi on the Genode-based PinePhone.
I'm delighted reading that you want to pick up the GDB support. It happens to be one of the components that still stand in the way of architectural improvements I want to pursue (e.g., it still relies on the 'Signal_receiver'). So a modernization would be very much appreciated.
Good that you are raising the tool-chain update. How do you feel of taking this opportunity to enable C++20 by default?
Cheers Norman
On 12/26/22 10:58, Norman Feske wrote:
Dear Genode Community,
hereby, I'd like to kick off our yearly brainstorming about Genode's road map for the upcoming year. Please feel invited to chime in, sharing your personal observations and plans. By mid of January, I will update Genode's official road map, trying to weave one reasonable plan out of our individual interests.
[snip]
What about you?
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
I think this was a very productive year for Genode! Every year I think things are going to slow down, and every year you find new way(s) to surprise us! :^)
What directions are you most excited about?
Both the PC driver refactoring and the PinePhone port are very exciting to me. I bought a PinePhone a few months ago, for the purpose of installing Genode. I haven't had the time to do this yet, but I can't wait to try it, and follow the progress! And of course, improved driver support on the PC is always important.
Which topics do you deem as interesting to explore yourself?
Too many to list! On the development side, I would really like to focus on exploring the power of the native Genode APIs, such as Nitpicker, VFS, etc. There are so many possibilities there, just waiting to be combined in creative ways!
Oh yes, and getting back to Ada.
Do you already happen to have rough plans about 2023?
2022 was a very disappointing year for me, as I had almost no time to devote to Genode (or other projects), so my plans for the new year are roughly the same as for the old - move to Sculpt as my daily driver OS on the laptop, and preferably upgrade from my feature phone to Genode on the PinePhone. That would be a good year in my book! :^)
Thanks to everyone for another exciting and productive year in the quest for trustworthy and user-controlled computing!
Happy Sculpting!
John J. Karcher devuser@alternateapproach.com
Hi John,
thank you for participating in our yearly brainstorming!
I think this was a very productive year for Genode! Every year I think things are going to slow down, and every year you find new way(s) to surprise us! :^)
At the end of the day, it always comes down to personal motivation. Your signs of appreciation play no small role in that. Sometimes, a thought like "John will like it!" gives me quite a boost. ;-)
I bought a PinePhone a few months ago, for the purpose of installing Genode. I haven't had the time to do this yet, but I can't wait to try it, and follow the progress!
It's great knowing that you are on board for the upcoming "field test".
Cheers Norman
Hello Norman and Christian,
I would like to shine some light on the parts of Genode that I like the best and which I think deserve some consideration in this years road map. I think that Genode shines in the domain of secure networking. Martin Stein has developed many great components that are very powerful in this area like the Wireguard component and the CBE with ADA. I also remember a root of trust device that was planned that would be very handy and that fits well in this category. In this years road map I like Christians IPv6 work for the Nic Router as that fills a hole in the current setup. If this area could get some consideration so that long term plans for the various components in this range that still are in the pre-release stage became known that would be great.
Cheers, Pontus
On Mon, Dec 26, 2022 at 4:59 PM Norman Feske norman.feske@genode-labs.com wrote:
Dear Genode Community,
hereby, I'd like to kick off our yearly brainstorming about Genode's road map for the upcoming year. Please feel invited to chime in, sharing your personal observations and plans. By mid of January, I will update Genode's official road map, trying to weave one reasonable plan out of our individual interests.
Let me start with my personal reflection of the past year and the topics that I find tempting for 2023.
Review of the past year
My Genode year revolved all around the PinePhone, which was an extremely challenging and rewarding experience.
Driven by the vision of a Genode-based smartphone, I had to tackle topics ranging from the schematics of the device, over plenty of peripheral drivers, up to the user-interface level. Along the way, I found myself entrenched in a staggering variety of topics. To name a few: A custom Forth interpreter for our firmware for the PinePhone's system-control processor, programmed in OpenRISC assembler. Implementing a low-complexity AT-protocol stack talking to the modem, enabling voice telephony and mobile-data connectivity. Coming up with a suitable user-interface concept for the mobile variant of Sculpt OS, and implementing it. The exploration and implementation of power-management features like voltage and frequency scaling. Reducing the time from cold start to the user interface to only 5 seconds. Getting the application performance up to an acceptable level, grabbing all straws in reach.
This was of course not a one-man show but a team effort. I found myself very happy being strongly supported by Christian, Sebastian, Josef, and Stefan who played huge roles in wrestling with the hardware and ultimately enabling scenarios like media playback in the Morph browser on the PinePhone.
The result makes me immensely proud. Moreover, we haven't just managed to get it to work, but we gained detailed guidance documentation [1] as a collateral effect. The main motivation behind my laborious writing effort was to lower the barrier of entry for others who wish to port Genode to further mobile platforms in the future. Let's see how this plays out.
[1] https://genode.org/documentation/genode-platforms-22-05.pdf
Interests for 2023
Personally, there are four main interests, I'd like to focus on now.
- Completing the support for the PinePhone
Genode on the PinePhone evidently works now. But I want to make it rock! I'm eager to implement a prolonged standby mode that will allow me to leave the phone unplugged for a week while staying receptive for calls. I want to make the installation and use of custom software an easy and enjoyable experience. Finally, by integrating privacy-protecting functions like the file vault or WireGuard VPN support, the mobile version of Sculpt OS will give me the assurance I'm seeking for my personal mobile companion device.
At the beginning of February, I'm going to present the current state at FOSDEM's "FOSS on Mobile" Devroom [2] and will invite the community for a field test. By May, I want to reach a state where we can offer a ready to use image for PinePhone for a broader user base.
[2] https://fosdem.org/2023/schedule/event/genode_on_the_pinephone/
- Moving existing applications to Sculpt OS
With Goa [3], we already have a nice starting point for bridging the gap between existing software and Genode. I want to elevate Goa from a personal project to an official Genode project. One particular ambition is the use of Goa for re-targeting existing mobile apps to the mobile version of Sculpt OS (e.g., using the APIs of Sailfish or Ubuntu touch UI). I'm thinking of an Open-Street-Map client and a messenger as particular examples. Should we manage to achieve a frictionless way to bringing existing apps to Sculpt OS, we may have a chance of spawning a broader active community.
[3] https://github.com/nfeske/goa
- Improved support for Intel GEN12
This month, I swapped out my trusty Lenovo x260 by a GEN12 Frame.work laptop as Genode development machine. It is a very nice laptop. Still, there are quite a few rough edges that need attention. The fan can get very noisy, which we can presumably fix by better driver support for CPU power and temperature settings. I know that Alexander has already done promising exploratory work, which I'd love to replicate and finally make it a regular feature. Closely related, I'm missing the battery-state applet on the new machine, and the of the PS/2-emulated touchpad is, well, an interim solution at best. I ultimately long for a proper touchpad driver with support for common gestures.
- Distillation of Genode's base mechanisms
Whereas the first three points address practical concerns, I also want to turn my attention to the framework architecture. During the past two years, I discovered several ways for simplifying the base system, slimming down the framework API, and lowering Genode's footprint. Think of my ambition to reduce the reliance on the C++ exception mechanism, consolidating core's PD and CPU services into one, streamlining the signalling mechanism, or re-implementing the page-fault handling across the various kernels. There is a lot of potential, which will ultimately open up new optimization opportunities. I restrained myself from exploring those ideas to retain my focus on the PinePhone. But they want out. The second half of 2023 would be a good time.
What about you?
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
What directions are you most excited about?
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
Hi Pontus,
In this years road map I like Christians IPv6 work for the Nic Router as that fills a hole in the current setup. If this area could get some consideration so that long term plans for the various components in this range that still are in the pre-release stage became known that would be great.
thanks for joining the discussion. Good to know that Christian's interests align with your's.
I have difficulties understanding the last statement. May you try rephrasing it?
Cheers Norman
Happy new year to everyone!
Let me join the brainstorming session...
How did you perceive the Genode year 2022?
From a personal perspective, I am delighted with the past year. Skimming through my notes from 2022 made me aware of the variety of topics on which I had been working: I wrote my first vfs plugin (vfs_tap) and ported my first Linux driver with the new dde_linux (zynq SD driver). Moreover, I was able to complete a long-pending side-project of mine, the trace recorder, which turned out to be quite useful for performance debugging. Speaking of performance debugging, I dug into Genode's memcpy implementations and was able to reveal a number of optimisations for the NIC router. Furthermore, I entered the realm of hardware development for the Zynq's FPGA. A particular highlight of mine is the GPIO demo for the Zybo Z7 board that showcases and documents most aspects of the resulting Genode-based hardware-software co-design workflow. Reviewing how much I learned in the last year leaves a very pleasant feeling.
In addition, I am astonished by all the other achievements in which I rather played a spectator role. It's particularly intriguing to observe how the Sculpt OS for the PinePhone takes shape.
What directions are you most excited about?
I am most excited about the PinePhone support. Given that I'm using Sculpt on PC already on a daily basis, being able to reliably make phone calls and perform secure messaging on a handheld device is the most intriguing prospect. I'd happily contribute to this undertaking as much as I can.
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
As always, I'm not short of ideas. Given that I'll be operating with restricted resources (due to parental leave), however, it is quite hard for me to predict how much I'll be able to focus on complex topics. Basically, I have four main areas of interest to which I'd like to devote my resources in descending priority:
1. PinePhone
As already mentioned, I'd love to contribute to the PinePhone support. Yet, as I don't want to allocate myself on a critical path, I'm thinking about implementing some nice-to-have features. For instance, I'd like to have a go with LVGL to write a custom lock-screen component for the PinePhone. Moreover, I'm thinking about integrating support for the proximity/ambient-light sensor.
2. Hardware/Zynq
I'd like to continue development for the Zynq-SoC, in particularly the Zybo Z7 board. With the basic driver support and workflow for deploying custom hardware designs on Genode, I'll make an effort in implementing and documenting more complex showcases. I have already implemented all aspects of a DMA demo that I'd like to wrap up and document in articles on genodians.org and hackster.io.
3. Usability topics
I believe there are a few low-hanging fruits that could potentially improve the usability of Sculpt OS (predominantly on PC). For instance, it'd be great to have a file browser component that simplifies "opening" files, such as PDFs, audio files, etc., with a component which is registered for the particular file type. I think this would greatly improve the usability as I'd be able to download files with the native falkon browser and safely open them in a sandboxed viewer.
4. Distributed Genode
Ever since I started working with Genode, I had the idea in mind of using Genode for my home server. A first step would be to use it as a headless VM host. For monitoring and administration, it'd be useful to have a Leitzentrale to control other (headless) Genode devices. This could not only be useful for the server use case but for managing distributed Genode installations in general.
Cheers Johannes
Hi Johannes,
Let me join the brainstorming session...
your posting has put a big smile on my face!
The wealth of topics you mentioned in your review is nothing short of amazing. I am particularly grateful that you put so much effort into making Genode known to wider public, like via your excellent hackster.io article series. You re-approached the combination of Genode with FPGAs with so much energy and creativity, while not loosing sight of interesting side issues all along the way.
What directions are you most excited about?
I am most excited about the PinePhone support. Given that I'm using Sculpt on PC already on a daily basis, being able to reliably make phone calls and perform secure messaging on a handheld device is the most intriguing prospect. I'd happily contribute to this undertaking as much as I can.
Given your track record with using and improving Goa, I would very much welcome your contribution towards the Goa-based app-SDK topic.
As already mentioned, I'd love to contribute to the PinePhone support. Yet, as I don't want to allocate myself on a critical path, I'm thinking about implementing some nice-to-have features. For instance, I'd like to have a go with LVGL to write a custom lock-screen component for the PinePhone. Moreover, I'm thinking about integrating support for the proximity/ambient-light sensor.
That sounds like fun. Remembering the posting by Will regarding the navigation topic, the compass might also come in mind.
I believe there are a few low-hanging fruits that could potentially improve the usability of Sculpt OS (predominantly on PC). For instance, it'd be great to have a file browser component that simplifies "opening" files, such as PDFs, audio files, etc., with a component which is registered for the particular file type. I think this would greatly improve the usability as I'd be able to download files with the native falkon browser and safely open them in a sandboxed viewer.
I'm sure that your idea would resonate very well with other Sculpt users longing for desktop-environment-like features. Personally, I actually often find myself in the situation you just described. Happily using the Falkon browser until I come across a PDF, which lures me back to using a Linux VM.
Ever since I started working with Genode, I had the idea in mind of using Genode for my home server. A first step would be to use it as a headless VM host. For monitoring and administration, it'd be useful to have a Leitzentrale to control other (headless) Genode devices. This could not only be useful for the server use case but for managing distributed Genode installations in general.
That's another interesting direction. As you just said, you are not short of ideas! Given your remark about your foreseeable time restrictions, we shouldn't put too many of these ideas on the road map though. They are probably best pursued in an open-ended light-hearted way without obligatory feelings.
Cheers, and my best wishes regarding the anticipated time restrictions.
Norman
Hi all,
On 12/26/22 16:58, Norman Feske wrote:
What about you?
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
2022 has been a year divided between the PinePhone and Intel's Tigerlake platform for me. On the PinePhone I enabled the basic Quectel modem support (power, access to the AT-command interface, LTE data support via USB) as well as the audio parts which consist of routing the speakers/microphone's audio data to/from the modem while also giving Genode access to the phones audio interface via I2S.
As for Tigerlake, I ported the Linux audio driver to Genode. This was necessary because newer HDA hardware now uses Sound Open Firmware (SoF) and requires ACPI in order to locate digital microphones which have become the norm. This all was not supported by our BSD based driver port (dde_bsd). Additionally, I enabled Intel Xe graphics cards (GEN12) within our native GPU multiplexer while also improving the performance and reliability of our Mesa library port.
Organizing the FOSDEM`22 microkernel devroom together with Martin Děcký has also been a joyful experience.
What directions are you most excited about?
For 2023 I am of course excited about our upcoming PinePhone field test, where we will use the phone on a daily basis. With the goal to make system updates easy I hope we will find a workflow where bugs can be fixed and features be added quickly in order to make the phone as reliable and fast as we aim for.
Which topics do you deem as interesting to explore yourself? Do you already happen to have rough plans about 2023?
Can it run Doom? Better question: Can it run Doom3?
I have ported the Doom3 dhewm3 [1] engine to Genode as a Goa [2] project [3] which I used as a meaningful 3D workload in order to test feature completeness and performance of our Intel based 3D stack. By now it runs at 60 FPS on newer Intel hardware, proofing this is a feasible way. Having dug more deeply into the 3D graphics area during the last few years, the Vulkan API comes to mind. The direction Vulkan is taking feels like the right way to go at the moment and I would like to enable support for Vulkan within our Mesa library port. I am still looking for a suitable workload, though.
Cheers,
Sebastian
[1] https://dhewm3.org [2] https://genodians.org/nfeske/2019-11-25-goa [3] https://github.com/ssumpf/doom3-playground
Hello Sebastian,
What directions are you most excited about?
For 2023 I am of course excited about our upcoming PinePhone field test, where we will use the phone on a daily basis. With the goal to make system updates easy I hope we will find a workflow where bugs can be fixed and features be added quickly in order to make the phone as reliable and fast as we aim for.
with the help of your persistence - thinking of the tricky audio routing, telephony, and mobile data connectivity - we already have come such a long way! Your statement gives me great confidence that Genode will eventually rock the PinePhone. :)
Which topics do you deem as interesting to explore yourself? Do you already happen to have rough plans about 2023?
Can it run Doom? Better question: Can it run Doom3?
I have ported the Doom3 dhewm3 [1] engine to Genode as a Goa [2] project [3] which I used as a meaningful 3D workload in order to test feature completeness and performance of our Intel based 3D stack. By now it runs at 60 FPS on newer Intel hardware, proofing this is a feasible way. Having dug more deeply into the 3D graphics area during the last few years, the Vulkan API comes to mind. The direction Vulkan is taking feels like the right way to go at the moment and I would like to enable support for Vulkan within our Mesa library port. I am still looking for a suitable workload, though.
Thanks for sharing the links to your Doom3 port.
The topics you mentioned are a welcome and natural continuation of the achievements of 2022. I see the confrontation of our GPU driver with heavy workloads as the ultimate proof for its fitness. Your anticipation of more modern GPU APIs fits nicely into the picture. I wonder how concrete your ideas are? Specifically, do you think that Vulkan should get a mention at the road map? If so, how should we frame it best?
Cheers Norman
Hi all,
On 12/26/22 4:58 PM, Norman Feske wrote:
What about you?
How did you perceive the Genode year 2022?
The first part of the year was dominated by project work and took me quite some time to re-port the Intel display driver based on the new dde_linux update. The re-testing across several hardware generations of notebooks and diverse monitors took its time. Further topics have been ACPI suspend&resume support for Genode@NOVA, Intel Gen12 P & E core detection, more CPU support (up to 256) and ongoing work on ACPI suspend and resume for Genode's base-hw kernel.
What directions are you most excited about?
Privately, most exciting was that the Seoul VMM is now enjoyable on a day-to-day basis, because of the way better integration with Sculpt thanks to the new Virtio model support for gpu, input and audio. With that I have an enjoyable and maintainable and easy and quick upgradable path for up-to-date Firefox and Thunderbird VMs on Sculpt. Beside that, I worked on several proof of concept topics to improve further life on Sculpt, e.g. dynamic CPU power & frequency adjustments and monitoring for Intel HWP (work notebook) and AMD p-states (home desktop), with which one can steer indirectly the fan noise. The other life improvement was the principle support of the Intel Display Driver (as proof of concept) to support beside the mirror mode also the extended mode, to have one large screen across several attached monitors.
Which topics do you deem as interesting to explore yourself? Do you already happen to have rough plans about 2023?
- Continuing support for ACPI suspend & resume to Genode' base-hw (x86_64) - Device & driver restart and/or resume support after ACPI wakeup -> precondition for advanced/useful scenarios like Sculpt OS (x86) - native Qemu port for cross architecture development - Further Seoul VMM cultivation - AMD display and GPU support - make some proof of concept work ready for Genode upstream
Cheers,
Alex.
Hi Alex,
thank you for sharing your perspective and interests.
Your engagement with the nitty-gritty details of PC platforms - like power management, Intel Gen12, and suspend/resume - is a crucial counterweight to the PinePhone theme. From your posting, I sense that these interests are intrinsic, which I find very fortunate.
What directions are you most excited about?
Privately, most exciting was that the Seoul VMM is now enjoyable on a day-to-day basis, because of the way better integration with Sculpt thanks to the new Virtio model support for gpu, input and audio. With that I have an enjoyable and maintainable and easy and quick upgradable path for up-to-date Firefox and Thunderbird VMs on Sculpt. Beside that, I worked on several proof of concept topics to improve further life on Sculpt, e.g. dynamic CPU power & frequency adjustments and monitoring for Intel HWP (work notebook) and AMD p-states (home desktop), with which one can steer indirectly the fan noise. The other life improvement was the principle support of the Intel Display Driver (as proof of concept) to support beside the mirror mode also the extended mode, to have one large screen across several attached monitors.
Which topics do you deem as interesting to explore yourself? Do you already happen to have rough plans about 2023?
- Continuing support for ACPI suspend & resume to Genode' base-hw (x86_64)
- Device & driver restart and/or resume support after ACPI wakeup ->
precondition for advanced/useful scenarios like Sculpt OS (x86)
- native Qemu port for cross architecture development
- Further Seoul VMM cultivation
- AMD display and GPU support
- make some proof of concept work ready for Genode upstream
This plan paints a very consistent picture, most of which I will happily reflect on the road map. Your Qemu ambition is a nice surprise. Count me in as a user. :)
Regarding the AMD display/GPU support, I'm hesitant when it comes to the official road map, for two reasons:
First, given that the Intel GPU support was a multi-year effort, I'm very much afraid of the potential fragmentation that would come by opening up a second line of development. I wonder, is this realistic at all without the focus granted by a well-funded project?
Second, I'm concerned about raising unrealistic public expectations. If we mention AMD on our official road map, observers may draw the wrong conclusion regarding the maturity of Genode on such hardware. Given the amount of quality assurance we spend on Intel (including the daily use of Sculpt on our laptops), I cannot see us achieving the same quality for AMD. In the worst case, it could become an expensive hobby that leaves people disappointed nevertheless.
So whereas I am fully supportive of further cultivating the use of Genode on AMD driven by curiosity, I personally want avoid an uncomfortable sense of responsibility about it. How do you think we should go about it?
Cheers Norman
On 1/5/23 12:15 PM, Norman Feske wrote:
Regarding the AMD display/GPU support, I'm hesitant when it comes to the official road map, for two reasons:
First, given that the Intel GPU support was a multi-year effort, I'm very much afraid of the potential fragmentation that would come by opening up a second line of development. I wonder, is this realistic at all without the focus granted by a well-funded project?
Second, I'm concerned about raising unrealistic public expectations. If we mention AMD on our official road map, observers may draw the wrong conclusion regarding the maturity of Genode on such hardware. Given the amount of quality assurance we spend on Intel (including the daily use of Sculpt on our laptops), I cannot see us achieving the same quality for AMD. In the worst case, it could become an expensive hobby that leaves people disappointed nevertheless.
So whereas I am fully supportive of further cultivating the use of Genode on AMD driven by curiosity, I personally want avoid an uncomfortable sense of responsibility about it. How do you think we should go about it?
I'm completely fine with not adding it to the official roadmap.
Hello,
How did you perceive the Genode year 2022? What directions are you most excited about?
One of the most profound developments was certainly the overall enablement of Sculpt on the PinePhone partly aided by the revitalized DDE Linux porting approach. Being able to provide a driver component in a manageable amount of time while focusing on the integration rather than spending time matching and mixing the pieces was an - I dare say - enjoyable experience.
So, from that perspective I am curious where we end up by the end of this year when it comes to the PinePhone.
Which topics do you deem as interesting to explore yourself? Do you already happen to have rough plans about 2023?
Well, besides doing project work, as most of my pet projects start on a whim it is hard to say if I come up with a new itch to scratch or finally bring some of the stuff upstream.
That being said, from the top of my head, taking advantage of modern I/O devices (multi-queue and multi-core interrupt handling in the NVMe driver) and extending support for the AMD systems I use at home are high up on my list.
Regards Josef
Hi Josef,
One of the most profound developments was certainly the overall enablement of Sculpt on the PinePhone partly aided by the revitalized DDE Linux porting approach. Being able to provide a driver component in a manageable amount of time while focusing on the integration rather than spending time matching and mixing the pieces was an - I dare say - enjoyable experience.
the last statement is everything I was hoping for. Given your first-hand experience with new DDE-Linux approach, this verdict means a lot to me.
This also makes me hopeful for the next round of an update of the DDE-Linux PC drivers, which should be definite part of our road map.
Well, besides doing project work, as most of my pet projects start on a whim it is hard to say if I come up with a new itch to scratch or finally bring some of the stuff upstream.
That being said, from the top of my head, taking advantage of modern I/O devices (multi-queue and multi-core interrupt handling in the NVMe driver) and extending support for the AMD systems I use at home are high up on my list.
Given your invaluable contribution to the PinePhone topic - speaking of camera, GPU, and audio - your further engagement in these areas would be very welcome as well.
The other two topics mentioned (NVMe and AMD) leave me a bit uncertain regarding the road map. I already expressed my weariness regarding AMD in my reply to Alex, and I must confess my lack the expertise about NVMe. How would you describe the practical benefits of the mentioned NVMe features for Genode users at large, for advertising them on the road map?
Cheers Norman
Hello Norman,
This also makes me hopeful for the next round of an update of the DDE-Linux PC drivers, which should be definite part of our road map.
We could also think about replacing iPXE with an DDE Linux-based driver component.
Given your invaluable contribution to the PinePhone topic - speaking of camera, GPU, and audio - your further engagement in these areas would be very welcome as well.
That is what I summarized under “project work” ☺.
Of course I have some basic ideas concering the PinePhone (like having an eBook reader component - an updated MuPDF would fit the bill, or having an audio player where I already tinkered with LVGL as an interface for the 'audio_player' component) but hopefully I will manage to work an these a long the line.
The other two topics mentioned (NVMe and AMD) leave me a bit uncertain regarding the road map. I already expressed my weariness regarding AMD in my reply to Alex, and I must confess my lack the expertise about NVMe.
AMD support is more on the personal side of things, so I do not expect it to appear on the roadmap.
How would you describe the practical benefits of the mentioned NVMe features for Genode users at large, for advertising them on the road map?
Again, it focuses on my personal use-case where I use multiple VMs that directly access the NVMe device (via 'part_block' of course) as storage backend (as such devices are able to make use of serveral I/O submission and completion queues and naturally feature MSI(-X) support one could exploit that for perfomance optimizations like minimizing cross-core IPC, handling clients in a disjunct fashion etc). Of course changing the driver component is only (arguebly) a small part as there are more parties involved (libc, VFS, kernel).
Maybe the over all theme could be “Optimized I/O for <inserthere>” as that would probably fall in line with the VFS renovations.
Regards Josef
Hi everyone,
On 12/26/22 16:58, Norman Feske wrote:
How did you perceive the Genode year 2022?
First of all, I want to take the opportunity to thank the team at Genode Labs for the warm welcome! I joined Genode Labs just before the 22.10 Sculpt OS release and I was quite impressed by the speed at which remaining blockers were resolved and how my colleagues still found time for onboarding and even development outside of the scope of the release.
Thanks to the maturity of the framework and the documentation I found it quite easy to get an initial development setup running. After stumbling into pitfalls and learning many tricks, I was able to take advantage of Genode's advanced development infrastructure (such as testing via Intel AMT) and I was pleased to discover that I could use Sculpt OS almost out of the box on an Intel Gen12 Lenovo Thinkpad X1 Nano. My focus in the past weeks has since been x86 virtualization for base-hw.
Outside of my own work, it appears to me that the migration to the generic platform API marks a major milestone, and that the attention to detail going into the Pinephone as a non-PC platform has led to new perspectives on the Genode OS framework.
What directions are you most excited about?
For the Genode ecosystem, I'm curious how the porting of applications to Sculpt on the Pinephone will pan out. On an architectural level, I'm excited to see in which direction the framework API will evolve. Finally, I hope that I will be able to scratch some remaining itches that I have with my Intel Gen12 development machine.
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
For the first part of the year, my focus will remain on bringing support for x86 virtualization to the base-hw kernel, as I see this as an important step to have a more integrated experience across processor architectures.
Regarding the Intel Gen12 work, I think that initially I will mostly benefit from the effort that Alex and Norman are already putting into the project, but I should at least be able help with testing. I would be interested in exploring ways to integrate power management into Genode.
As a side project, I would love to revive Genode's Rust port. Initially: - Make rustc build binaries that are linked against Genode's libc - Add support for building Rust applications (i.e. cargo) to Goa This will broaden the scope of existing applications that can be moved to Sculpt. As a moonshot goal, it would be interesting to explore what a native Genode Rust RPC API could look like, but first I still need to learn a lot more about the existing C++ API :)
Best wishes,
Ben
Hi Ben,
First of all, I want to take the opportunity to thank the team at Genode Labs for the warm welcome! I joined Genode Labs just before the 22.10 Sculpt OS release and I was quite impressed by the speed at which remaining blockers were resolved and how my colleagues still found time for onboarding and even development outside of the scope of the release.
thank you for these nice words! I assure you that the enjoyment is mutual. It was downright satisfying to see you embracing Sculpt on your laptop so quickly. After merely a week, I remember glancing over your shoulders in awe seeing how competently you administered the system, while effortlessly addressing remaining stumbling blocks when they appeared.
What directions are you most excited about?
For the Genode ecosystem, I'm curious how the porting of applications to Sculpt on the Pinephone will pan out. On an architectural level, I'm excited to see in which direction the framework API will evolve. Finally, I hope that I will be able to scratch some remaining itches that I have with my Intel Gen12 development machine.
Which topics do you deem as interesting to explore yourself?
Do you already happen to have rough plans about 2023?
For the first part of the year, my focus will remain on bringing support for x86 virtualization to the base-hw kernel, as I see this as an important step to have a more integrated experience across processor architectures.
With the virtualization topic, you jumped right into the deep end, and you stayed over water! For me personally, I'm longing for the prospect of running the PC version of Sculpt on the base-hw kernel. Your work directly contributes to that goal. I wonder, should we mention this prospect on the road map for this year, or would that be too eager?
As a side project, I would love to revive Genode's Rust port. Initially:
- Make rustc build binaries that are linked against Genode's libc
- Add support for building Rust applications (i.e. cargo) to Goa
This will broaden the scope of existing applications that can be moved to Sculpt.
That sounds about perfect to me. As hinted by the discussion so far, Goa will play an ever more important role. The integration of Rust support will certainly elevate it further. Is this a topic you'd like to see appearing at the official road map? If so, could you name an attainable sub goal like the port of a specific application, illustrating the scope you have in mind?
As a moonshot goal, it would be interesting to explore what a native Genode Rust RPC API could look like, but first I still need to learn a lot more about the existing C++ API :)
So I guess, we may leave the moon mission for 2024? ;-)
Cheers Norman
Hello Genode community,
On Mon, Dec 26, 2022 at 04:58:36PM +0100, Norman Feske wrote:
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
I can only affiliate myself to the previous mails that the Genode OS framework made a lot of progress in 2022, compared to the limited size of the developing community. Personally, I was much absorbed by the transformation of the low-level platform abstractions into a generic platform API, and the re-design of the Linux driver ports resp. its Genode backends. Thereby, I was much more involved into topics like PCI bus parsing, BIOS/UEFI handover, and other PC-related things than in the past. Which is not always fun, but anyway a broadening of mind. It was a pleasure for me to see how most re-newed driver ports, performed by my colleagues at Genode Labs and other community members, were done much faster now, because of the reconsidered porting approach.
What directions are you most excited about?
I'm most excited about new analysis tools, like the trace recorder, and the performance analysis that Christian, Norman, Johannes, and all others have done, e.g., to make some Pinephone scenarios possible. To me this is most interesting, because I want use more native Genode applications in my daily life, especially on lower-speed platforms like the MNT Reform2.
Which topics do you deem as interesting to explore yourself?
I would like to finalize the platform support for the MNT Reform 2. Now, I can drive most devices, and the virtualization solution on ARM has evolved too. Anyway, WIFI and audio support is still missing. Moreover, the virtualization solution will probably show some issues in daily life usage. Shared folder support is an open issue here. And I have to decide how to deal whith scenarios where I've used Virtualbox with USB device passthrough in the past (USB UART terminal, etc.)
Do you already happen to have rough plans about 2023?
A lot of interesting new projects and perspectives got already mentioned by others. Personally I wouldn't like to loose sight of the changes in progress that did not finished yet. For instance, we have already changed a number of driver ports to use the new porting approach and a recent original code base. But few drivers and protocol stacks are still missing, first and foremost the Linux IP/Stack (4.4.3), the USB client driver ports like HID and NIC, the IPXE NIC drivers with known restarting issues, USB host driver relicts for RPI1 and i.MX6, etc.. I feel responsible at least to take part in releasing from old burdens. Moreover, I would like to push the idea from Christian to bring the ACPI integration to an end by initially discovering these platform internals completely.
Regards Stefan
Hi Stefan,
I would like to finalize the platform support for the MNT Reform 2. Now, I can drive most devices, and the virtualization solution on ARM has evolved too. Anyway, WIFI and audio support is still missing. Moreover, the virtualization solution will probably show some issues in daily life usage. Shared folder support is an open issue here. And I have to decide how to deal whith scenarios where I've used Virtualbox with USB device passthrough in the past (USB UART terminal, etc.)
thank you for adding these two topics to the discussion. Personally, I'm eager to use Wifi and Audio on the MNT Reform for my Atari-related cross-development leisure activities.
The second point touches the broader issue of current usability limitations of Sculpt OS. Even though Sculpt works reliably, some work flows remain a bit clunky, especially the dynamic assignment of files and directories to components, which was mentioned by Johannes already. I sense that we can nicely improve the convenience of the Leitzentrale UI with a few non-disruptive changes. So for the road map, we should consider Sculpt OS usability as a worthwhile theme.
Personally I wouldn't like to loose sight of the changes in progress that did not finished yet. For instance, we have already changed a number of driver ports to use the new porting approach and a recent original code base. But few drivers and protocol stacks are still missing, first and foremost the Linux IP/Stack (4.4.3), the USB client driver ports like HID and NIC, the IPXE NIC drivers with known restarting issues, USB host driver relicts for RPI1 and i.MX6, etc.. I feel responsible at least to take part in releasing from old burdens.
I wholeheartedly agree. The sooner we get over these hurdles, the better for all of us. The mentioned update of lxIP may be related to the IPv6 interest expressed by Christian. That said, the maintenance nature of those topics makes them probably too technical to advertise them on the official road map.
Cheers Norman
The year 2023 will probably be the most Genode intensive year for me since forever. I have already shared my plans for doing 32bit emulation. Apart from this I would like to bring in a lot of features for my ,yet humble, RK3588 port. I have no other coding projects going on.
I will probably start with graphics and usb. The vendor uboot pokes both , so it should be quite easy to get something up based on what is setup in uboot.
Another thing that I mentioned . is to add a cpu reinitialisation for aarch64 targets.
I am very impressed by everything related to PinePhone so that is what I will remember most from 2022.
So 2023, the year of happy Genode hacking!
Cheers
Michael
Hi Michael,
On 1/4/23 23:25, Michael Grunditz wrote:
The year 2023 will probably be the most Genode intensive year for me since forever. I have already shared my plans for doing 32bit emulation. Apart from this I would like to bring in a lot of features for my ,yet humble, RK3588 port. I have no other coding projects going on.
I will probably start with graphics and usb. The vendor uboot pokes both , so it should be quite easy to get something up based on what is setup in uboot.
am I dreaming? Just one day after I wrote about my hope that developers outside the Genode core team may take on platform-porting work, you are sharing your plan. I am stoked! :)
I feel that the advertising of RK3588 support on the project roadmap might be a little bit inappropriate though. It may taint Genode hacking fun with a sense of pressure. How do you think?
Cheers Norman
On Fri, 6 Jan 2023 at 11:58, Norman Feske norman.feske@genode-labs.com wrote:
Hi Michael,
Hi Norman,
On 1/4/23 23:25, Michael Grunditz wrote:
The year 2023 will probably be the most Genode intensive year for me since forever. I have already shared my plans for doing 32bit emulation. Apart from this I would like to bring in a lot of features for my ,yet humble, RK3588 port. I have no other coding projects going on.
I will probably start with graphics and usb. The vendor uboot pokes both , so it should be quite easy to get something up based on what is setup in uboot.
am I dreaming? Just one day after I wrote about my hope that developers outside the Genode core team may take on platform-porting work, you are sharing your plan. I am stoked! :)
Well that's my trade :) Rockchip is nice if you want for example PinePhone Pro. (rk3399). I am motivated because I need Genode on a core that can't do aarch32 ( except maybe at EL0).
I feel that the advertising of RK3588 support on the project roadmap might be a little bit inappropriate though. It may taint Genode hacking fun with a sense of pressure. How do you think?
It should definitely not be in the project roadmap! I am not working for money. You can read about that here: http://mickens.blogspot.com/2016/11/it-is-time-to-throw-in-towel.html
Thanks, Michael
Here are my 5 cents regarding the Roadmap.
2022 ----
I am happy about how last year went out. With a lot of help from other Genodians, I could bring WireGuard to Genode and develop a concept for using a mobile HSM as trust anchor for WireGuard sessions. Then I implemented this concept for the SmartCard-HSM 4K with form factor USB-token and MicroSD card. As a side effect of this effort, Genode gained support for PKCS11-compatible USB tokens in general.
Besides this main topic of 2022, I kept on looking after the NIC router by fixing bugs and implementing feature requests. I was happy to receive so much helpful feedback and impulses regarding this "baby" of mine :) Furthermore, I had some minor projects like fixes for base-hw timing and scheduling, or extending the Black-Hole component.
2023 ----
These are my topics so far for the new year (roughly in order of priority):
* Base-hw multimedia performance * Optimizing the latency of prioritized threads on base-hw. * Adding support for tracing base-hw kernel threads via the TRACE session. * Re-structuring the base-hw scheduler in order to be easier to maintain and more performant with many priority levels.
* CBE block encryption * Cleaning up and consolidating the CBE-related VFS plugins. * Re-writing the CBE library in C++ in order to make it maintainable for the majority of Genode developers that are not into Ada/SPARK. * Fix known issues with the CBE resizing/rekeying mechanisms and making a plan for a self-resizing CBE. * Letting the File-Vault provide access to all features of the CBE.
* Networking * Bringing WireGuard to PinePhone Sculpt and integrating it as mobile VPN network back end. * Keeping up with the introduction of IPv6 in Genode and applying it for the NIC router. * Cleaning up the socket FS VFS-plugin.
Cheers, Martin
Hi Martin,
- Adding support for tracing base-hw kernel threads via the TRACE session.
This reminds me of PR #2317 [1]. I still have a deprecated branch lying around that might be of interest in this matter [2].
[1]: https://github.com/genodelabs/genode/pull/2317 [2]: https://github.com/jschlatow/genode/commits/2317_Trace_execution_time
Hey Johannes,
Wow, thats nice! Didn't have this on sight. As far as I can tell, this could give me a good boost with the project. Thanks for sharing :)
Cheers, Martin
On 05.01.23 12:13, Johannes Schlatow wrote:
Hi Martin,
- Adding support for tracing base-hw kernel threads via the TRACE session.
This reminds me of PR #2317 [1]. I still have a deprecated branch lying around that might be of interest in this matter [2].
Hi Martin,
thank you very much for sharing the super succinct list of topics you are taking into focus. Those items are perfectly consistent with the plans laid out so far. So they will appear almost verbatim at the road map.
These are my topics so far for the new year (roughly in order of priority):
- Base-hw multimedia performance
- Optimizing the latency of prioritized threads on base-hw.
- Adding support for tracing base-hw kernel threads via the TRACE session.
- Re-structuring the base-hw scheduler in order to be easier to maintain and more performant with many priority levels.
These improvements are extremely valuable for anything multimedia on the PinePhone. I perceive the combination of the massively complex Chromium engine with low-latency real-time workload (audio streaming) on this resource-constrained platform as the ultimate reality test for Genode and the base-hw kernel in particular. So your interest in kernel scheduling and tracing is much appreciated.
- CBE block encryption
- Cleaning up and consolidating the CBE-related VFS plugins.
- Re-writing the CBE library in C++ in order to make it maintainable for the majority of Genode developers that are not into Ada/SPARK.
- Fix known issues with the CBE resizing/rekeying mechanisms and making a plan for a self-resizing CBE.
- Letting the File-Vault provide access to all features of the CBE.
After CBE has received little attention for some time, I'm happy you are going to pick it up to eventually unleash its full potential. I'm looking forward to see the file vault taking its place as integrated feature of the mobile version of Sculpt.
- Networking
- Bringing WireGuard to PinePhone Sculpt and integrating it as mobile VPN network back end.
- Keeping up with the introduction of IPv6 in Genode and applying it for the NIC router.
- Cleaning up the socket FS VFS-plugin.
These points are all very much in line with Christian's ambitions.
Thanks again for the sensible plan. 2023 seems to become a fruitful year. ;-)
Cheers Norman
Hello Norman
On 12/26/22 16:58, Norman Feske wrote:
What about you?
Even though I hope that the thoughts above resonate with you, I'm pretty sure you have different perspectives. Please share them!
How did you perceive the Genode year 2022?
Most of my time working with Genode is related to my job. Privately i did build a test machine to run Genode on. The onboard Nic of this machine isn't supported by the ipxe network driver. Therefore I started porting the intel_igc driver from Linux. I hope I can finish this soon. The original plan was to port the AMD Radeon drivers (Framebuffer) from Linux. This was interrupted by the intel_igc driver thou.
What directions are you most excited about?
As I want to replace my main setup (Linux/KVM with virtual machines for different tasks) with a Genode system. I'm very interested in everything related to things that enable Genode to run on my main desktop machine.
Two points that Alex brought up caught my attention: - Extended multi monitor - support for AMD GPUs. This I have on my task list for some time now, unfortunately I never had time to do it.
An other point I'm interested in, is Genode on the PinePhone (mine should arrive on Friday). One thing I would want to use this for, is thedering in locations with no WiFi but LTE coverage. This can currently be done via the LAN port of the dock I think.
One point that is probably not that easy and further out, is the possibility to pass through a PCI device (Graphics cart) directly to a virtual machine.
Which topics do you deem as interesting to explore yourself? Do you already happen to have rough plans about 2023?
First of all I want to finish the port of the intel_igc driver.
Second, now that support to port libraries with Goa is nearing completion, I would like to use this to port neovim to Genode. Not that vim isn't enough to edit files. I would like to test out, what can be achieved that way.
If there is time left I would like to help in porting AMD Radeon drivers from Linux and test them.
Cheers Pirmin
Hello Pirmin,
Most of my time working with Genode is related to my job. Privately i did build a test machine to run Genode on. The onboard Nic of this machine isn't supported by the ipxe network driver. Therefore I started porting the intel_igc driver from Linux. I hope I can finish this soon. The original plan was to port the AMD Radeon drivers (Framebuffer) from Linux. This was interrupted by the intel_igc driver thou.
Having a Linux-based ethernet driver for PC would be nice as I could piggyback on that with a RTL8125 driver (as that is also unsupported in iPXE).
If there is time left I would like to help in porting AMD Radeon drivers from Linux and test them.
Coincidentally I have started to port the 'amdgpu' driver as well. As that is also a pet project done in my spare time, the time frame is fuzzy. That being said, of course it would be nice to collaborated - I will contact you off-list.
Regards Josef
Hello Josef
On 1/12/23 10:14, Josef Söntgen wrote:
Hello Pirmin,
Most of my time working with Genode is related to my job. Privately i did build a test machine to run Genode on. The onboard Nic of this machine isn't supported by the ipxe network driver. Therefore I started porting the intel_igc driver from Linux. I hope I can finish this soon. The original plan was to port the AMD Radeon drivers (Framebuffer) from Linux. This was interrupted by the intel_igc driver thou.
Having a Linux-based ethernet driver for PC would be nice as I could piggyback on that with a RTL8125 driver (as that is also unsupported in iPXE).
Currently it crashes during startup (something wen creating sockets). The current progress is at:
https://github.com/trimpim/genode-trimpim/tree/intel_igc
Regards Pirmin
Hello Pirmin,
Currently it crashes during startup (something wen creating sockets). The current progress is at:
I am wondering why you need sockets in the first place. I do neither own nor know Intel IGC devices so I might miss something obvious but they appear to be 2.5Gbs ethernet devices.
From a quick glance at your branch it looks like you used the 'pc_wifi_drv' as a template which I would not recommend (as it contains functionality not strictly needed for "simple" ethernet drivers, e.g. the socket call interface).
I think a more fitting blueprint would be the allwinner 'nic/emac' driver, chances are that you do not have to implement that many functions yourself.
Regards Josef
Hi Pirmin,
thanks a lot for your contribution to the road-map discussion!
What directions are you most excited about?
As I want to replace my main setup (Linux/KVM with virtual machines for different tasks) with a Genode system. I'm very interested in everything related to things that enable Genode to run on my main desktop machine.
Two points that Alex brought up caught my attention: - Extended multi monitor - support for AMD GPUs. This I have on my task list for some time now, unfortunately I never had time to do it.
The repeated interest in AMD during the road-map discussion cannot be dismissed. Even though I expressed my hesitation in my reply to Alex [1], I sense that the community interest in AMD deserves a mention on the official road map. My concerns can be addressed by presenting the topic as exploratory work.
[1] https://lists.genode.org/pipermail/users/2023-January/008218.html
An other point I'm interested in, is Genode on the PinePhone (mine should arrive on Friday). One thing I would want to use this for, is thedering in locations with no WiFi but LTE coverage. This can currently be done via the LAN port of the dock I think.
It is so nice to see your interest in the PinePhone topic as well. For your specifc use case, the Wifi driver would be the most obvious piece missing so far.
One point that is probably not that easy and further out, is the possibility to pass through a PCI device (Graphics cart) directly to a virtual machine.
Another interesting topic to explore. The biggest challenge will certainly be the coupling of the the guest OS with the IOMMU to allow the guest OS to issue DMA transfers. So VBox must somehow interoperate with the platform driver who is the single authority over DMA memory now. ...interesting food for thought.
Second, now that support to port libraries with Goa is nearing completion, I would like to use this to port neovim to Genode. Not that vim isn't enough to edit files. I would like to test out, what can be achieved that way.
I'm grateful for your intensive work on this topic. Even though I have not yet reviewed your latest version, I sense that the library support has matured enough to be upstreamed soon. Do you think that we should aspire featuring it it in Genode 23.02? If so, I'd commit to focus on the review/finishing touches during February.
Cheers Norman
Hello Norman
Sorry for the delay in my response.
For my work I'm currently debugging a very strange problem when upgrading to Genode 22.11 together with Jean-Adrien.
On 1/12/23 13:57, Norman Feske wrote:
Hi Pirmin,
Two points that Alex brought up caught my attention: - Extended multi monitor - support for AMD GPUs. This I have on my task list for some time now, unfortunately I never had time to do it.
The repeated interest in AMD during the road-map discussion cannot be dismissed. Even though I expressed my hesitation in my reply to Alex [1], I sense that the community interest in AMD deserves a mention on the official road map. My concerns can be addressed by presenting the topic as exploratory work.
[1] https://lists.genode.org/pipermail/users/2023-January/008218.html
I understand your hesitation to make any commitments to this. It may cause a lot of maintenance in the long run. With a small team one has to plan personal resources carefully.
An other point I'm interested in, is Genode on the PinePhone (mine should arrive on Friday). One thing I would want to use this for, is thedering in locations with no WiFi but LTE coverage. This can currently be done via the LAN port of the dock I think.
It is so nice to see your interest in the PinePhone topic as well. For your specifc use case, the Wifi driver would be the most obvious piece missing so far.
For testing purposes I already have a port of QMI (I could even do basic stuff with `qmicli`). If this may help in this regard I will un-burrow it and provide to upstream.
[...]
Second, now that support to port libraries with Goa is nearing completion, I would like to use this to port neovim to Genode. Not that vim isn't enough to edit files. I would like to test out, what can be achieved that way.
I'm grateful for your intensive work on this topic. Even though I have not yet reviewed your latest version, I sense that the library support has matured enough to be upstreamed soon. Do you think that we should aspire featuring it it in Genode 23.02? If so, I'd commit to focus on the review/finishing touches during February.
I would like to have it upstream by 23.02 if this is possible.
Regards Pirmin
Dear Genode Community,
thanks to everyone who participated in our brain-storming session about the road map for 2023! I greatly appreciated learning about all your different perspectives, ideas, interests, and plans.
Now I did my best to distill the discussion into a tangible plan for this year. Please find the updated project road map over here:
https://genode.org/about/road-map
Cheers Norman