Hardware requirements

To be able to run JNode, you're hardware should be at least equal to or better then:

  • Pentium class CPU with Page Size Extensions (PSE) feature
  • 512MB RAM

In order to run JNode the following hardware is recommended:

  • Pentium i3 or better
  • 1GB RAM
  • CDROM drive
  • Modern VGA card (see devices)

Why so much?

Why so much? Is it possible that you could get these requirements down much much much lower? Like 100mhz-300mhz and 64mb of ram?

Cody A.W. Somerville

Reasons

An object oriented system takes more memory then a highly compressed native code OS.
I hope to reduce these requirements, but the numbers you're mentioning will probably never be reached.

Ewout

Very partially correct...

Yes, Object-Oriented programs generally use (slightly?) more memory than their lower-level counterparts. However, I think that most of the processing and memory waste (in this situation) is because of the java platform itself. Figure, a byte-code interpreter (or "just-in-time compiler"), a massive amount of libraries, and nothing to brag about in the architecture-specific optimizations.

I don't think native code is "compressed", so much as it is generally not bloated with the extra layers of operation.

A Java OS!! That's great; an oxymoron?! There must be at least enough native code to support the platform itself, right? Or did you completely hack that (the Java Platform)? - That would be pretty amazing stuff!

Not an oxymoron

JNode is 99.9% pure Java, with a tiny nanokernel that is coded in assembler. The JNode codebase (not including the OpenJDK libraries) consists of > 1 million lines of Java and < 5000 lines of assembler ... and no C or C++.

Re architecture specific optimizations ... it depends on how good your JIT compiler. At the moment, JNode's is not good, but we're working on it.

Actually, the bulk of the memory "wastage" is in likely to be due to:

  • the JIT compiler compiles stuff too eagerly,

  • JNode doesn't (yet) use virtual memory, and
  • possible undiagnosed memory leaks.

At the moment, addressing JNode's memory footprint is not a high priority. But if someone has a burning desire to address this, we can use your help.

I have tried running JNode

I have tried running JNode with varying amounts of memory under VMWare. With 256Mb, it locks up in the startup sequence. With a bit more memory, (I think) I saw it try to GC, then die with a NPE. JNode is only relatively stable with 512Mb or more. (Which is sad because I only have 512Mb of physical memory ... and VMWare, X11 and Linux use a fair slice of that.)

I started looking at the way that the GC is implemented, but I have not gotten very far yet.
____
bags

What about...?

What about 333 mhz with 128mb of ram? :]

Cody A.W. Somerville

I hope...

I hope to get the requirements down to 256Mb and 1Ghz with a reasonable performance. Slower CPU's only harm performance, less memory may be a real bottleneck.

Ewout

I believe that the problem

I believe that the problem is with the quality of the garbage collector (but this is just a hinch)

--
Thorbjørn Ravn Andersen "...plus...Tubular Bells!"

I raise your hinch by one hunch

Smiling

Seriously, I think you are right. I have tried running JNode with varying amounts of memory under VMWare. With 256Mb, it locks up in the startup sequence. With a bit more memory, (I think) I saw it try to GC, then die with a NPE. JNode is only relatively stable with 512Mb or more. (Which is sad because I only have 512Mb of physical memory ... and VMWare, X11 and Linux use a fair slice of that.)

I started looking at the way that the GC is implemented, but I have not gotten very far yet.

omg....

I failed many many many times....tired for tring jnode on vmware. Various problems took place, sometimes the GCThread, sometimes switched to thread invoker, then it had no any process, just stopped, no warnning, no hint

Set the VMWare memory size to at least 512Mb

It works (well enough) for me with 512Mb.

The way I work these days is to do my JNode coding and builds on machine with 1Gb, then scp the ISO across to a 512Mb machine where I run using VMware. Running a 512Mb VMWare on a 512Mb Linux box is not great (the machine gets sluggish due to Linux swapping the VMWare process) but it is good enough for me.