On Fri, Jul 15, 2011 at 9:31 PM, Maciej Fijalkowski <fij...@gmail.com> wrote:
> On Fri, Jul 15, 2011 at 9:05 PM, VanL <van.lindb...@gmail.com> wrote:
>> On 7/15/2011 1:50 PM, Maciej Fijalkowski wrote:
>>>
>>> By design, a single process thing is slightly less secure. If you say
>>> find a way to corrupt random memory, you can modify the other process,
>>> it's still only very slightly though. The sandboxing approach should
>>> work quite nicely, the hard part would be to get multiple interpreters
>>> running in a single process. It's quite a bit of work, but I would not
>>> expect it to be overly hard to do. Requires quite a bit of pypy
>>> knowledge though.
>>>
>>
>> Could you describe a little bit more about "quite a bit of work, but...
>> [not] overly hard to do"? What would it take, and where would someone get
>> started?
>
> Heh, I was kind of hoping to avoid having to answer that :-)
>
> You essentially need two things in order to achieve it:
>
> * have two interpreters in one executable (provided sandboxes don't
> have to be separated from each other), one constructed with sandboxing
> options the other without. This is something that I would describe as
> "run around and make it work", but probably starting with having
> either two copies of functions or just two copies of object spaces.
>
> * change the sandboxing transformation to call some RPython-level API
> instead of read/write standard output. Also provide the other end of
> this API. As of now the transformation walks around all graphs and
> changes external calls into special calls that get rendered as
> standard output write and standard input read.
>
> I know, this is kind of hand-waving what has to be done, I would
> probably start with having two interpreters in one executable,
> probably by having two object spaces.
>
> Cheers,
> fijal
>

And if I may ask, what are you trying to achieve?

Cheers,
fijal
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to