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

Proposal: spawn()

One command should be able to easily invoke another.

Let's say that my custom command is called x. It accepts one argument, a directory name.

It always perform the following steps:
1. Display the current directory name. To display the current directory name, x should spawn the pwd command.
2. Change to a given directory. To change to a given directory, summary x spawn the cd command.
3. Display the contents of a directory. To display the contents of a directory, x should spawn the ls command.
4. Return to the original directory. To return to the original directory, x should spawn the cd command.

Proposal: Add a spawn() method to AbstractCommand.

protected void spawn( String[] args );

Inside x.java,
print( "Current Directory is " );
spawn( new String[] { "pwd" } );
spawn( new String[] { "cd", directory } );
spawn( new String[] { "ls", "-l" } );
spawn( new String[] { "cd", original } );

But wait! The spawn method requires standard input, output and error parameters.

protected void spawn( String[] args, InputStream stdin, OutputStream stdout, OutputStream stderr );

Inside x.java,
print( "Current Directory is " );

And the hash

Hello, i was downloaded JNode, but i like to get sure than the file is not corrupt.
any can tell me the correct hash (sha1, md5, crc, any hash?), pease Smiling

Wanted: JNode Emulator

Let's say that I really want to write and test commands for JNode--without actually running JNode. I need a JNode Emulator.

I start JNode Emulator with Apache Ant.

<path id="taskdef.cp">
  <fileset dir="lib">
    <include name="jnode-emulator.jar"/>
  </fileset>
</path>
<taskdef name="jnode-emulator" classname="JNodeEmulatorAntTask" classpathref="taskdef.cp"/>
<jnode-emulator init="false" stdin="myscript.txt">
  <argument value="shell"/>
</jnode-emulator>

I start JNode Emulator on Linux.

java -jar jnode-emulator.jar

For the sake of simplicity, let's say that JNode Emulator only runs commands with a text-based interface.

An AWT frame might be displayed. I type 'echo Hello, World!' in the prompt field and press the Run button. The emulator creates a command object and executes it, displaying the output in a text area. 'Hello, World!' is displayed.

Proposal for a better source organization

Hi, I think it would be better to have the filesystem drivers for each technology in it's own source folder. I think it would be much mor easy to work with such a structure:

JNode-FS
\_ src/fs
\_ src/fs/ext2
\_ src/fs/fat
\_ src/fs/ftpfs
\_ src/fs/hfsplus
......
\_ src/driver
\_ src/test

what do you think?

like that you could only open the source folder that you are interested in.

Proposal: Mechanism for command plug-in.

Let's say that jarsearch.jar contains a Jnode-compatible command. When we add jarsearch.jar to our classpath, we must also add an alias to our alias list. And then, we can invoke the jarsearch command.

Here is a proposed mechanism for automatically adding a command alias. We add a resource to jarsearch.jar.

In a resource called META-INF/command/jarsearch.xml, we write:

<?xml version="1.0"?>
<command>
  <classname>org.gchii.demo.JarSearchCommand</classname>
  <helptext>
jarsearch command
  syntax: jarsearch [options] directory
  -package        - searches for a package by name
  -class          - searches for a class by name
  -R, --recursive - searches directory recursively
  directory       - starts search in a directory
  </helptext>
  <manual>
jarsearch command
Example
  jarsearch -class org.jnode.command.CdCommand .
  searches for
  </manual>
</command>
Syndicate content