Apparently it will take some time until we figure out how to run the collaboration between JNode and JikesRVM.
For me it was really good news while talking to Ian at FOSDEM that actually there is someone on the JikesRVM side really interested in this with some support in the wider JikesRVM community. So shortly after I arrived home today from FOSDEM + business trip it occured to me that for the first time I checked out the JikesRVM sources from SVN and subscribed to the JikesRVM issue tracker. I wonder what the next steps will be...
Probably a few thoughts about the involved projects and the general context of the collaboration...
JikesRVM: (from the website)
"Jikes RVM (Research Virtual Machine) provides a flexible open testbed to prototype virtual machine technologies and experiment with a large variety of design alternatives."
JNode: (original formulation by the funder)
"JNode is a simple to use & install Java operating system for personal use. It runs on modern devices. Any Java application will run on it, fast & secure! JNode is open source and uses the LGPL license."
Despite these diverging goals the two have in common the choice of Java based implementation and they appear to be a good match in the sense that various results of the JikesRVM research could find immediate application in JNode much easier than in any other JVM not implemented in Java.
JNode has a wider scope as a system since a Java virtual machine is only one component of the operating system, while JikesRVM has a wider scope in its variety of potential Java virtual machine technologies since probably JNode will ever require only a subset of that, those suitable for the case where a Java based Java virtual machine is thightly integrated with a Java based operating system and as such the virtual machine will not ever need to be ported to an other operating system. By mission, JikesRVM targets a small part of the Java community while JNode intends to be suitable for a large variety of users, applictations and real world usecases.
Having in mind these preliminaries we can imagine several levels of collaboration:
1. Sharing only ideas and people, not code.
Tried and tested design patters, techniques, algorithms developed within the realm of JikesRVM could find their way into JNode in JNode speciffic implementations probably by their original authors while taking into account the specific needs of Jnode regarding stability, standards conformance and robustnes in real world usecases.
2. Defining common interfaces for various JVM services and programing to those interfaces in two different codebases. Then varous JikesRVM components could be used as JNode plugins in various JNode configurations and usecases.
3. Creating a JNode specific branch of JikesRVM and gradually replacing the current JNode VM with it.
It might be also possible to selectively apply these alternatives or a combination of them to various subsystems of JNode and JikesRVM.
In my opinion what really matters is to see that a collaboration does really makes sense, each party can see an advantage in working together, sharing ideas, expertise code and finally to work together on licensing and legal issues so that the final result of our work will not create legal issues to any party or to whoever wants to use it.