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

Frode Vatvedt Fjeld ffjeld at common-lisp.net
Tue Nov 23 13:39:38 UTC 2004

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

> The ultimate term goal is a full POSIX / Linux emulation layer for
> movitz that would allow you to run unmodified Linux binaries. Since
> this is a very big undertaking, my short term goals are the
> following basic operations
> - fork - set up a new context. Open questions are whether it supports
> seperate address spaces (process or threads?) and whether it supports
> memory protections (user context vs. kernel context).

I think if your goal really is linux emulation, then you really need
to set up an address-space with paging etc. Make a (defclass
linux-process ..) that plays abuot the same role as the linux "proc"
structure (or something like that, I don't really remember its
name..), and your fork must essentially do the same as linux fork
does. Although I'd model it in terms of some initialization method on
linux-process, where fork initializes an instance as a copy of another
process. I'd start off by making some accessors to the paging
hardware, and build on that.

> Could you elaborate on what you have in mind? I wouldn't want to
> duplicate effort.

I don't think you need to worry much about that. What I have in mind
is just some simple form of threads running in more or less the same
context as everything else.

Btw I recently wrote some basic mechanism for interfacing the PCI
bios32 thingy. If anyone here has any experience with this stuff, such
as what's the overall way this is to be used (firstly for device
discovery), I'd like to hear from you. I'll check in x86-pc/pci.lisp

Frode Vatvedt Fjeld

More information about the movitz-devel mailing list