Packages

The java classes of JNode are organized using the following package structure.
Note that not all packages are listed, but only the most important. For a full list, refer to the javadoc documentation.

All packages start with org.jnode.

Common packages

  • org.jnode.boot
    Contains the first classes that run once JNode is booted. These classes initialize the virtual machine and start the operating system.
  • org.jnode.plugin
    Contains the interfaces of the plugin manager.
  • org.jnode.util
    Contains frequently used utility classes.
  • org.jnode.protocol
    Contains the protocol handlers for the various (URL) protocols implemented by JNode. Every protocol maps onto a package below this package, e.g. the plugin protocol handler is implemented in org.jnode.protocol.plugin.

JNode virtual machine

  • org.jnode.vm
    Contains the core classes of the JNode virtual machine.
  • org.jnode.vm.classmgr
    Contains the internal classes that represent java classes, methods & field. It also contains the classfile decoder.
  • org.jnode.vm.compiler
    Contains the base classes for the native code compilers that convert java bytecodes into native code for a specific platform.
  • org.jnode.vm.memmgr
    Contains the java heap manager, including the object allocator and the garbage collector.
  • org.jnode.vm.<arch>
    For every architecture that is supported by JNode a seperate package exists, that contains the architecture dependent classes, including classes for threads and processors and classes for the native code compilation.

JNode operating system

  • org.jnode.driver
    Contains the driver framework.
    All drivers and driver API's have a seperate package below this package. Drivers of a similar type are grouped, e.g. all video drivers have a package below org.jnode.driver.video.

  • org.jnode.system
    Contains the interfaces for the various low level resources in the system, such as memory regions, I/O port regions, DMA access.
  • org.jnode.fs
    Contains the filesystem framework.
    All file systems have a seperate package below this package, e.g. the EXT2 filesystem implementation is contained in the org.jnode.fs.ext2 package and its sub-packages.
  • org.jnode.net
    Contains the network layer.
    All network protocols have a seperate package below this package, e.g. the IPv4 protocol and its sub-protocols is contained in the org.jnode.net.ipv4 package and its sub-packages.
  • org.jnode.shell
    Contains the command shell.
    All system commands are grouped in packages below this package.

Special packages

There are some packages that do not comply to the rule that all packages start with org.jnode. These are:

  • java.*, javax.*
    Contains the classpath implementation of the standard java libraries.

  • gnu.*
    Contains implementation classes of the the classpath library.
  • org.vmmagic.pragma
    Contains exception classes and interfaces that have special meaning to the virtual machine and especially the native code compilers. These classes are mostly shared with the Jikes RVM
  • org.vmmagic.unboxed
    Contains non-normal classes that are used as pointers to raw memory, object references and architecture dependent integers (words). These classes have a special meaning to the virtual machine and especially the native code compilers and should never be instantiated or used without a good knowledge of their meaning. These classes are mostly shared with the Jikes RVM