Hello Anton,
As you probably know from Andrew Clausen reiser4progs project contains
package called libaal (not very clear and will be renamed soon) which
contains device abstraction layer code. It was introduced from the
libreiserfs used in GNU Parted.
In two words, it allows any filesystem library access device in an
enviromnent independant maner. Consider possible libntfs appliactions
and you will understand, that it is needed to access ntfs partition:
(1) from the DOS (some dos utilities like TestDisk)
(2) from the "alone" mode (some bootloaders might be use libntfs for
providing ntfs support, for instance GRUB, MILO)
(3) from the usual UNIX enviromnent by means of using device name like
/dev/hd* or uuid/label, etc.
All these device access patterns should be implemennted in not the same
way. One of them will use DOS interrupts for accessing sectors, another
one will use usual read() and write() and so on. Device abstraction
layer is supposed to solve all these differences in implementation by
means of using installable device operations.
Andrew's idea is to move libaal into separate library, add libblkid
functionality to it (Andreas Dilger's library for identifying devices by
their uuid and label) and make it available for any filesystem tools and
libraries.
If you're intersted in, please take a look at
http://thebsh.namesys.com/snapshots/2003.02.13/reiser4progs-20030224.tar.gz
And files you should look at them are the following:
include/aal/device.h
libaal/device.c
include/aal/file.h
libaal/file.c
What do you think about that?
|