hidden pixel

Installable File System Information

The Installable File System (IFS) is a filesystem API in IBM OS/2 and Microsoft Windows that enables the operating system to recognize and load drivers for file systems. It is part of the Windows Driver Kit.

Contents

History

When IBM and Microsoft were codeveloping OS/2, they realized that File Allocation Tables, FATs, did not offer the features a modern OS would require, 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 and 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 newer), 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 CHKDSK and FORMAT utilities.

This four-piece scheme allowed developers to dynamically add a new bootable filesystem, as the ext2 driver for OS/2 demonstrated.

CD-ROM filesystem driver (ISO 9660) 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 long file names (LFNs), FAT32 support, etc.

Network file-sharing protocols like NFS and SMB are also implemented using IFS, and the IFS interface never changed.

IFS in Windows NT

This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. The talk page may contain suggestions. (December 2007)

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.51 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.

Apple Computer started including read only HFS+ drivers in Mac OS X 10.6's version of Boot Camp for use in Windows XP, Windows Vista, and Windows 7.

Bibliography

See also

External links

ext2/ext3

ReiserFS

HFS

OS/2

Other

· · Microsoft Windows components
Core Active Scripting (WSH · VBScript · JScript) · Aero · AutoPlay · AutoRun · ClearType · COM (ActiveX · ActiveX Document · COM Structured storage · DCOM · OLE · OLE Automation · Transaction Server) · Desktop Window Manager · DirectX · Explorer · Graphics Device Interface · Imaging Format · .NET Framework · Search (IFilter · Saved search) · Server Message Block · Shell (Extensions · File associations · Namespace · Special Folders) · Start menu · Previous Versions · Taskbar · Windows USER · Win32 console · XML Paper Specification
Management tools Backup and Restore Center · cmd.exe · Control Panel (Applets) · Device Manager · Disk Cleanup · Disk Defragmenter · Driver Verifier · Event Viewer · IEAK · IExpress · Management Console · Netsh · Problem Reports and Solutions · Resource Monitor ·Sysprep · System Policy Editor · System Configuration · Task Manager · System File Checker · System Restore · WMI · Windows Installer · Windows PowerShell · Windows Update · WAIK · WinSAT · Windows Easy Transfer
Applications Calculator · Character Map · Contacts · DVD Maker · Fax and Scan · Internet Explorer · Journal · Magnifier · Media Center · Media Player · Mobile Device Center · Mobility Center · Narrator · Notepad · Paint · Windows Photo Viewer · Private Character Editor · Remote Assistance · Windows Desktop Gadgets · Snipping Tool · Sound Recorder · Speech Recognition · Tablet PC Input Panel · WordPad
Games 3D Pinball for Windows: Space Cadet · Chess Titans · FreeCell · Hearts · Hover! · Inkball · Mahjong Titans · Minesweeper · Purble Place · Solitaire · Spider Solitaire
Kernel Ntoskrnl.exe · hal.dll · System Idle Process · Registry · DLL · EXE · NTLDR / Boot Manager · Winlogon · Recovery Console · I/O · WinRE · WinPE · Kernel Patch Protection
Services SCM · BITS · Task Scheduler · Wireless Zero Configuration · Shadow Copy · Error Reporting · Multimedia Class Scheduler · CLFS
File systems NTFS (Hard link · Junction point · Mount Point · Reparse point · Symbolic link · TxF · EFS) · WinFS · FAT (FAT12 · FAT16 · FAT32) · exFAT · CDFS · UDF · DFS · IFS
Server Domains · Active Directory · DNS · Group Policy · Roaming user profiles · Folder redirection · Distributed Transaction Coordinator · MSMQ · Windows Media Services · Rights Management Services · IIS · Terminal Services · WSUS · Windows SharePoint Services · Network Access Protection · PWS · DFS Replication · Remote Differential Compression · Print Services for UNIX · Remote Installation Services · Windows Deployment Services · System Resource Manager · Hyper-V
Architecture NT series architecture · Object Manager · Startup process (Vista/7) · I/O request packet · Kernel Transaction Manager · Logical Disk Manager · Security Accounts Manager · Windows File Protection / Windows Resource Protection · Windows library files · LSASS · CSRSS · SMSS · MinWin
Security User Account Control · BitLocker · Defender · Data Execution Prevention · Protected Media Path · Mandatory Integrity Control · User Interface Privilege Isolation · Windows Firewall · Security Center
Compatibility Unix subsystem (Microsoft POSIX · Interix) · Virtual DOS machine · command.com · Windows on Windows · WoW64 · Windows XP Mode

Categories: Computer file systems | Disk file systems | OS/2 | Microsoft application programming interfaces | Windows disk file systems

 

The above information uses material from Wikipedia and is licensed under the GNU Free Documentation License.
Some facts may not have been fully verified for accuracy. [Disclaimers]
This page was last archived by our server on Wed Jul 27 04:02:51 2011.
Displaying this page or its contents does not use any Wikimedia Foundation's resources.
The owners of this site proudly support the Wikimedia Foundation.