Hi Ben,
How reasonable would it be to make genode binaries (aside from core and init) compatible across different kernels? It seems that putting kernel-specific code into a shared library would work. How would this affect performance?
The topic has been discussed before:
http://sourceforge.net/p/genode/mailman/message/30417127/
Binary compatibility across different kernels is not entirely unreasonable. We are actually working in this direction to make the future distribution of binary packages manageable. Instead of providing packages for each combination of kernel and architecture, we would need to provide packages per architecture only.
Even though we are still not near to reach this goal yet, we are taking steps towards it. E.g., the development of our new dynamic linker (that will be part of the next release) was motivated by that.
There are two non-trivial remaining points that still must be addressed:
* The kernel-specific headers in the respective 'base-<kernel>/include/' directories have to be generalized. This is not easy because some of them define kernel-specific types (e.g., how a capability is represented) that are used by the generic headers in 'base/include'.
* The build system must be enhanced to support the build of kernel- specific and kernel-agnostic parts in different locations, yet integrate both into one view at the system-integration step. This is an architectural change of the build system. The challenge here is to preserve the robustness and convenience of the current work flow.
Cheers Norman