Re: implementing the process abstraction in movitz
Frode Vatvedt Fjeld <[email protected]> Tue, 23 Nov 2004 14:39:38 +0100
| Newsgroups | gmane.lisp.movitz.devel |
|---|---|
| Message-ID | <[email protected]> |
Muli Ben-Yehuda <[email protected]> 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 asap. -- Frode Vatvedt Fjeld