------ Original message------From: Sam Crow Date: Thu, Dec 29, 2022 10:42 AMTo: users@lists.genode.org;Cc: Subject:Re: Roadmap 2023 Hello Genodians,I'd like to reiterate the mobile emphasis without tracking features. My spare SSD is occupied by Haiku release1 beta4 and I see little chance of that being evicted in favor of another desktop OS. My PinePhone would be a much better target, however. I bought it specifically to see how secure a mobile platform could be! Genode was one of the mobile targets I was hoping to try.My primary SSD on my desktop (a 3rd-gen i7), my laptop (a PineBook Pro) and my PinePhone (3GB RAM, 32GB internal storage) are presently all running Manjaro Linux. If I could evict Manjaro from all 3 places, that would be a good year for me. Despite liking the desktop experience, Manjaro has no privacy features that I'm aware of. Microkernels that keep every driver in user-mode and don't allow drivers to "call home" to their manufacturer or their manufacturer's government would be an ideal privacy feature. Binary blobs should be disallowed from such behavior.Finally, I foresee an involvement with WebAssembly to be a replacement for most binary blobs in a short period of time and as soon as that takes place, address sanitizers and other sandboxing technologies could be complimentary to the AGPL license strategy. I have already submitted some patches to the W2C2 project on GitHub at https://github.com/turbolent/w2c2 and would like to hear your thoughts on the subject of using bytecodes to sandbox drivers and other binary blobs.Note: presently drivers cannot be represented in the WASI standard APIs so another API variant will be needed. There is a discussion started on the subject at https://github.com/WebAssembly/WASI/discussions/501#discussioncomment-418870... if interested.Thanks for your time and efforts,Samuel D. Crow
Hi Samuel,
My PinePhone would be a much better target, however. I bought it specifically to see how secure a mobile platform could be! Genode was one of the mobile targets I was hoping to try.
that is good to know. So I'm hoping for feedback once we put out the first images. ;-)
Note: presently drivers cannot be represented in the WASI standard APIs so another API variant will be needed.
The possible relation between WebAssembly and Genode regarding drivers admittedly goes over my head. When it comes to device drivers, we explored so many different directions already. But the lesson I learned from the past two years is that our current method of using Linux drivers as Genode components has been the most rewarding route so far. Even though other directions remain interesting from a research perspective, I am mostly after tangible outcomes when it comes to the official project road map.
Cheers Norman
Thanks for your reply, Norman!
The reason I thought of using WebAssembly modules as a distribution method was that Linux graphics drivers are seldom as independent of binary blobs as other Linux drivers. One NVidia card I had had become incompatible with the Linux kernel during an upgrade despite having worked well for years. Linux has an unstable ABI so the binary blobs within the closed-source driver didn't have the correct offsets for the kernel modules after the version 5 kernel update.
Recently, NVidia started embedding RISC-V controllers into their cards so that the drivers can be implemented as a simple message passing driver instead of the elaborate driver designs of the past. This makes their pledges of making closed source drivers on Linux a thing of the past, a reasonable thing to expect.
I hope that other drivers can become pure open-source as well. With network adapters, I'm not so hopeful. That's why I think that the binary blobs used by the network adapter companies are WebAssembly outside the browser. It might not happen overnight but as WebAssembly compilers become better, perhaps binary blobs will become a thing of the past or at least use a common bytecode like WebAssembly.
Maybe next year the backlash against binary blobs will become sufficient to adopt new standards. Until then, I'm looking forward to a Genode PinePhone.
Sincerely,
Samuel D. Crow
Hi Samuel,
The reason I thought of using WebAssembly modules as a distribution method was that Linux graphics drivers are seldom as independent of binary blobs as other Linux drivers. One NVidia card I had had become incompatible with the Linux kernel during an upgrade despite having worked well for years. Linux has an unstable ABI so the binary blobs within the closed-source driver didn't have the correct offsets for the kernel modules after the version 5 kernel update.
Recently, NVidia started embedding RISC-V controllers into their cards so that the drivers can be implemented as a simple message passing driver instead of the elaborate driver designs of the past. This makes their pledges of making closed source drivers on Linux a thing of the past, a reasonable thing to expect.
I hope that other drivers can become pure open-source as well. With network adapters, I'm not so hopeful. That's why I think that the binary blobs used by the network adapter companies are WebAssembly outside the browser. It might not happen overnight but as WebAssembly compilers become better, perhaps binary blobs will become a thing of the past or at least use a common bytecode like WebAssembly.
Maybe next year the backlash against binary blobs will become sufficient to adopt new standards. Until then, I'm looking forward to a Genode PinePhone.
thank you for having taken the time to present the broader picture. Your motivation becomes much more clear now.
When it comes to the road map for 2023 - covering a time horizon of one year - these consideration may still remain far out of our view. When prioritizing how we spend our next 12 months, I think that anticipating strategic moves of hardware vendors is a risky bet.
Cheers Norman