[movitz-devel] Re: implementing the process abstraction in movitz

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Sun Nov 21 17:58:20 UTC 2004


Muli Ben-Yehuda <mulix at mulix.org> writes:

> First of all, I think movitz is very cool. I've been thinking for a
> long time of writing a lisp OS, and was very happy to stumble up on
> movitz. I am now considering implementing the process abstraction
> (namely, fork(), wait(), some variant of exec(), and context
> switching) in movitz, as an OS project, along the lines of the
> attached proposal. [..]

Hi (again), sounds like an interesting project to me. I think the
first thing you need to make clear for yourself is the exact nature of
the fork() etc. That is, the normal unix fork() sets up a new
address-space etc and in principle shares nothing with anyone else
(except perhaps by copy-on-write semantics) and communicates purely
through system-calls (in various forms). Is this what you want to do?
In theory you could quite literally implement unix fork() this way, in
the sense that if you set up an address-space, exception handlers, an
elf-loader etc and emulate e.g. the linux system-calls, then you
should be able to run linux processes this way (although I suppose
it'll be a substantial job, reimplementing the linux kernel..) Or
something more lispy with a single-address-space system where you
share e.g. the common-lisp package (with symbols, functions, etc)
between the processes?

Btw. I expect to implement some lightweight threading stuff in Movitz
soon, I expect to need it for the thesis I'm working on.

-- 
Frode Vatvedt Fjeld





More information about the movitz-devel mailing list