Hello everyone,
I don't have suggestions for devs, but I would like to share my goals for 2015 and solicit some suggestions on how to prioritize my own work.
This summer I started converting the Make build system to a Nix build system, which seemed dubious at times to even me, but I have reached a point where I think things will get exciting.
I would like to emphasize that this isn't a criticism of the current system, I just find the properties of Nix very interesting and this is an effort to fold the Genode into the way I have been composing my legacy OS. I have not been modifying any Genode code, and I have no intentions of writing new components without Make rules.
I have a few directions that I could and would like to go with this, and I'd like to know which path of investigation sounds most interesting to any of you.
* Formally benchmark Nix performance against Make.
* Generate binary packages using existing Nix continuous integration tools and Make rules for fetching them.
* Adapt the Nix packages collection to build its existing packages for Noux. This similar to how packages may be built for Darwin or BSD, Â Â I would abort converting Make rules for anything not required for bootstrapping a Noux toolchain.
* Work towards running virtualizing instances of NixOS, building the Genode host and the NixOS guest concurrently.
I have had success related to virtualizing, I have managed to integrate my build expressions with the NixOS system expression on my host machine, installing a NOVA scenario to my boot partition and GRUB menu. One could obviously do this with a set of scripts calling make, but in this way the Genode components are treated as system dependencies just as my linux host would treat its system services.
I think the next logical step in this line of thought would be to build my Linux host system as an image optimized for Seoul, but I am traveling at the moment and virtualizing Seoul scenarios has been slow going with only a single laptop.
Emery
(I apologize if this email does not thread properly.)[1]
Hi Emery,
thank you for sharing your plans! Your exploration of combining Genode with Nix is very interesting. It is great to learn that you will go further in this direction. You asked about feedback, so here is mine. :-)
- Formally benchmark Nix performance against Make.
Personally, I do not perceive the build performance as a pressing issue (apart from Qt5 + Webkit). Hence, I would not spend too much effort on benchmarking but rather focus on practical aspects.
- Generate binary packages using existing Nix continuous integration tools and Make rules for fetching them.
This is very interesting, in particular in the light of Wolfgang's email. I still wonder what a Genode "package" actually is. Honestly, I cannot answer this question right away. I hope that throughout 2015, it will become more clear. Your line of work could be a valuable contribution here.
- Adapt the Nix packages collection to build its existing packages for Noux. This similar to how packages may be built for Darwin or BSD, I would abort converting Make rules for anything not required for bootstrapping a Noux toolchain.
Even though that sounds intriguing at the first glance, I cannot say that I regard the porting of Noux packages as a big hurdle right now. So far, my attempts to port software packages that use the GNU build system went actually fairly smooth. Personally, I am not so much interested in a big volume of packages. In my day to day work, only a few packages are actually used (the most significant gap in this respect is a proper LaTeX environment). While porting software to Noux, the most prominent stumbling blocks use to be functionalities missing from our C runtime (e.g., if a program relies on Unix signals), performance bottlenecks, or limitations of our terminal (e.g., lack of support for ANSI pseudo graphics). None of those issues will go away with the switch of Noux packages to Nix.
- Work towards running virtualizing instances of NixOS, building the Genode host and the NixOS guest concurrently.
I have had success related to virtualizing, I have managed to integrate my build expressions with the NixOS system expression on my host machine, installing a NOVA scenario to my boot partition and GRUB menu. One could obviously do this with a set of scripts calling make, but in this way the Genode components are treated as system dependencies just as my linux host would treat its system services.
I think the next logical step in this line of thought would be to build my Linux host system as an image optimized for Seoul, but I am traveling at the moment and virtualizing Seoul scenarios has been slow going with only a single laptop.
That looks interesting and very much in line with the plans I laid out in my initial posting. But you approach the idea from a different angle. I am curious where this development is heading.
As another idea, have you considered to port Nix to Noux? That would further blur the line between NixOS and Genode.
Cheers Norman
That sounds good. I have one suggestion to add to the roadmap: Nitpicker windows should be selectable by something other than the window decorations. It's a small issue, but always having to click on the tops of windows to select them is rather frustrating. On Dec 30, 2014 5:23 AM, "Norman Feske" <norman.feske@...1...> wrote:
Hi Emery,
thank you for sharing your plans! Your exploration of combining Genode with Nix is very interesting. It is great to learn that you will go further in this direction. You asked about feedback, so here is mine. :-)
- Formally benchmark Nix performance against Make.
Personally, I do not perceive the build performance as a pressing issue (apart from Qt5 + Webkit). Hence, I would not spend too much effort on benchmarking but rather focus on practical aspects.
- Generate binary packages using existing Nix continuous integration
tools
and Make rules for fetching them.
This is very interesting, in particular in the light of Wolfgang's email. I still wonder what a Genode "package" actually is. Honestly, I cannot answer this question right away. I hope that throughout 2015, it will become more clear. Your line of work could be a valuable contribution here.
- Adapt the Nix packages collection to build its existing packages for Noux. This similar to how packages may be built for Darwin or BSD, I would abort converting Make rules for anything not required for bootstrapping a Noux toolchain.
Even though that sounds intriguing at the first glance, I cannot say that I regard the porting of Noux packages as a big hurdle right now. So far, my attempts to port software packages that use the GNU build system went actually fairly smooth. Personally, I am not so much interested in a big volume of packages. In my day to day work, only a few packages are actually used (the most significant gap in this respect is a proper LaTeX environment). While porting software to Noux, the most prominent stumbling blocks use to be functionalities missing from our C runtime (e.g., if a program relies on Unix signals), performance bottlenecks, or limitations of our terminal (e.g., lack of support for ANSI pseudo graphics). None of those issues will go away with the switch of Noux packages to Nix.
- Work towards running virtualizing instances of NixOS, building the
Genode
host and the NixOS guest concurrently.
I have had success related to virtualizing, I have managed to integrate
my
build expressions with the NixOS system expression on my host machine, installing a NOVA scenario to my boot partition and GRUB menu. One could obviously do this with a set of scripts calling make, but in this way the Genode components are treated as system dependencies just as my linux
host
would treat its system services.
I think the next logical step in this line of thought would be to build
my
Linux host system as an image optimized for Seoul, but I am traveling at the moment and virtualizing Seoul scenarios has been slow going with
only a
single laptop.
That looks interesting and very much in line with the plans I laid out in my initial posting. But you approach the idea from a different angle. I am curious where this development is heading.
As another idea, have you considered to port Nix to Noux? That would further blur the line between NixOS and Genode.
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Ben,
On 12/30/2014 05:40 PM, Nobody III wrote:
That sounds good. I have one suggestion to add to the roadmap: Nitpicker windows should be selectable by something other than the window decorations. It's a small issue, but always having to click on the tops of windows to select them is rather frustrating.
this minor technicality seems to be a bit besides the point of the roadmap discussion, don't you agree? How about simply opening an issue at our issue tracker?
https://github.com/genodelabs/genode/issues
Cheers Norman
Sorry. I'll do that. On Dec 30, 2014 11:32 AM, "Norman Feske" <norman.feske@...1...> wrote:
Hi Ben,
On 12/30/2014 05:40 PM, Nobody III wrote:
That sounds good. I have one suggestion to add to the roadmap: Nitpicker windows should be selectable by something other than the window decorations. It's a small issue, but always having to click on the tops of windows to select them is rather frustrating.
this minor technicality seems to be a bit besides the point of the roadmap discussion, don't you agree? How about simply opening an issue at our issue tracker?
https://github.com/genodelabs/genode/issues
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main