Re: Virtual Machines, JVM in kernel, hot-swapped kernel

Tomasz Rola (rtomek@cis.com.pl)
Sun, 30 Aug 1998 21:30:39 +0200 (CEST)


On Thu, 27 Aug 1998, Brandon S. Allbery KF8NH wrote:

> In message <Pine.LNX.3.96.980825024808.12083D-100000@pioneer>, Tomasz Rola
> writ
> es:
> +-----
> | Well, perhaps I want it :-) right into the kernel. Don't take me too
> | serious, I'm very stubborn :-).
> |
> | I have thought about some special kind of JVM. Its purpose wouldn't be to
> | serve user-level programs but rather to experiment with some concepts from
> | Operating Systems field, like distributed kernel. I can't imagime anything
> +--->8
>
> Actually, at one point I thought about a JVM (or other bytecode interpreter,
> e.g. iconx) in the kernel for the purpose of loadable packet filters. For
> example, one could load a filter on port 80 which inspected URLs, or whip up
> a masquerade module for some new streaming audio/videoconferencing/etc.
> protocol without having to build a full kernel module. One advantage would
> be that, done right, you wouldn't be able to knock over the kernel with it
> even if the filter were buggy. (Very restricted set of operations.)

I found the other use for it, perhaps. There might be some
security-oriented monitor. It should be located on the kernel level. If it
were on the library level, hacker could cheat it and get straight to the
kernel. But (s)he couldn't have cheated the kernel :-). Of course, it
might be written in anything, especially in C.

The other use of such concept might be making clusters of workstations
working under different OSes, like Linux, FreeBSD etc., especially
Unix-like OSes.

I think, this idea has more common with portable assembler then Java.
Because, at least at the beginning, I would have to strip it of garbage
collection, exceptions and threads just to make it all stable. So, if I
used Java bytecode for this, it would have to be extended to enable memory
management, and it would become more similar to C++ in this (with new and
delete, and destructors or something functionally equal). With that, I
could still have big trouble with putting OO code into non-OO kernel, I
suppose. So, maybe I will rather do something like very primitive
pseudo-assembler for imagined machine with a stack, for example. However,
using Java would be more interesting. I have to rethink it all.

bye
T.

--
** Tomasz Rola          I am going to forward myself to /dev/null  **
**                      To check if data is really discarded there **
**                      Or is it a gate to another Universe...     **
** mailto:rtomek@cis.com.pl ,    http://www.cis.com.pl             **

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html