Project XANA
Posted: Thu Apr 05, 2007 10:31 am
XANA is an experimental os for R&D -- a test bed for possible "future os" concepts, to see how practical they are for implementation and use.
I'm borrowing most of my basic starting points from Project Xanadu.
Currently, the filesystem is an XU88-type database, pretty much, though with some extensions. It is serialized into enfiladal addresses (versioned, like the ENT), though the C level APIs (i.e., those used by ports of existing code -- the "std" libc functions) will see the filesystem as much like the RiscOS filesystem. In other words, root is a $ and the directories are separated by dots. The directory names themselves are the enfilade's tumblers. Programs exist as bytecode scattered across the filesystem with transpointing enfiladal arguments, and device drivers are programs (which act like files anyway).
The OS has two UIs -- the Zig and the Z2. The Z2 is the primary interface, based on Project Xanadu's "ZigZag" concept (except absorbing UI concepts from the PS2, NeXTSTeP, Enlightenment, and various other things). The Zig is more like a mind mapping system, which is used for displaying and navigating all the links of a document at once, as well as the connection between documents.
The OS internally is written in D, and has a built-in Lua interp as a command shell. The Zig and Z2 are built in as well (simply out of need for a trivial implementation), as are the enfiladal file system and all the basic (disk, keyboard, video) drivers.
Once again, XANA is not designed to be a usable primary OS -- it's an experiment, and any application of these concepts would be extremely far diverged from the original XANA code and design.
If you're interested in more info, check out the "Project XANA" thread(s) in the project announcement forum, or check out the source at :
http://projectxana.twilightparadox.com/xana.tgz
http://hakware.oopsilon.com/xana/xana.tgz
(The second URL is slow, so use it sparingly).
~ John
I'm borrowing most of my basic starting points from Project Xanadu.
Currently, the filesystem is an XU88-type database, pretty much, though with some extensions. It is serialized into enfiladal addresses (versioned, like the ENT), though the C level APIs (i.e., those used by ports of existing code -- the "std" libc functions) will see the filesystem as much like the RiscOS filesystem. In other words, root is a $ and the directories are separated by dots. The directory names themselves are the enfilade's tumblers. Programs exist as bytecode scattered across the filesystem with transpointing enfiladal arguments, and device drivers are programs (which act like files anyway).
The OS has two UIs -- the Zig and the Z2. The Z2 is the primary interface, based on Project Xanadu's "ZigZag" concept (except absorbing UI concepts from the PS2, NeXTSTeP, Enlightenment, and various other things). The Zig is more like a mind mapping system, which is used for displaying and navigating all the links of a document at once, as well as the connection between documents.
The OS internally is written in D, and has a built-in Lua interp as a command shell. The Zig and Z2 are built in as well (simply out of need for a trivial implementation), as are the enfiladal file system and all the basic (disk, keyboard, video) drivers.
Once again, XANA is not designed to be a usable primary OS -- it's an experiment, and any application of these concepts would be extremely far diverged from the original XANA code and design.
If you're interested in more info, check out the "Project XANA" thread(s) in the project announcement forum, or check out the source at :
http://projectxana.twilightparadox.com/xana.tgz
http://hakware.oopsilon.com/xana/xana.tgz
(The second URL is slow, so use it sparingly).
~ John