Michael Hohmuth hohmuth@sax.de writes:
Andreas Rottmann a.rottmann@gmx.at writes:
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.
Cool!
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.
I plan to extend my programming knowledge/experience in the OS area. Thus I'm interested in helping in that area, altough I must admit that I have little experience with kernel/OS programming. I plan to walk through the relevant docs and finally join the people doing the Hurd/L4 port.
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.
I look forward to that. :-)
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.
This, of course, can be quite valuable and quite worth the performance hit (which will be minor, I think), I guess.
Regards, Andy