82 lines
3.7 KiB
HTML
82 lines
3.7 KiB
HTML
<html><head>
|
|
<title>HPFS: Installable File Systems</title>
|
|
</head>
|
|
|
|
<body>
|
|
<center>
|
|
<h1>Installable File Systems</h1>
|
|
</center>
|
|
|
|
Support for installable file systems has been one of the most eagerly
|
|
anticipated features of OS/2 Version 1.2. it will make it possible to
|
|
access multiple incompatible volume structures--FAT, HPFS, CD ROM, and
|
|
perhaps even UNIX on the same OS/2 system at the same time, will
|
|
simplify the life of network implementors, and will open the door to
|
|
rapid file system evolution and innovation. Installable file systems
|
|
are, however, only relevant to the HPFS insofar as they make use of
|
|
the HPFS optional. The FAT file system is still embedded in the OS/2
|
|
kernel, as it was in OS/2 1.0 and 1.1, and will remain there as the
|
|
compatibility file system for some time to come. An installable file
|
|
system driver (FSD) is analogous in many ways to a device driver. An
|
|
FSD resides on the disk in a file that is structured like a
|
|
dynamic-link library (DLL), typically with a SYS or IFS extension,
|
|
and is loaded during system initialization by <tt>IFS=</tt> statements
|
|
in the <tt>CONFIG.SYS</tt> file. <tt>IFS=</tt> directives are processed
|
|
in the order they are encountered and are also sensitive to the order of
|
|
<tt>DEVlCE=</tt> statements for device drivers. This lets you load a
|
|
device driver for a nonstandard device, load a file system driver from
|
|
a volume on that device, and so on. Once an FSD is installed and
|
|
initialized, the kernel communicates with it in terms of logical requests
|
|
for file opens, reads, writes, seeks, closes, and so on.
|
|
The FSD translates these requests--using control structures and tables
|
|
found on the volume itself--into requests for sector reads and writes for
|
|
which it can call special kernel entry points called File System Helpers
|
|
(FsHlps). The kernel passes the demands for sector I/O to the appropriate
|
|
device driver and returns the results to the FSD
|
|
(<a href="#fig6">Figure 6</a>).
|
|
The procedure used by the operating system to associate volumes with
|
|
FSDs is called dynamic mounting and works as follows. Whenever a volume
|
|
is first accessed, or after it has been locked for direct access and then
|
|
unlocked (for example, by a FORMAT operation), OS/2 presents identifying
|
|
information from the volume to each of the FSDs in turn until one of them
|
|
recognizes the information. When an FSD claims the volume, the volume is
|
|
mounted and all subsequent file I/O requests for the volume are routed to
|
|
that FSD.
|
|
<p>
|
|
|
|
|
|
<center>
|
|
<a href="fig6.gif" name="fig6">
|
|
<img src="fig6.gif" alt="[Fig. 6]" border=0></a>
|
|
</center>
|
|
<p>
|
|
<b>FIGURE 6</b>:
|
|
A simplified sketch of the relationship between an application program, the
|
|
OS/2 kernel, an installable file system, a disk drlver, and the physical
|
|
disk device. The applicatIon issues logical file requests to the OS/2 kernel
|
|
by callng the entry points for DosOpen, DosRead, DosWrlte, DosChgFilePtr, and
|
|
so on. The kernel passes these requests to the appropriate installable file
|
|
system for the volume holding the file. The installable file system translates
|
|
the logical file requests into requests for reads or writes of logical sectors
|
|
and calls a kernel File System Helper (FsHlp) to pass these requests to the
|
|
appropriate disk drlver. The disk driver transforms the logical sector requests
|
|
into requests for specific physical units, cylinders heads, and sectors, and
|
|
issues commands to the disk adapter to transfer data between the disk and
|
|
memory.
|
|
|
|
|
|
<p>
|
|
<hr>
|
|
|
|
< <a href="ea.html">[Extended Attributes]</a> |
|
|
<a href="hpfs.html">[HPFS Home]</a> |
|
|
<a href="perform.html">[Performance Issues]</a> >
|
|
|
|
<hr>
|
|
|
|
<font size=-1>
|
|
Html'ed by <a href="http://www.seds.org/~spider/">Hartmut Frommert</a>
|
|
</font>
|
|
|
|
</body></html>
|