Java Driver Framework for other operating systems (similar to OpenFirmware)
Submitted by fasten on Sun, 03/07/2004 - 23:36.
Just a thought: The driver framework of jnode is an excellent replacement for OpenFirmware's somewhat broken forth driver system. Has anybody considered to
add jnode's driver framework to, let's say, Linux and see if it catches on?
It may not be the best choice for all purposes but it would allow hardware vendors to distribute usable drivers for all operating systems with a jnode driver subsystem, independent of architecture and os vendor.
- Login to post comments
Good idea... various issues
Hi, its an idea which has occured to me before. Its a somewhat daunting task because of the amount of wrapper software that would need to be written. We'd also need an in-kernel JVM to run the Java Driver. If you want to take on the task feel free. It would be nice to be able to test JNode drivers under Linux and no reason theoretically why it can't be done. My thoughts however is that it would be such a tough task, I dont know how the Linux driver infrastructure works that the time atm would be better spent elsewhere. Perhaps porting a few of the popular hardware drivers from Linux to JNode. Perhaps a better idea would be a way to run Linux drivers under Jnode. If we had a way to run native code in Jnode safely, its own process space say we might have a way to do that. The problem is of course all the kernel resources a Linux driver may use.
OSKit Device Driver (OS Environment) Framework
The OSKit Device Driver (OS Environment) Framework might be
a good starting point to get a lot of Linux/BSD drivers in JNode
and to get an established API to device drivers, which could, in turn,
be used to use JNode drivers like OpenFirmware drivers (see my previous post):
http://www.cs.utah.edu/flux/oskit/html/oskit-wwwch8.html#x15-4190008.1
Linux kernel drivers in jnode
Methinks you'd just use the Linux kernel in a minimum configuration, leaving out everything the jnode kernel provides and run the whole of jnode in kernelmode linux, if you really want to have the linux drivers.
That's a very convenient method to get all of the required driver framework and shouldn't slow down jnode too much. Maybe the embeddable version of Linux would come with an even smaller footprint, but I'm not sure it's compatible with kernelmode linux and comes with all the drivers you might want. I guess not. GNU Hurd also comes with a subset of Linux drivers. Jnode could act as a Java personality on top of Hurd. Good for debugging and you'd have the best of both worlds: Both personalities can be launched when needed but could run independently.
Different project
I think having linux driver in a java Os should be done in a different project. JNode is a java OS, written fully in Java.
Ewout
In-kernel VM for Linux
Is the in-kernel VM teaseme (http://teaseme.sourceforge.net/)
suitable for the job?
If not it might be easy to get the project started with the GCJ virtual machine running in kernel mode linux: http://freshmeat.net/projects/kml.