Fork of maxima for make it more embeddable.



Richard Fateman <fateman at eecs.berkeley.edu> wrote:

   The most appealing solution to these problems is to run some kind of
   virtual machine.

I have some experience with the issue of multiple users in a single Lisp
execution.

As a practical matter, it cannot be made secure such that one hostile
user is prevented from affecting other users, or harming the Lisp
execution itself.  I could discuss detaild, but instead if anyone
provided me with a multi-user maxima that isn't restricted in ways that
limit maima, I'm sure I could crack it.

If the goal is to create a server that can support multiple remote users
to use Maxima, running each user in a sepaate VM isn't efficient.
Duplicate vm's require duplicating memory for the entire OS.  The VM,
properly configured, protects your local machine against access or
attacks from a remote user.  But if you need to protect users from one
another, that isn't enough.  You should instead launch a separate
Maxina/Lisp execution for each connecting user, within a single vm, and
you should use permissions and chroot to ensure that each maxima
execution cannot harm the vm.  Even that is hard, but probably
achievable.