Installable File Systems

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 IFS= statements in the CONFIG.SYS file. IFS= directives are processed in the order they are encountered and are also sensitive to the order of DEVlCE= 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 (Figure 6). 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.

[Fig. 6]

FIGURE 6: 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.


< [Extended Attributes] | [HPFS Home] | [Performance Issues] >
Html'ed by Hartmut Frommert