thinking about virtual machines

Michael Korns
Sun, 27 Apr 1997 09:11:13 -0700


I believe that you are correct on many points.

First, we should develop an "LVM" standard "straw dog" and quickly develop
code around it. Again, our feeling is that a compelling defacto LVM will
gain immediate grass roots acceptance. Once we've got running code and can
distribute running LVM agents and applets across the net, support from a
number of disparate groups will materialize because the commercial
advantages will be obvious.

Second, we must start with the Java VM standard and extend (not alter it).
Our LVM must be a superset of  the Java VM. DO NOT FIGHT THEM, INCLUDE AND
SUPERCEDE THEM!! All the built up Java support will benefit us as well
because our LVM will run Java applets without alteration. All we need is
one binding of our LVM or JIT translator of our VM which runs Java applets

Third, I believe that I can approach the Disney Imagineering group (Ted
Kaehler, Allan Kay, Marvin Minsky) to see what additions they would like
made to our LVM to support Smalltalk. Allan's team has a freeware Smalltalk
system available on the Web. We are currently tracking down the IBM UVM
people. Does anyone know who they are? My company has a VM at the core of
AgentBase, we can see what instructions are of value there. We can examine
other CLOS and Scheme systems to determine how quickly such code could be
converted to a proposed LVM and how simple we could make the LVM without
putting Java, Lisp, ML, etc. at a disadvantage.

Next, we start porting code to the new LVM. We'll port AgentBase as a
persistence offering. We can port Allan's freeware Smalltalk system to our
LVM. We can being building our LispOS to our LVM. And, AS SOON AS WE CAN we
should show agents and applets (using our LVM) distributed across the Web.
We could provide a WindowsNT LVM binding which allowed automatic ActiveX
distribution of our LVM upon demand from distributed Web pages.

Only at the point that we have code performing distributed LVM computation,
in Java and at least two other AI languages, do we hold a press conference
and approach the standards community.

Think of the potential! We could have FluxOS dynamically distributed across
Web computers (each node running our core LVM) treating the entire Web as a
giant MPP configuration. We could have AgentBase agents dynamically
distributed across Web computers (each node running our core LVM) treating
the entire Web as one big search space. We could provide would-be
commercial franchisees with the opportunity to write AI (or Java) applets
dynamically distributed across the entire Web, regardless of the choice of
Lisp, Smalltalk, ML, Java, etc. We would get immediate acceptance. 

It can be done quickly (say six months to critical code mass). It is up to
the LispOS community to decide.

> From: Richard Coleman <>
> To:
> Subject: thinking about virtual machines
> Date: Saturday, April 26, 1997 11:39 PM
> ok... people keep talking about the possibility of developing
> a new virtual machine for lisp.  Let's follow this line of
> reasoning for the moment (indulge me...).
> I'll dub this new mythical standard virtual machine as LVM.
> Now, a big problem is the process of developing a "standard".
> We all know this is a long and frustrating process.  Once you are
> done, this is no guarantee that anyone will be interested in the
> results.
> While waiting on this standard to develop, this project would
> lose its momentum.  People need to see progress (i.e. running code)
> to stay interested.  So how could we do this and keep the momentum up?
> Maybe a two tier attack, where one group develops the LVM standard
> and layers it on some hardware (using Flux toolkit for example) and
> the second group starts with a chosen lisp implementation and start
> adding all the system applications that a stand-alone lispOS would
> require.
> Now assuming we tried to develop such a standard...
> 1) Where to start?  There has been plenty of virtual machines
>    developed.  What should be choose as a base (LVM 0.0)?
> 2) What is wrong with the current virtual machines?  What does the
>    java VM do wrong?  I heard someone mention that IBM has announced a
>    new virtual machine architecture (UVM for universal virtual machine).
>    Does anyone know anything about this?
> 3) What lisp implementations use a virtual machine architecture that
>    we could retarget to LVM.
> Now I believe this using this method has merit.  But I need to be
> convinced it can be accomplished.
> Richard Coleman