Installable File System
The Installable File System (IFS) is a
History
When
Instead of coding it inside the kernel, as FAT was, Microsoft developed a "driver-based" filesystem API that could allow them and other developers to add new filesystems to the kernel without needing to modify it.
When Microsoft stopped working on OS/2, IBM continued using the IFS interface and Microsoft implemented a similar one in Windows NT.
Implementations
IFS in DOS 4.x
This section needs expansion. You can help by adding to it. (November 2016) |
IFS in OS/2
The IFS provided a basic and powerful interface for programming filesystems. It was introduced in 1989 in OS/2 1.20, along with the HPFS filesystem.
Filesystem drivers executed in kernel-space (
Only the IFS and the filesystem code itself is required and it is loaded via an "
The microIFS is a piece of code that loads in memory the kernel and the miniIFS and jumps to kernel execution. It is usually in the boot portion of the filesystem.
The miniIFS is a piece of code that is called by the kernel to load the first IFS statement that appears in the CONFIG.SYS file, so the first IFS statement must be the boot's filesystem for the system to be able to boot.
The helpers are 16-bit (for OS/2 1.x) or 32-bit (for OS/2 2.x and up), are executed in user-space (
CHKDSK
and FORMAT
This four-piece scheme allowed developers to dynamically add a new bootable filesystem, as the ext2 driver for OS/2 demonstrated.
Network file-sharing protocols like
IFS in Windows 3.11 and 9x
IFSHLP.SYS (the Installable File System Helper) is an
The protected mode counterpart of IFSHLP.SYS is IFSMGR.386 in Windows 3.11 and IFSMGR.VXD in Windows 95 and Windows 98. [2][3]
IFS in Windows NT
The IFS API is part of the Windows Driver Kit.
When Microsoft stopped developing OS/2 and concentrated on what was then called OS/2 NT, they took the IFS ideas with it, along with the HPFS filesystem.
Instead of being a four-piece scheme, NT IFS was redesigned into a two-piece scheme. microIFS and miniIFS were removed from the scheme. IFS and helpers remain as the same, but later, in Windows NT 4.0, a defragmentation helper (DEFRAG) was added. Microsoft's original NTLDR was coded for loading the NT kernel from FAT,
Original Windows NT 3.1 incorporated FAT, HPFS (Pinball) and the newly created NTFS drivers, along with a new and improved CD-ROM filesystem driver that incorporated long file names using the
Windows NT 3.51 added per-file compression to NTFS and to the IFS interface. In Windows NT 4.0 HPFS was removed. In Windows 2000 FASTFAT was updated to support FAT32 and UDF was added.
Windows 2000 modified the IFS interface to add per-file encryption.
Network file-sharing protocols and antivirus are also implemented using IFS 'file system filter' drivers which intercept file I/O operations.[4]
.Further reading
- Rajeev Nagar (1997). Windows NT File System Internals, A Developer's Guide. O'Reilly. ISBN 1-56592-249-2.
- Helen Custer (1994). Inside Windows NT File System. Microsoft Press. ISBN 1-55615-660-X.
- Helen Custer (1993). Inside Windows NT. Microsoft Press. ISBN 1-55615-481-X.
See also
- Virtual file system
- List of file systems
- Comparison of file systems
- Network redirector
- Dokan Library
References
- ^ "FAT32 Installable File System Driver". Retrieved 2020-09-04.
- ^ Peter H. S. Madsen. "Guide to CONFIG.SYS & AUTOEXEC.BAT".
- ^ Google Books search results for IFSHLP. Retrieved 2011-04-13.
- ^ "About file system filter drivers - Windows drivers". 15 December 2021.
- ^ "Snow Leopard's Boot Camp Includes HFS + Windows Drivers". 6 May 2009. Retrieved 14 September 2012.
External links
ext2/ext3/ext4
- Ext2Fsd is a GPL file system driver for Windows 2000 to Windows 8 (32Bit and 64Bit); it supports writing/multiple codepages, ext3 htree, journal since version 0.50 available
- ext2 IFS for Windows NT (Read only)
- (Read/Write; support for UTF-8 file names and ext3 htree; ext3 journal not supported )
ReiserFS
- ReiserFS IFS for Windows NT (Read only)
HFS
OS/2
- HFS IFS for OS/2
- NTFS and FAT IFS for OS/2 Archived 2017-06-20 at the Wayback Machine
- FTP server offering IFS drivers for OS/2 Archived 2017-05-02 at the Wayback Machine
Other
- CBFS Storage - cross-platform single-file virtual filesystem with encryption and compression
- CBFS Connect - SDK that lets developers create installable virtual file systems for Windows in user mode
- RomFS - Windows driver examples
- WinFUSE - a .NET based Filesystem in USErspace framework that uses SMB instead of IFS
- Dokany - an MIT-licensed framework for filesystems in Windows userspace that uses a separate kernel driver, with available .NET bindings