This is a discussion concerning the directory structure of JOS running on a computer. It is assuming that the FileSystem is on one disk, or that the directories and files are appropriately mounted/linked, and that we don't care what the directory separator is.
System property "JOS.FS.Root" or some other string meaning the same thing will be used to determine the base directory. java.lang.System.getProperties().getProperty("JOS.FS.Root"); should return the base directory name.
Directory heirarchy: (directories are in _bold_)
- Base
- System
- Configuration (holds a bunch of registry files)
- Devices.reg
- Services.reg
- Shells.reg
- Software.reg
- StartUp.reg
- Users.reg
- Classes (holds the JOS package heirarchies)
- Kernel (only on machines which use jos.jar)
- (All native kernel binaries)
- SwapFile.swp
- Application
- (All application directories, etc)
- User
- (All user directories, etc)
Goals:
- Compact directory structure
- Quick and Easy access to all parts of the system
- Standard ClassPath settings
- Text-based registry (unlike Windows...)
- Separate distribution of native (jos) and support classes (org.jos)
-- MichaelFried
A couple things to counter:
- All system properties should be lowercase, like packages:
JOS.FS.Root should be jos.fs.root.
- I'm not sure, but I remember hearing a lot of discussion about
an OO file system, where everything is an object, not necessarily a
file. Perhaps stored in a database like system? I definitely got the
hint that the majority liked this idea, but I don't know what was
said exactly.
- Unless someone can provide really good reasons for a text-based
Registry, I say that we should use something stored in binary format. Here's why:
- Faster search and retrieval of information.
- Less memory requirements if done right.
- Less hard drive storage space requirements.
I do think JOS is not going to be the fastest OS, but the
most reliable. However, wherever we can make speed increases without
many negatives, we should do it.
As for how to implement a Binary registry, what about a tree structure. Create RegistryKey objects which have references to a "daughter" array of RegistryKey objects, OR a bit of information (String, Integer, Float, etc) instead. Implement serializable, and the Registry could be read and stored to disk very easily.
There are some GREAT tips in the December 16th issue of the JDC Tech-Tips which discuss how to get good performance from this type of structure.
--MasonZhwiti
I just recently learned the differenc between Mac and PC file systems. I think the Mac file system (data forks) should be used. The data-fork itself could be in binary and the data-file could be an object. This style would work well with a database because you have your key and your object right there.
--CavelleBenjamin
I worked a little on the structure of the JOS FS and think this would look good:
- Base
- Floppy Drive (can be renamed, disk label shows up after it?)
- Other Drive (....)
- Main Drive (i.e. hard drive)
- Command (CLI commands not included in thee shell)
- JOS Applets
- Common Files (packages NOT part of the OS)
- Program Files (app-root)
- Users
- User A (only visible if User A logged on)
- User B (only visible if User B logged on)
- cache(1) (hidden directory internet cache/Virtual Memory)
- Desktop(1) (Mirrors the Desktop)
- example dir (shows a directory on desktop)
- JOS(1) (GUI/CLI files)
- System(1)
- mime.reg
- etc, etc
- Drivers (device drivers)
- Start Up (startup folder)
- Shutdwon (shutdown folder)
- Fonts (holds all fonts)
- lib (all system packages)
- jos.jar
- org.jos.jar
- Java
- Javax
- FreeSwingSet
- content (content handler root)
- codec (codec handler root)
- protocol (protocol handlers)
- Servlets (root for sys. servlets)
- cookies (hidden: holds document cookies)
- History (hitory dir for internet/"Document Menu")
- newMenu (holds file templates ShellNew in win95)
- sendToMenu (for send to menu)
- Find (programs in find menu)
- ControlPanel (duh)
(1) on Main Drive but appears to not be on any drive, just part of the system root (make file management easier for many people seeing the system as sepreate from hteir programs and files)
--DigiGod
Content of these pages are owned and copyrighted by the poster.
|
Hosted by:
|
|