Subject: Fork of maxima for make it more embeddable.
From: Steve Haflich
Date: Thu, 22 Dec 2011 18:01:59 -0800
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.