A "file system" is a convention for the format in which &link_folders; and &link_datafiles; are stored on physical media.

With hard disks, each volume can have a different file system. The file system is determined when the volume is formatted. It can normally not be changed afterwards without reformatting the volume.

With today's operating systems, there are many different file systems available, each with its own unique weaknesses and strengths. &os2; understands the following file systems:

  1. Historically, the FAT file system (for "File Allocation Table") is the oldest file system that was used on Personal Computers. It was introduced with the earliest MS-DOS versions and is neither powerful, nor fast, nor flexible, nor efficient. Its file names are limited to 8+3 characters and with large volume sizes, due to the internal management of space allocation, lots of space is wasted. Even worse, FAT volumes become fragmented very easily.

    Today the only remaining advantage of FAT is that it is understood by nearly all operating systems, so if you have several operating systems installed, you may use a FAT volume for exchanging data. If you care for speed though, you should not place heavily-used data on FAT volumes.

    With &os2;, FAT support is built directly into the &os2; kernel. No IFS setting is required in &cfgsys;.

    With Windows 95, Microsoft has extended the FAT file system to allow for storing long file names, even though this did not solve the other limitations of FAT. With &os2;, you will see the 8+3 file names only.

    In addition, with Windows 98, Microsoft has added a new file system called "FAT32". Despite its name, this is not compatible with FAT at all. There are third-party solutions that allow &os2; to see FAT32 volumes as well via an IFS driver added to the &cfgsys; file.

  2. HPFS, by contrast, stands for "High Performance File System". This is the unique file system that was developed specifically for &os2;. It has lots of advantages over FAT. Its file names can be up to 254 characters in length, it supports extended attributes natively, it is a lot faster (hence the name), it doesn't waste as much space, and it is very resistant to fragmentation.

    Compared to even more modern file systems though, HPFS has its limitations too. Most importantly, standard HPFS can only handle a cache size of 2 MB. Considering the memory that is built into today's computers, this isn't much at all.

    For HPFS support, the HPFS.IFS driver must be loaded through an IFS statement in the &cfgsys; file.

  3. HPFS386, a highly optimized version of HPFS, does not have that cache size limitation. In addition, it is optimized for server tasks. It can transfer data directly from the file-system driver to network drivers without having to go through a ring 3 transition. It also supports local security, quotas, and limited software fault tolerance support.

    However, this file system is only available at extra cost. If installed, HPFS386 replaces the standard HPFS. It is loaded through the HPFS386.IFS driver in &cfgsys;, but this won't work if you do not have server components installed.

  4. For OS/2 Warp Server for e-Business (WSeB), IBM ported JFS, the Journaling File System, from AIX to OS/2. By now JFS has been ported to Linux too. JFS is now also available with eComStation and the IBM OS/2 Convenience Packs.

  5. To overcome the above limitations, eComStation also supports the Journaling File System (JFS), a modern high-performance file system that is also supported by IBM AIX and Linux.

    JFS has the following advantages over HPFS:

    1. It logs all disk write operations to a special log section, the "journal". When the system crashes, JFS does not have to perform a full CHKDSK to restore file-system integrity, but can simply "replay" the journal it has maintained. As a result, CHKDSK on JFS volumes takes seconds instead of minutes or even hours, as with large HPFS volumes.
    2. It does not have the 2 MB cache size limitation of standard HPFS.
    3. With the help of LVM, JFS volumes can be expanded without having to reboot.
    4. JFS takes advantage of new 32-bit code in the &os2; kernel (KEE32 and IFS32) and thus does not have to go through 16-bit compatibility layers. This makes data transfers greater than 64 KB much faster and allows JFS to scale much better on multi-processor systems.
    5. All internal JFS structures are 64 bits wide. JFS therefore does not have the 2 GB limits on files (and the 64 GB limit on volumes) of HPFS.
    One disadvantage of JFS is that it is presently not bootable. The &os2; boot partition must therefore still be placed on a FAT or HPFS volume.

    JFS support is enabled by adding the JFS.IFS driver to the &cfgsys; file.

  6. Finally, CDFS is a special file system that data CD-ROMs use. CD-ROMs use their own special format to organize data on disk which is unlike FAT or HPFS, so another file system driver is needed. This is implemented through the CDFS.IFS driver and is used when data CD-ROMs are accessed. The &os2; CDFS driver supports long file names in Microsoft Joliet format.
For related information, select from the list below: