JNode is a Java new Operating System design effort. The goal is to get an simple to use and install Java operating system for personal use. Any java application should run on it.
Introducing the JNode OS
Submitted by greg gulrajani 2003-12-21 OS News 27 Comments
Are there any screen shots of the new GUI?
Yes, there is, but the OS is horrible, IMO, its Java, I mean, why not just write a Java application with a GUI inside it and work from that?
The console idea is Bad…Well, thats my 2 Cents.
Yeah, it sounds like a total waste of time. All OS undates will have to revolve around Java’s release schedule, otherwise Java apps will lose their compatibility.
Hey! I got an idea! Let’s make a Macromedia Flash OS! Or a XUL OS!
Some things are meant to be tools for a platform… not the platform itself.
From their site http://jnode.sourceforge.net/news.html#18 it looks like it doesn’t have much of a GUI yet.
[i]JNode gui, 17-Dec-2003
The JNode project has just started on serious GUI development.
A lightweight widget toolkit is under heavy development and will produce significant results soon.<i/>
JDistro seems to have a very mature GUI already, but I’m not sure how similar/different the projects are:
I wish I had kept a list of all the Java OS’s that have been started. JOS comes to mind. I think Sun had one too. DeepJ – does that qualify?
But, it IS a good idea. What is a VM but an OS on top of an OS anyway? Why not just streamline it and make Java the OS?
In fact, if you regard Dotnet as a Java variant, that seems to be where MS is heading with their next gen stuff.
Good luck to them. This is one open source project that looks like it would be fun to participate in.
Now all you need is to use some sort of JOP (Java Optimised Processor) and you might have something interesting :0)
But i`m not sure if this is a good idea for a PC, i would of thought that integrating the JVM into an existing kernel would of made sense.
You could for instance simply run a class file the same as any other binary file, the GC would be done at the Kernel level directly and also it could take advantage of security features of the given kernel.
I just don`t see how the benefits of Java out weigh the kind of bit twiddling you can do with C at the hardware level (cache optimisation anyone?).
i’ve seen this kind of thing come and go -remember jos; they even had a book, talkin about drivers and stuff.
IMO whats the point – when you have to write the native stuff in c and then use JNI, to get to the lower level(fun bits). The thing i dont get with java is the two-faced nature of its design. i mean look at the power and simplicity of the Robot class, its specific only to windows platform, and is very cleverly implemented, where as if you want to get to low level stuff its not that simple..anyway OS sims are more interestn check RCOS.
However best of luck to these guys, i’ll certainly be keepin a close eye on this.
> IMO whats the point – when you have to write the native stuff in c and then use JNI, to get to the lower level(fun bits).
JNode doesn’t work like that. The only bits that are directly executed by the processor is writen in assembler (the VM), the rest (including drivers; AFAIK it even has a partial ACPI impl in Java) is written in pure Java. In fact, AFAIK, the only native methods are in the Unsafe class and do very basic things (that are absolutely necessary to talk to the machine).
> 10 minutes to start up notepad.. 😀
Did you take a look at the performance page?
Speed is progressing very well and it theoretically wouldn’t take much longer than firing up a dialog. No forks, no separate virtual memory for each process, just SomeClass.main(args). (In the future, JNode will hopefully do this via Isolates, but even then it shouldn’t take much longer.)
> Yeah, it sounds like a total waste of time. All OS undates will have to revolve around Java’s release schedule,
I don’t think so. GNU classpath is far from reaching completely *any* Java spec and so classpath’s releases will continue not to depend on Sun’s. And classpath updates aren’t usually merged instantenously.
> otherwise Java apps will lose their compatibility.
Some parts of the Java 1.4 spec aren’t implemented yet in classpath, so you aren’t even able to run apps that require those.
where you may need a os for emergencies. Not a bad idea even though java to me is only acceptable for servers side with lots of ram.
Now all you need is to use some sort of JOP (Java Optimised Processor) and you might have something interesting :0)
Already done. The latest StrongARM processor (XScale in the Intel world) already has an embedded JVM. There was debate over its merits because of the extra bit of power used, however, ARM stated that the benefits out weigh any possible down side.
JDistro is not an OS.
It’s only a pure java desktop that can run multiple java applications under the same JVM.
There are talk between jnode and jdistro about running jdistro on top of jnode.
Hi, I see here many people trying to give there opinion about something that they have no clue about. As some one said in here Java virtual machine is an operating system in it’s own so what we are trying to do is remove the unnecessary native OS and make JVM the OS. If you believe a Java OS has no feature than you are naive..see a web server and app server..etc. About the GUI I can say that we are going forward and we will have a complete Widget Toolkit native to JNode in a couple of months I hope. We have a big portion of it written the JN ode widget Toolkit will look like AWT from API point of view so it will be easy to adopt. Many people don’t see the beauty and the advanced of managed code because SUN doesn’t care much or marketing Java but take a look at Windows and .NET, they want to do the same thing that we are doing today a .NET operating system. Only that JAVA is nicer and more flexible plus is not controlled by micro$oft. We don’t dream about writing the next Linux or so but we sure have a lot of fun trying to get running something that people say it can’t run. If you look to other JavaOS projects you will see that ware not even close as advanced as we are now. Jnode is modular, easy to use and FREE! so JNode is BEAUTIFUL. While you people are just complaining about $Bill$ we are actually doing something. Keep it running boys!
Well i do wish you guys luck with this as it would be interesting indeed, what i don`t understand is is it supposed to be just be a proof of concept or a real_OS ?
Is there any documentation about the design decisions that have led you to use Java everywhere ?
This is not ment as a flame but i really can`t understand how or why you want to use Java at such a deep level.
I might even lend a had at writing a few things for this project, if i`m knowledgable enough that is :p
there was no design decision do use Java everywhere this is our main target to get an OS that is implemented 100%(ar almost) in java and run pure java applications. We don’t want only to prove something we want to have a real OS that peoples all over the planets ca use. As you may know Java has many advantages over other languages and the fact that it is interpreted gives us a lot of flexibility. For example we have a pluginable architecture for the modules(inspired from eclipse plugin architecture) which lets us on runtime restart and even reinstall a module without any problems. Another big advantage in java are the jars which contain everything that an application needs so installing and uninstalling java application is as easy as coping a file and having a Java OS seems the natural step. I mean there are millions of application written in java out there so the advantage of JNode is that it already has millions of applications implemented and another big advantages is that the JNode API is well known around the world because it is the Java API! This are just a few of the advantages java provides. Pls take a look at the NVidia driver from Jnode and you will see what it means to have a driver written in Java. To say even today that java is not fast enough is plain stupid because lets face it what is the user running at home? a database server farm? we want to create a desktop OS and not compete with Solaris or AIX. Our os should be a desktop OS and it will be so easy to use that everyone must like it. I mean take the OS installation. the whole Installation process is copping a couple of JARS!!! to install a software you just copy the jar..ok maybe we will have a tool to create some kind of link that the user can use to run the jar but nothing else you can just go and call java -jar AppName.jar and you have it!! no stupid registry files and other trash. And if we are talking about GUI performance again I must say that to many NOOBs are talking when they should keep their moths shut. We will do the primitive drawings inside the driver and combined with a good clippping/imagebuffering strategy we can get the GUI run at least as fast as Windows…maybe never as fast as BeOS which is a piece of art by the way. Jnode is ready for desktops even now..we are working right now on a virtual file system to be able to put JNode on hdd than life will be easier for everyone. We need programmers willing to believe in JNode and give a professional help and not just talk and spill out ideas about something that they don’t even understand. Some guys can’t see further than their ego..they think we are some fools that can’t see that java is slower than native..we are not fools..we have performance tests that even now show us how fast can a native java os be. and we are far from having a well tuned VM. If you believe in this OS than you are welcomed to join us.
When Unix was born, many programmers complained about the “mistake” of making an OS with a “high” level language. They said an OS could and should only be written in assembler, any other language could only produce a bloated and slow mess. It is fun to see the same story repeating again and again. Nobody can imagine an OS written in anything but C (not even C++). Times have changed, hardware too, the only mistake we are making once again is that of mental stagnation. We take our languages so seriously that we allow them to become a religion, to blind the spirit of invention. I for one, wish good luck to JNode, and will keep an eye on its progress.
“As some one said in here Java virtual machine is an operating system in it’s own so what we are trying to do is remove the unnecessary native OS and make JVM the OS.”
I might also add that Java based operating systems already exist on certain consumer devices such as some cellular phones and smart card devices.
So yes, I think this is a very worthwhile project to extend the Java OS to the PC.
There’s always that setup and initialization phase code that still has to be done using assembly language for any decent modern operating system. So I sincerely doubt that there can ever be a 100% high-level language OS, unless manufacturers start embedding high-level language interpreters into the BIOS.
Nonetheless, it is an admirable accomplishment from a technical point of view.
It seems like you will always be behind the hardware
curve. Riding the backs of all the people creating
windows, linux, vxworks, etc drivers seems more
practical, if less idealistic.
“There’s always that setup and initialization phase code that still has to be done using assembly language for any decent modern operating system.”
Well, the JVM itself is usually written in C, and I would suspect that with JNODE, the actual JVM is written in C or C++.
However, once you have the JVM, everything else can be written in Java. The Java compiler itself is written in Java. Hence, when porting Java to a new platform, the only thing you have to port is the JVM. Everything else is written in Java.
So once you have the JVM running, all of the UI routines and such can be written in Java.
hmm..try use a Linux driver in windows or in Solaris..If peoples are using JNode that there will also be people to develop drivers. We never said it is 100% java but at least 99% 🙂 . We have an Unsafe class that does the assembly stuff. but that is small. I think we will use as much assambly as posible in VM if it makes sens for performance. The VM must not be Java pure ..only fast, but the rest must be. Our target is also to use the best technologies from java and to take advantage of them and this is what no Operating system ever did. Some things will be possible to do only in an OS like JNode. For example in JNode will be possible to write at console promt: System.out.println(“hello world!”); and it will work. No OS can do that. No OS has pure OO API like JNode has. No OS gives so much power to the programer as JNode does. If you don’t like how a system class is implemented you can just overwrite the methods and use it with you own implementation. Can you do that in Windows(by hacking kernel32.dll maybe..lol)? Can you do that in Linux(teoretical yes..but practical you gotta be the GURU to do it. Rebuilding the kernel is no joke.)? You want more examples? What about runing you prefered mobile phone game directly on JNode? The future is JNode and OSs like JNode(see Windows new version). Not many peoples are stil confotable with C hacking and the development tools that java offers are much better than any other language. On operating system needs to be elegant to live long and not marketed a lot(see BeOS!!). Peoples come if you give them what they need..simplicity. They don’t want their wordprocessor to be fast as the speed of light but to be stabil and easy to use. Peoples need an OS that has applications for everything that he wants to do and he needs this application to be easy to install and run… not editing the registry to get something running..peoples wait for JNode even if they don’t know so..trust me. 🙂
Valentin – is it feasible for JNode to be integrated into Linux at some point? And do you have any thoughts about Apple’s integration of Java into Mac OS X?
Good luck with the effort. Both Sun and IBM were originally working on a Java OS – an open source effort might escape corporate political uncertainty.
JNode is an OS by itself I don’t understand what you mean by Linux integration. About Apple’s integration I can’t say anything coze last time I check the status of Mac JVM was a long time ago. What I can tell you that we have promises for a Pegasos board and we will try to port JNode on PPC as well. At the end of this week we will releas a new version 1.5 and after that as a prio 1 will be a JNode HDD disrtibution and the graphics server speed/functionality. I am work in the GUI team and I can promise you that soon enaugh we will have a nice desktop for you to work with(I hope till the end of january). If we manage to get that soon than I think many peoples will not think twice to give a helpfull hand. WE NEED YOUR HELP !! in every form..even if that is just moral support.
About GUI support, could you tell us what do you plan to do? I mean, will JNode have its own GUI library? will you implement AWT/Swing as they are? do you plan to start from zero or use the ongoin work of the classpath project.
We plan to create our own Widget toolkit. we allready did it actualy. But one of our targets is to fave a Widget Toolkit with an API very close to SWING/AWT so that peoples can learn it fast and for applications to be ported on JNode.