[EMAIL PROTECTED] (Nelson Minar) writes:
>
> >Why has it been so difficult to port Sun's Java2 source to Linux?
>
> I have no specific knowledge - I'm not part of the Blackdown team,
> have never seen the JDK sources, etc. But I can guess :-)
>
>
> The port is a spare-time effort with non-open source.
Right.
> Java2 is a hell of a lot of code. No matter how good it is, when it's
> big it's hard to port.
Right.
> The Blackdown folks seem to be adding a lot of value back to the Java
> port. How many of their patches have gone back into the Java tree?
All told (from the 1.1.x days), a lot. Many of them are going into 1.3.
> Java hits threads very hard. In particular, the native threads port of
> Java stresses the glibc threading framework (and the kernel!) more
> than most systems. So you have to contend not just with portability
> problems, not just bugs in the Java sources, but bugs and misfeatures
> in the Linux implementation too.
Right. LinuxThreads doesn't completely play well with signals. This
causes race conditions. It's messy. We may end up including a (slightly)
custom libpthreads with the release to work around these issues.
> Memory management is tough to port. Remember how long the Linux JDK
> didn't free memory?
It has its issues. If Solaris were == Linux, then Solaris would be Linux.
It's not, and the differences make porting "interesting".
> AWT gives porters a hard time. I don't personally understand this,
> except Xlib is icky.
Not just AWT -- much of the interaction with the <b>n</b> different window
managers can cause problems. And the AWT support isn't developed for the
various bit depths available on the Linux platforms, resulting in mysterious
errors at start up when using non-supported bit depths.
> I'd be interested to hear what the Blackdown folks can say on the
> subject. In particular, what about Linux makes it hard to port? Maybe
> some of us can help improve the Linux side..
You've hit the high order bits. Linux threads are not Solaris threads, and the
implementation naturally assumes that Solaris threads are available. The
Solaris equivalent of pthread_cond_wait will return if an interrupt occurs;
Linux pthreads won't, so all kinds of kludgery has to go on to get around this
problem.
Steve
--
------------------------------------------------------------------------
Steve Byrne | Try Linux: The Soul of a GNU Machine
[EMAIL PROTECTED] |
------------------------------------------------------------------------
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]