Hi all,
A small step on the way to write-support: I just added Richard Russons
initial documentation on the B*Tree operations on the NTFS directory
structure, which he wrote last year, to the web site. See the B*Trees
section at http://linux-ntfs.sourceforge.net/ntfs/concepts/index.html -
don't miss the references section, or the illustrations of the add and
delete examples.
This is of interest to people wanting to work on the NTFS write code,
probably beginning with adding support for renaming files. That step is
a a big amount of work, though.
The initial code for B*Tree support was written last year by Richard
Russon. It's available by installing BitKeeper and then issuing the command:
bk clone bk://linux-ntfs.bkbits.net/tng-support
The tree code lives in tng-support/tree for now, but is nothing more
than rudimentary tree manipulation code as a standalone program and a
shell script "random" to feed it random keys/nodes. For now, it only
uses a single character as the node/key name. It does work, however (or
so says flatcap :-).
It needs some cleanup and conditional compiling on the debug code so it
can be merged into a kernel tree.
I say we need to add automated unit testing to keep write support
related code bugfree. Some unit test frameworks are available here:
http://www.xprogramming.com/software.htm and you should read up on
automated test frameworks here http://c2.com/cgi/wiki?TestingFramework
in case the concept is new to you.
People wanting to work on the write code would be wise to get UML,
User-mode Linux (see http://user-mode-linux.sf.net/ and if you're using
Linux 2.6: Documentation/uml/UserModeLinux-HOWTO.txt). UML has a nice
feature that lets you work with a master disk image file, while
directing any changes to a separate file - copy on write. Thus you can
experiment without fear of data loss. For more information on how to do
this, see http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO-7.html
Have fun,
Leonard Norrgard
|