Extended Attributes
File attributes are information about a file that is maintained by the
operating system outside the file's overt storage area. The FAT file
system supports only a few simple attributes (read only, system, hidden,
and archive) that are actually stored as bit flags in the file's directory
entry these attributes are inspected or modified by special function calls
and are not accessible through the normal file open, read, and write calls.
The HPF'S supports the same attributes as the FAT file system for historical
reasons, but it also supports a new form of file- associated, highly
generalized information called Extended Attributes (EAs). Each EA is
conceptually similar to an environment variable, taking the form
(name=value) except that the value portion can be either a null- tenninated
(ASCIIZ) string or binary data. In OS/2 1.2, each file or direc-tory can
have a maximum of 64Kb of EAs attached to it. This limit may be lifted in
a later release of OS/2. The storage method for EAs can vary. If the EAs
associated with a given file or directory are small enough, they will be
stored right in the Fnode. If the total size of the EAs is too large, they
are stored outside the Fnode in sector runs, and a B+ Tree of allocation
sectors can be created to describe the runs. If a single EA gets too large,
it can be pushed outside the Fnode into a B+ Tree of its own.
The kernel API functions DosQFileInfo and DosSetFileInfo have been expanded
with new information levels that allow application programs to manipulate
extended attributes for files. The new functions DosQPathInfo and
DosSetPathInfo are used to read or write the EAs associated with arbitrary
path names. An application program can either ask for the value of a
specific EA (supplying a name to be matched) or can obtain all of the EAs
for the file or directory at once. Although application programs can begin
to take advantage of EAs as soon as the HPFS is released, support for EAs
is an essential component in Microsoft's long-range plans for object-oriented
file systems. Information of almost any type can be stored in EAs, ranging
from the name of the application that owns the file to names of dependent
files to icons to executable code. As the HPFS evolves, its facilities for
manipulating EAs are likely to become much more sophisticated. It's easy to
imagine, for example, that in future versions the API might be extended with
EA functions that are analogous to DosFindFirst and DosFindNext and EA data
might get organized into B-Trees. I should note here that in addition to EAs,
the LAN Manager version of HPFS will support another class of fil-associated
information called Access Control Lists (ACLs). ACLs have the same general
appearance as EAs and are manipulated in a similar manner, but they are used
to store access rights, passwords, and other information of interest in a
networking multi user environment.
< [Directories] |
< [Directories/PNG] |
[HPFS Home] |
[Installable File Systems] >
[Installable File Systems/PNG] >
Html'ed by Hartmut Frommert