The developers of LP49 themselves could chime in, but here is the link
to the project.
You might be surprised how much of Plan 9 has been rewritten in LP49.
http://research.nii.ac.jp/H2O/LP49/LP49-e.html
--
--
YAMANASHI Takeshi
Seems like portability isn't of interest to anyone, anymore.
As Russ suggested to me a while back, the Plan 9 kernel should not
require massive rewriting to port to GCC. Go figure.
++L
Any reason why they prefer to rewrite large portions ofcode to use gcc rather than making use of different toolchainsfor the L4 kernel and the plan9 subsystems? It seems like thelatter would be a lot less effort and result in a system that waseasier to track the original sources going forward.
Experience shows that the mods needed for plan 9 code for gcc can be
less than the mods needed just to forward port code between different
versions of gcc. It's quite amazing.
ron
Good question. In my experience, Plan 9 code is very portable,
although occasionally one needs to add the odd struct or union label
that the Plan 9 toolchain does not require.
If I understand correctly, the biggest problem with GCC is that
developers cannot resist using each and every feature.
++L
The paper I found online said they're currently implementing plan9
as a single server and eventually plan to split it off into multiple
servers. Either way, the plan 9 services sit on top of L4. I still
dont understand why they necessarily have to be built with the same
toolchain that builds the L4 kernel itself. Even if its embedded
into the kernel as a root server, shouldn't it be possible to compile
it separately and embed the resulting binary?
fwiw I haven't peekd at the code.
> Dave
Tim Newsham | www.thenewsh.com/~newsham | thenewsh.blogspot.com
I think the most "fun" I had was when the meaning of some
inline asm() changed. Not a "massive rewrite", since it
was only one line, but it was none the less painful.
Dave Eckhardt
Of course it all depends on what base of L4 they are working with, but you'd need to generate Plan 9 native versions of the L4 IPCs and IPC mechanisms (which in many ways is the crux of the L4 microkernel). L4 tends to be super optimized so its likely there are all sorts of hairy GCC-isms in the way the structure components of the IPCs are constructed as well as architecture specific aspects of IPC. Given the relative complexity and trickery at work within L4, porting Plan 9 to GCC is likely much more straightforward as the code base you are starting with is easier to understand.
Of course, IMHO the more interesting thing beyond creating a "Plan 9 personality" for L4 is to look at using the L4 microkernel as a mux for 9P messages and building a system based on that (versus the standard L4 IPC protocol).
-eric
On Jan 8, 2010, at 2:43 PM, Tim Newsham <new...@lava.net> wrote:
>> I might be having a hard time with the Japanese, but my impression
>> is that
>> the plan 9 processes are now also L4 userspace servers. This makes
>> me think
>> they're not running a paravirtualized Plan 9 on L4, but put L4 INTO
>> Plan 9.
>
> The paper I found online said they're currently implementing plan9
> as a single server and eventually plan to split it off into multiple
> servers. Either way, the plan 9 services sit on top of L4. I still
> dont understand why they necessarily have to be built with the same
> toolchain that builds the L4 kernel itself. Even if its embedded
> into the kernel as a root server, shouldn't it be possible to compile
> it separately and embed the resulting binary?
possible but you would have to look at the code to see exacly whats
going on
op-ti-mize [verb (trans.)] ... (gcc) to modify executable code so
that it fails more quickly