- Installable File System
The Installable File System (IFS) is a
filesystem APIin IBM OS/2and Microsoft Windows NTthat enables the operating systemto recognize and load drivers for file systems. It is part of the Windows Driver Kit.
IBMand Microsoft were codeveloping OS/2, they realized that File Allocation Tables, FATs, were not good enough for hard disks, and Microsoft began developing the High Performance File System, codenamed Pinball.
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.
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 (
ring 0) and are divided in four principal pieces: microIFS, miniIFS, IFS, helpers.
Only the IFS and the filesystem code itself is required, it is loaded via an "IFS=" statement in the CONFIG.SYS file.It is a NE 16-bit
dynamically loaded library. No matter if it is a 32-bit OS/2 (2.0 and upper), the IFS is always 16-bit (although extraofficially you can make a 32-bit IFS).
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 appers 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 upper), are executed in user-space (
ring 3) and contain the code used for typical filesystem maintenance, and are called by CHKDSKand FORMAT utilities.
This four-piece scheme allowed developers to dynamically add a new bootable filesystem, as the
ext2driver for OS/2 demonstrated. CD-ROMfilesystem driver (ISO9660) was added in OS/2 2.0, UDF was added in OS/2 4.0 and JFS was added in OS/2 4.5.eComStation, the latest packaging of OS/2, also includes many filesystem drivers for OS/2 in its companion CDs.There was also an official 32-bit HPFS IFS, called HPFS386 that improved performance and added some features, like variable size cache and Access Control Lists, and was available only in OS/2 3.0 server edition.The FAT filesystem was never removed from the kernel and officially never an IFS, although there are FAT IFS that added features like LFNs, FAT32 support, etc.
IFS in Windows NT
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 they implemented 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, HPFS or
NTFS, but subsequent versions dropped HPFS support. All of the drivers and helpers became 32-bit PE executables. The FAT file system was moved out of the Kernel to an IFS and was heavily optimized for performance, taking advantage of the 32-bit processing capabilities (being called FASTFAT).
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 Microsoft Joliet filesystem.
Windows NT 3.5 added per-file compression to NTFS and to the IFS interface.In Windows NT 4.0 the 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.
* O'Reilly - Windows NT File System Internals, A Developer's Guide - By Rajeev Nagar - ISBN 1-56592-249-2
* Microsoft Press - Inside Windows NT File System - By Helen Custer - ISBN 1-55615-660-X
* Microsoft Press - Inside Windows NT - By Helen Custer - ISBN 1-55615-481-X
Virtual file system
List of file systems
Comparison of file systems
* [http://www.microsoft.com/whdc/devtools/ifskit/default.mspx Microsoft's IFSKit]
* [http://ext2fsd.sf.net Ext2 file system driver for windows 2000/XP/Vista (x86/amd64)] (supports writing/multiple codepages, ext3 htree/journal are not supported)
* [http://uranus.it.swin.edu.au/~jn/linux/ext2ifs.htm ext2 IFS for Windows NT] (Read only)
* [http://www.fs-driver.org/ Another ext2-3 IFS for Windows NT/2000/XP/2003] (Read/Write; support for UTF-8 file names and ext3 htree; ext3 journal not supported )
* [http://rfsd.sf.net/ ReiserFS IFS for Windows NT] (Read only)
* [http://www.macdrive.com Commercial HFS IFS for Windows NT]
* [http://www.student.nada.kth.se/~f96-bet/HFS/ HFS IFS for OS/2]
* [http://www.dsteiner.com/products/software/os2/vfat.htm NTFS and FAT IFS for OS/2]
* [http://hobbes.nmsu.edu/cgi-bin/h-browse?dir=/pub/os2/system/drivers/filesys FTP server offering IFS drivers for OS/2]
* [http://www.acc.umu.se/~bosse/ RomFS] - Windows driver examples
* [http://www.palissimo.de/ WinFUSE] - a .NET based Filesystem in USErspace framework
* [http://dokan-dev.net/en/ Dokan] - another user mode filesystem toolkit by means of a proxy driver
Wikimedia Foundation. 2010.
Look at other dictionaries:
Installable File System — (IFS) API файловых систем в IBM OS/2 и Microsoft Windows, который позволяет операционной системе распознать и загрузить драйвер файловой системы. Содержание 1 История 2 IFS в OS/2 3 IFS в Windows NT … Википедия
Installable File System — [engl.], installierbares Dateisystem … Universal-Lexikon
Installable File System — El Sistema de Ficheros Instalable por su acrónimo inglés IFS (Installable File System) consiste en un API de sistema de ficheros en los sistemas operativos: IBM, OS/2, y Microsoft Windows NT; que les permite reconocer y cargar controladores.… … Wikipedia Español
installable file system — Abbreviated IFS. A file system that is loaded dynamically by the operating system when it is needed. Different file systems can be installed to support specific needs, in just the same way as device drivers are loaded to support specific… … Dictionary of networking
file system — In an operating system, the structure by which files are organized, stored, and named. Some file systems are built in components of the operating system; others are installable. For example, OS/2, Unix, and Microsoft Windows are all capable … Dictionary of networking
Virtual file system — A virtual file system (VFS) or virtual filesystem switch is an abstraction layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A… … Wikipedia
Comparison of file systems — The following tables compare general and technical information for a number of file systems. Contents 1 General information 2 Limits 3 Metadata 4 Features … Wikipedia
deb (file format) — Debian package The GNOME icon for deb files Filename extension .deb Internet media type application/x deb Developed by … Wikipedia
Deb (file format) — Infobox file format name = Debian package icon = caption = The icon for .deb files on ubuntu extension = .deb mime = application/x deb type code = uniform type = magic = owner = Debian released = latest release version = latest release date =… … Wikipedia
Windows 9x — Windows 4.x redirects here. For the operating system in the NT family, see Windows NT 4.0. Windows 9x Screenshot of Windows 95, the first version of Windows in the 9x series Company / developer … Wikipedia