Andreas Rottmann a.rottmann@gmx.at writes:
I hope this is the right place to ask. (If not, please point me there ;-))
Yes, it is. (or fiasco-core@os.inf.tu-dresden.de, if you prefer a more private, nonpublic forum.)
I have read on the Fiasco homepage that Fiasco is beeing/was ported to run as a user-level process under Unix. What is the state of this project?
This project is well underway. User-mode Fiasco (Fiasco/UX) works on Linux, runs nearly unmodified versions of Sigma0 and Rmgr, and runs virtually unmodified simple L4 programs such as the ping-pong IPC benchmark.
It still lacks a number of features that would make it really useful, such as some pseudo device drivers that would enable L4Linux to run on top of it.
Fiasco/UX's main developer, Udo Steinberg, currently is on a vacation; he will be back in August. When he returns, he will write a term paper about it, explaining its architecture in detail.
And what is the mentioned CVS branch?
fiasco_ux
However, I am interested in this. A nice way to go would be to port Fiasco to a386 (http://a386.nocrew.org/), IMO. I don't know if I can be of any help, since I haven't (yet) done much kernel-level hacking...
Udo chose to use a different route, similar to the one used by User-mode Linux: Fiasco/UX uses ptrace(2) to control user binaries, allowing unmodified L4 binaries to run on top of it. Inside the ``kernel,'' Fiasco/UX emulates i386 instructions _after_ they occurred (that is, in a signal handler), not _before_ (i.e., at the API level, as with a386). This design allows us to debug even machine-specific low-level code under Unix.
Michael