Hi!
I hope this is the right place to ask. (If not, please point me there ;-))
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? And what is the mentioned CVS branch?
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...
Regards, Andy
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
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
Michael Hohmuth hohmuth@sax.de writes:
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
Can you also tell me how to check it out? I tried in various ways:
cvs co -r fiasco_ux l4 cvs co l4; cd l4; cvs update -r fiasco_ux' cvs co l4; cd l4/kernel/fiasco; cvs update -r fiasco_ux
and none gives a sane version....
Regards & Thx, Andy
[ Re-sending with Cc to list ]
Andreas Rottmann a.rottmann@gmx.at writes:
Can you also tell me how to check it out? I tried in various ways:
Yes, the sources are neither polished nor release-ready, and maybe it does not even compile except in Udo's home directory...
Try:
cvs co l4; cd l4/kernel/fiasco/src; cvs up -r fiasco_ux
However, I believe that Udo has not yet checked in his modifications for Sigma0 and Rmgr.
Cheers, Michael
Michael Hohmuth wrote:
Andreas Rottmann a.rottmann@gmx.at writes:
Can you also tell me how to check it out? I tried in various ways:
Yes, the sources are neither polished nor release-ready, and maybe it does not even compile except in Udo's home directory...
It compiles, but it is not ready for widespread use. Fiasco-UX is currently not available from Remote-CVS, but will be sometime around August. You'll have to wait until then. The comment on the website is a bit misleading.
However, I believe that Udo has not yet checked in his modifications for Sigma0 and Rmgr.
Correct.
-Udo.
l4-hackers@os.inf.tu-dresden.de