JavaLobby and JavaOS

roy at
Sat Oct 11 10:25:05 PDT 1997

A microkernel is probably the worst possible fit for a 
"pure Java OS" (something that supports only Java)
if you are going to maintain the microkernel view of
things and run Kaffe as a server or subsystem.

Due to Java's security and safety, a conventional OS
carries a lot of extra baggage that is unnecessary for
a "pure Java OS".
The objective of microkernels is to isolate and
optimize mechanism in a small core, while providing
for multiple policies in user space. But with a 
"pure Java OS" this is unnecessary, since all you
need to support is Java. Furthermore, with a verifier
to assist, you may not need a user/kernel distinction
any more.

Instead what one probably should do is link Kaffe directly
into the kernel of some free OS (preferably real-time),
then throw out all the unnecessary stuff (user-kernel
distinction, processes, etc...)

A number of commercial and research OS vendors have used
this approach (including Chorus and the Univ. of Utah. Except
that neither is real-time, which may be important for us.)
i.e. to turning a conventional OS into a "pure java OS"
involves mostly paring stuff away.

Come to think of it, a micro-kernel may be a good starting
point if we were to link Kaffe directly into it (instead of
making it a "single server" or a "subsystem"), then turn
the non-Kaffe portions into a "pico-kernel" :-)

It may be that single-address space OSs are the best
match for Java. Perhaps we should look at Opal. Or a
kernel-extensible OS like Spin. These would probably
a much better starting point than Mach or Hurd.

By the way, I think Next is based on Mach 2.5, which is
not a microkernel. Neither is the current release of NT.


More information about the kaffe mailing list