It is time for us to start thinking about how JNode should run from a normal harddisk based system, how it should be installed and maintained.
An essential part of this, is how and where system files should be stored, and what system files are. This page answers the question of what system files are and proposes a tree structure for system files to be stored.
What are system files
In JNode there are a few different types of system files. These are:
Tree structure
In JNode system files should be placed in a container in a structure that is "well known".
A container can be a filesystem, but can also be some kind of database. See the next paragraph for a discussion on this.
The proposed tree is as follows:
/jnode | The root of the container |
/jnode/system | Contains kernel and the initial jars |
/jnode/plugins | Contains the plugins |
/jnode/boot | Contains the bootloader files |
/jnode/config | Contains the configuration data |
System file container
Traditionally the system files are stored in a directory on a "root" filesystem. This filesystem is identified by a parameter, or some flag in a partition table.
This method is easy, because all normal filesystem tools can be used on them, but makes it harder to protect these files against virusses, ignorent users etc. Also this method limits the system files to being harddisk based. (E.g. look at the trouble Linux had to have an NFS root filesystem).
For these reasons, I propose a more generic method, that of an abstract container interface for system file access. This interface can have implementation ranging from a single file based container to a network loader. The essential part is that the actual implementation is hidden from the part of JNode that uses it (either to load files, or to install them).
This is all for now, please comment on this proposal.
Ewout