Welcome to JNode.org, the website of the Java New Operating System Design Effort.

JNode is a simple to use & install Java operating system for personal use.
It runs on modern devices.

Any java application will run on it, fast & secure!

JNode is open source and uses the LGPL license.

Latest release:
JNode 0.2.8
Hardware requirements:
Pentium class CPU
512M RAM

see details

JNode and Apache Geronimo GSHELL

The GSHELL API is an independently developed API for running commands in Java.

http://cwiki.apache.org/GSHELL/

JNode gets a mention on the GNU website

I came across a mention of JNode on the GNU links page:

http://www.gnu.org/links/links.html

Scroll down to the "Other free operating systems" section. I think that it is interesting that there are only two entries here, and one of them is our baby Smiling.

Improved Command API

Thanks to those who contribute to the Java source code, the most recent Command API is an improvement.

The Command interface now reflects the real intent of a command object: It has a life-cycle; it MUST NOT be reused.

Here is the life-cycle of a command object.

1. Create a command object.

2. Install the command line and command I/O.

3. Execute the command.

The execute() method requires no parameters and throws an exception.

public abstract void execute() throws Exception;

The Command I/O has been properly abstracted into a command I/O object. A command I/O object manages the standard streams.

When a command requires raw out, for example, it invokes getOutputStream(). When it requires character output, it invokes getPrintWriter().

For backward compatibility with the previous Command API, the default implementation of execute() invokes execute( command-line, input, output, error ).

Wanted: JNode Alias API in a jar

A separate jar for the JNode Alias API is a smaller request than a full-blown JNode emulator. It is difficult for me to work with the JNode Alias API because it is not yet available in a self-contained API-only jar.

I would like to import the JNode Alias API and use it in my own operating environment. I would like to write an application that runs on multiple platforms (Linux, Windows, JNode) and wherever possible reuse JNode-compatible APIs.

This API does not include one thing that is very important to me. It does not provide an actual Alias object. When a command class is loaded by a custom class loader, how do I create an alias for it? The aliasClassName property cannot find the command class, can it?

With OSGi, classes in a bundle are loaded by a separate class loader. A bundle is capable of automatically registering JNode-compatible command classes, except the Alias API does not yet support custom class loaders.

Thanks,

Benchmarking Ideas

I'm starting to put together a benchmarking suite for jnode. The idea came from the fact that while working with the memory manager, it was simple to test things like allocation speed and gc performance, but was difficult to test how our changes were affecting JNode's runtime performance.

For now, I have about a dozen sorting algorithms that can run inside JNode, but i need some more ideas on what people think would be good tests to run. The benchmark suite is designed with a Runner that contains a collection of Tasks to run. The sorting algorithms should prove to be a good gauge of compiler optimizations(L2) as they are implemented. I would like to have some other tests that targeted specific areas of JNode and specific tests for certain pieces of hardware.

Syndicate content