原文见:http://www.javalobby.org/forums
JOS and other Java Operating Systems
At 6:13 AM on Feb 12, 2004, Gabriele Bulfon wrote:I've been tracking some of the Java Operating System project around the world during the last couple of years. One of them seems to be dead now: The JOS project. The main site has been closed and taken by those domain resellers (http://www.jos.org). The sourceforge jos project site has no more activities. What happened to JOS?
I'm still waiting for a full Java based OS architecture to build our new full Java desktop.
The JX OS project seems to be the best one I could find. What do you think?
1. At 9:08 AM on Feb 12, 2004, Rick Ross wrote:
Check out JNode, Gabriele Take a look at this JL message thread from a couple of weeks ago. People seem pretty excited by the JNode project.
Rick
2. At 12:09 PM on Feb 12, 2004, Jerason Banes wrote:
Re: JOS and other Java Operating Systems JOS suffered from a lack of focus. Everyone so much wanted to do their own thing (e.g. web browsers, media players, byte code engineering libraries, three different kernels, etc.) that nothing got done. A few of the projects did survive to become minor notes in Java history, but most of the parts of the project died as the (one or two) people working on them had life interfere.
It's sad, because it really might have been something. Unfortunately, this happens to a lot of projects. My own Jazz project died because of changes in my life. Jazilla died when its members no longer had time to develop it. Of course, sometimes someone comes along and raises a project from the ashes .
3. At 1:02 PM on Feb 12, 2004, Guillaume Desnoix wrote:
You get what you deserve. > I'm still waiting for a full Java based OS
> architecture to build our new full Java desktop.
You can wait a lot. JOS died because YOU didn't contribute. For one person working, one hundred are waiting. If you want a Java based OS, just build it. Join a project like JNode or JXOS(*) and start coding.
Regards, Guillaume
(*) I don't know if JXOS is accepting contributions but anyone can join the JNode team.
4. At 3:17 PM on Feb 12, 2004, Chris Merrill wrote:
Re: JOS and other Java Operating Systems > The > href="http://www4.informatik.uni-erlangen.de/Projects/ > JX/download-demos.html">JX OS project seems to be
> the best one I could find. What do you think?
It impressed me...I booted it from floppy on a Dell Poweredge 300 server and it ran fine. Now, if only I could think of something to do with it :>
5. At 8:08 AM on Feb 13, 2004, Serge Bureau wrote:
Re: You get what you deserve.
> You can wait a lot. JOS died because YOU didn't
> contribute. For one person working, one hundred are
> waiting. If you want a Java based OS, just build it.
> Join a project like JNode or JXOS(*) and start
> coding.
Very easy to judge.
But there is now hundreds of API and technology in Java, and the vast majority of programmers are Application programmers not system programmers.
So they can encourage a project more than unfortunately contributing.
Of course many could contribute that don't, but there is a lot more who can't. There is what, 1 system programmer for 100 application one ?
But it is not nice to see those interesting projects underressourced.
>
> Regards, Guillaume
>
> (*) I don't know if JXOS is accepting contributions
> but anyone can join the JNode team.
6. At 8:12 AM on Feb 13, 2004, Valentin Chira wrote:
Re: JOS and other Java Operating Systems Hi, I am an active JNode developer and I must tell you that we are moving forward FAST. we allready have running OS and with help from more developers we could have a nice OS in notime. In jnode we have all that an OS needs, we have network with a TCP stack and other protocoles like DNS,DHCP, we have filesystem drivers (ext2FS(readonly),FAT,NTFS(readonly)) we have a nice console architecture wich now is allowing multiple consoles like Linux does, we have a small version of a GUI wich is not very fast and developed becouse we have no developers that know this stuff. We have started to implement a kind of DriectX for JNode but the work is slow coze we don't know this things. The problem is again the active developers..and handfull of them only(5-6). so JNode is the most advanced Java OS out there and is growing fast but we need GOOD developers that contribute a lot of code. The GUI team needs a lot of good graphic developers to help us design a good graphics framework. if we have that than we have SWING up in notime. we even have our own native widget library that has all the components AWT needs but the Graphics2D implementation is not good. is very slow and the font library the same. we allready found a nice font library implementation done for classpath.org which support antialiasing and a large amount of TTF formats but we lack the work force to integrate it. So if you wanna see a Java OS nice and good than JOIN JNODE!! www.jnode.org
7. At 9:52 AM on Feb 13, 2004, Guillaume Desnoix wrote:
Re: You get what you deserve. >> You can wait a lot. JOS died because YOU didn't
>> contribute. For one person working, one hundred
>> are waiting. If you want a Java based OS, just
>> build it.
>> Join a project like JNode or JXOS(*) and start
>> coding.
> Very easy to judge.
I didn't want to sound rude. But I just picked the word "wait". Wainting doesn't help.
> But there is now hundreds of API and technology in
> Java
This was not the case at JOS time. And most of them are not required to implement a kernel.
> and the vast majority of programmers are
> Application programmers not system programmers.
Right. But the biggest part is not in the kernel, it is in the application side. To contribute the runtime (classpath.org), you need to be an application programmer, not a system one.
> So they can encourage a project more than
> unfortunately contributing.
This is a mistake (if they really want to support the project). In such projects, there is a lot to do and not only designing and coding. This includes promotion, translation, documention writing, artwork, ... There is also a lot to do at the application level. For a Java OS, consider the shell, the configuration tools, the port of standard utilities, ...
> Of course many could contribute that don't, but there
> is a lot more who can't.
I don't think. Most of people could contibute. There is also some people who really want to contribute and don't because they don't have time.
> There is what, 1 system
> programmer for 100 application one ?
Yes. I don't know the ratio when it sounds correct.
> But it is not nice to see those interesting projects
> underressourced.
I agree. But we should not complain if we don't contribute ourselves.
- Guillaume
8. At 3:59 PM on Feb 13, 2004, jim herber wrote:
Re: JOS and other Java Operating Systems isn't it borderline insane to to build the entire os in java (minus bus and device driver code)? why not start with a highly portable bsd flavored open kernel, and then wrap that with a java posix-like api?
9. At 4:26 PM on Feb 13, 2004, jim herber wrote:
a few interesting links http://www.cs.utah.edu/flux/java/
http://www.dsg.port.ac.uk/projects/research/JEM/
http://www.cosc.brocku.ca/Project/info/javaos.htm
10. At 4:30 PM on Feb 13, 2004, Guillaume Desnoix wrote:
Re: JOS and other Java Operating Systems > isn't it borderline insane to to build the entire os
> in java ?
I don't think. There is a lot of advantges in terms of safety, robustness, integrity but also in terms of size, quality and cost in development.
> (minus bus and device driver code)?
If I understood well, in most of the Java-based OS, the bus and the drivers are written in Java.
> why not start with a highly portable bsd flavored
> open kernel, and then wrap that with a java posix-like
> api?
You would have the drawbacks without the advantages.
Posix is not really interesting in Java because the Java API is the standard (on a JVM). And still the native kernel would be (quite) complex and type-unsafe.
Regards, Guillaume
11. At 5:47 PM on Feb 13, 2004, jim herber wrote:
Re: JOS and other Java Operating Systems >>I don't think. There is a lot of advantges in terms of >>safety, robustness, integrity but also in terms of size, >>quality and cost in development.
yes, i agree on all those issues, but it will never be as efficient with memory as a c based microkernel which will affect overal performance.
>>If I understood well, in most of the Java-based OS, the >>bus and the drivers are written in Java.
admittedly, i don't know how they map interupts and physical addresses ranges for devices in a java-based os.
> why not start with a highly portable bsd flavored
> open kernel, and then wrap that with a java posix-like
> api?
>>You would have the drawbacks without the advantages.
>>Posix is not really interesting in Java because the Java >>API is the standard (on a JVM). And still the native >>kernel would be (quite) complex and type-unsafe.
i see drawbacks and advantages to both approaches. with java at the kernel working out, you get the advantages you mention, but no device drivers and no jvm. with java wrapping a minimal subset of a popular, open source kernel at the posix layer (or below), you get immediate driver support, you still get to expose some of the OS, and you might be able to modify gcj or a blackdown port.
12. At 6:03 PM on Feb 13, 2004, Jerason Banes wrote:
Re: JOS and other Java Operating Systems isn't it borderline insane to to build the entire os in java
What makes you say that? Many OSes during the 70's and 80's were written in high level languages such as ALGOL and LISP. What makes Java so special?
For the record, C based OSes won out because of the lack of computing power. It was more efficient at the time to be as close to the hardware as possible. These days C/C++ programs and OSes are getting more and more abstracted from the hardware. As a result, high level languages that optimize on the fly are starting to look more appealing.
why not start with a highly portable bsd flavored open kernel, and then wrap that with a java posix-like api?
Efficiency. An OO based OS can control its memory usage based on objects. Protected memory and paging become useless and redundant features that will only slow things down. A Java based OS can store objects anywhere in memory. Objects that are swapped out can have their references replaced with code that will reload them out of cache. And since all the code can run at Ring 0, the OS won't have to juggle paging. Paging can instead happen inside the user process and get done within the process's time slice. Granted, such a system could perform very poorly in a low memory situation, but what is low memory? Desktops today ship with half a gig of RAM! And OO OSes can actually be *more* memory efficient than today's OSes.
There's a lot of potential in this field. It's just that we haven't had the hardware to explore it until recently.
13. At 6:48 PM on Feb 13, 2004, Guillaume Desnoix wrote:
Re: JOS and other Java Operating Systems > But it will never
> be as efficient with memory as a c based microkernel
> which will affect overal performance.
There is a small chance a java kernel could be faster (with a (very very) good JIT) because you could avoid the use of a micro kernel. A micro kernel is needed in C because there is no type system and you don't want to crash the whole system. It can not happen in Java so you could stick to a monolithic kernel that is in theory faster. [I don't know OS theory]
>>If I understood well, in most of the Java-based OS,
>>the bus and the drivers are written in Java.
> admittedly, i don't know how they map interupts and
> physical addresses ranges for devices in a java-based
> os.
They have one single class with native methods linked to a small portion of asm. But the driver and the bus themselves are written in Java.
> i see drawbacks and advantages to both approaches.
> with java at the kernel working out, you get the
> e advantages you mention, but no device drivers and
> no jvm. with java wrapping a minimal subset of a
> popular, open source kernel at the posix layer (or
> below), you get immediate driver support, you still
> get to expose some of the OS, and you might be able
> to modify gcj or a blackdown port.
Yes. But where is the fun ?
The technical challenge is much higher on the first option. But right now, I'm considering the second one with the following stack:
- unix kernel
- X or FB
- JVM (root)
- JVM (user) + JDistro
Regards, Guillaume
14. At 3:39 AM on Feb 14, 2004, Thuctho Smith wrote:
Re: JOS and other Java Operating Systems Agreed! I can't seem to find a new computer with less than 1Ghz CPU, 20Gig HDD and 256RAM these days. A computer with these configurations is enough to run any Java apps/OS. We should not concern about hardware as it's getting cheaper and faster every day. Windows 2000
15. At 8:25 AM on Feb 14, 2004, Michael Emmel wrote:
Re: JOS and other Java Operating Systems
> Yes. But where is the fun ?
> The technical challenge is much higher on the first
> option. But right now, I'm considering the second one
> with the following stack:
> - unix kernel
> - X or FB
> - JVM (root)
> - JVM (user) + JDistro
>
> Regards, Guillaume
This is almost exactly a product I had finished before the big dot com bust and my company went under. A few points.
1.) X is required since your really need mozilla.
2.) Its actually easy to convert the X server into a shared library then you can load it into the JVM.
I have that code somewehre but its only a few days work.
In my Janux project there is a window server written in java this is for Xlib but its really easy to convert it to run in the Xserver.
3,) With the X server in the JVM you don't need 2 one for root one for the user.
4.) I had a application catalog that read RDF to find apps all over the network and locally. This was pre jnlp but with a good JNLP implementation it would work better.
5.) For real isolation in the JVM you need to modification s to the JVM to support the Isolate API. Mutable statics need to be loaded on a per Isolate basis and System resources file handle sockets etc need to be associated with a Isolate.
Considering that buidling into the Xserver and the need for Isolate I don't see Suns JVM as being a viable platform for building a real Java Desktop since they won't allow you to make these kind of modifications I hope you consider migration of JDistro to Gnu Classpath as soon as posssible so you can do the cool things you want.
16. At 9:02 AM on Feb 14, 2004, Michael Emmel wrote:
RMI and JNI over X11 protocol
To follow up on my own message : )
If you embed the jvm into the Xserver you can add a few new message types one to tunnel RMI as a X11 message it would be variable length but X handles that.
Next you should be able to use shared mem extension for pratically all of JNI and X protocol for a large subset if not all to allow C programs to talk java to the jvm in the X11 server. Sun did a researh project on shared memory
I think this is it.
http://research.sun.com/projects/barcelona/papers/TR_2001_96.pdf
It seems most of there research is here
http://research.sun.com/projects/barcelona/
So you can run the User space process inside a single VM when they load stable trusted code or run them via a shared memory bridge for extra isolation if needed.
Finally you can always fork a new VM if needed and use the mechnisms listed above or pure X11 to show visual components.
17. At 6:17 PM on Feb 16, 2004, Torbj?rn Gannholm wrote:
Re: JOS and other Java Operating Systems Great news about Jazilla!
I have been looking for a Java web browser.
18. At 6:24 PM on Feb 20, 2004, Michael Golm wrote:
Re: You get what you deserve. > (*) I don't know if JXOS is accepting contributions
> but anyone can join the JNode team.
I am one of the JX developers. We encourage everyone to contribute to the JX project. There are several areas where we need support:
- write a device driver for your favorite network controller, 3D accelerator, etc.
- extend the already existing AWT code and build more fancier user interfaces
- develop a (Java-based) GUI for PDAs; we are currently porting JX to the ARM architecture; when we finished this port we would need such a GUI
- [add your own ideas here]