インストール可能ファイル システム( IFS ) は、MS-DOS / PC DOS 4.x、IBM OS/2、およびMicrosoft Windowsのファイル システム APIであり、オペレーティング システムがファイル システムのドライバーを認識して読み込むことを可能にします。
歴史
IBMとMicrosoftが OS/2 を共同開発していたとき、 FAT ファイル システムでは現代の OS に必要な機能の一部が提供されていないことに気づき、Microsoft はコード名PinballのHigh Performance File System (HPFS)の開発を開始しました。
FAT のようにカーネル内にコーディングする代わりに、Microsoft は「ドライバーベース」のファイルシステム API を開発しました。これにより、Microsoft や他の開発者はカーネルを変更することなく、カーネルに新しいファイルシステムを追加できるようになりました。
Microsoft が OS/2 の開発を中止した後も、IBM は IFS インターフェースを使い続け、Microsoft は Windows NT に同様のインターフェースを実装しました。
実装
DOS 4.x の IFS
OS/2 の IFS
IFS は、ファイルシステムをプログラミングするための基本的かつ強力なインターフェイスを提供しました。1989 年に OS/2 1.20 で HPFS ファイルシステムとともに導入されました。
ファイルシステム ドライバーはカーネル空間 (リング 0 ) で実行され、microIFS、miniIFS、IFS、ヘルパーの 4 つの主要な部分に分かれています。
必要なのは IFS とファイルシステム コード自体だけで、これはCONFIG.SYSファイルの" IFS =" ステートメントによってロードされます。これはNE 16 ビットの動的ロード ライブラリです。32ビットOS/2 (2.0 以降)であっても、IFS は常に 16 ビットです (ただし、非公式に 32 ビット IFS を作成することもできます)。
microIFS は、カーネルと miniIFS をメモリにロードし、カーネルの実行にジャンプするコードです。通常は、ファイルシステムのブート部分にあります。
miniIFS は、カーネルによって呼び出され、CONFIG.SYS ファイルに表示される最初の IFS ステートメントをロードするコードです。したがって、システムを起動するには、最初の IFS ステートメントがブートのファイルシステムである必要があります。
ヘルパーは 16 ビット (OS/2 1.x の場合) または 32 ビット (OS/2 2.x 以降の場合) であり、ユーザー空間 (リング 3 ) で実行され、一般的なファイルシステムのメンテナンスに使用されるコードを含み、およびCHKDSKユーティリティによって呼び出されますFORMAT。
この 4 つの構成により、開発者はOS/2 の ext2ドライバーが実証したように、新しい起動可能なファイルシステムを動的に追加できるようになりました。
CD-ROMファイルシステムドライバ(ISO 9660)はOS/2 2.0で追加され、UDFはOS/2 4.0で、JFSはOS/2 4.5で追加されました。OS /2の最新パッケージであるArcaOSには、FAT32を含むいくつかのファイルシステムドライバが用意されています。[1]また、 HPFS386 と呼ばれる公式の32ビットHPFS IFSもあり、これはパフォーマンスを改善し、可変サイズキャッシュやアクセス制御リストなどの機能を追加しましたが、特定のOS/2サーバーエディションでのみ使用できました。FATファイルシステムはカーネルから削除されることはなく、公式にはIFSではありませんでしたが、長いファイル名(LFN)やFAT32のサポートなど の機能を追加したFAT IFSはあります。
NFSやSMBなどのネットワーク ファイル共有プロトコルも IFS を使用して実装されており、IFS インターフェイスは変更されていません。
Windows 3.11 および 9x の IFS
IFSHLP.SYS ( Installable File System Helper) は、 Microsoft Windows for Workgroups 3.11の一部として最初にリリースされたMS-DOSデバイス ドライバーです。16 ビット DOS API をバイパスし、他のリアル モードドライバーがINT 21h呼び出しを 傍受しないようにすることで、Windows 386 拡張モードでネイティブ32 ビット ファイル アクセスを可能にします。
IFSHLP.SYSの保護モード版は、Windows 3.11ではIFSMGR.386、Windows 95およびWindows 98ではIFSMGR.VXDです。 [2] [3]
Windows NT の IFS
IFS API はWindows Driver Kitの一部です。
Microsoft が OS/2 の開発を中止し、当時 OS/2 NT と呼ばれていたものに集中したとき、IFS のアイデアと HPFS ファイルシステムもそれとともに採用されました。
NT IFS は、4 つの部分から成るスキームではなく、2 つの部分から成るスキームに再設計されました。microIFS と miniIFS はスキームから削除されました。IFS とヘルパーはそのままですが、後に Windows NT 4.0 でデフラグヘルパー (DEFRAG) が追加されました。Microsoft のオリジナルの NTLDR は、FAT、 HPFS 、またはNTFSから NT カーネルをロードするようにコーディングされていましたが、それ以降のバージョンでは HPFS のサポートが削除されました。すべてのドライバーとヘルパーは 32 ビットのPE 実行可能ファイルになりました。FAT ファイル システムはカーネルから IFS に移動され、32 ビット処理機能を利用してパフォーマンスが大幅に最適化されました ( FASTFATと呼ばれています)。
オリジナルの Windows NT 3.1 には、FAT、HPFS (ピンボール)、新しく作成された NTFS ドライバーが組み込まれ、さらに、 Microsoft Jolietファイルシステムを使用して長いファイル名を組み込んだ新しく改良された CD-ROM ファイルシステム ドライバーも組み込まれました。
Windows NT 3.51 では、NTFS と IFS インターフェイスにファイルごとの圧縮が追加されました。Windows NT 4.0 では、HPFS は削除されました。Windows 2000 では、FASTFAT が更新されて FAT32 がサポートされ、UDF が追加されました。
Windows 2000 では、IFS インターフェイスが変更され、ファイルごとの暗号化が追加されました。
ネットワークファイル共有プロトコルとウイルス対策も、ファイルI/O操作を傍受するIFS「ファイルシステムフィルター」ドライバーを使用して実装されています。[4]
Appleは、Windows XP、Windows Vista、Windows 7で使用するために、Mac OS X 10.6のBoot Camp [5]に読み取り専用のHFS+ドライバを組み込み始めました。
さらに読む
- Rajeev Nagar (1997)。Windows NTファイル システムの内部、開発者ガイド。O'Reilly。ISBN 1-56592-249-2。
- ヘレン・カスター (1994)。Windows NT ファイル システムの内部。Microsoft Press。ISBN 1-55615-660-X。
- ヘレン・カスター (1993)。Inside Windows NT。Microsoft Press。ISBN 1-55615-481-X。
参照
参考文献
- ^ 「FAT32 インストール可能ファイル システム ドライバー」 。2020年 9 月 4 日閲覧。
- ^ Peter HS Madsen. 「CONFIG.SYS と AUTOEXEC.BAT のガイド」
- ^ IFSHLPのGoogleブックス検索結果。2011年4月13日閲覧。
- ^ 「ファイル システム フィルター ドライバーについて - Windows ドライバー」。2021 年 12 月 15 日。
- ^ 「Snow Leopard の Boot Camp には HFS + Windows ドライバーが含まれています」。2009 年 5 月 6 日。2012 年9 月 14 日閲覧。
外部リンク
- Microsoft Docsのファイル システム ドライバー設計ガイド
エクストリーム2
- Ext2Fsd は、 Windows 2000 から Windows 8 (32 ビットおよび 64 ビット) 用のGPLファイル システム ドライバーです。バージョン 0.50 以降では、書き込み/複数のコード ページ、ext3 htree、ジャーナルがサポートされています。
- Windows NT 用の ext2 IFS (読み取り専用)
- Ext2IFS / Windows NT/2000/XP/2003 用の別の ext2-3 IFS (読み取り/書き込み、UTF-8 ファイル名と ext3 htree をサポート、ext3 ジャーナルはサポートされていません)
ライザーFS
- ReiserFS IFS for Windows NT (読み取り専用)
HFS
- Windows NT 用の商用 HFS IFS
OS/2
- OS/2 用 HFS IFS
- OS/2 の NTFS と FAT IFS 2017-06-20 にWayback Machineでアーカイブされました
- OS/2 用の IFS ドライバーを提供する FTP サーバー。2017 年 5 月 2 日にWayback Machineにアーカイブされました。
他の
- CBFS ストレージ - 暗号化と圧縮機能を備えたクロスプラットフォームの単一ファイル仮想ファイルシステム
- CBFS Connect - 開発者がユーザー モードで Windows 用のインストール可能な仮想ファイル システムを作成できるようにする SDK
- RomFS - Windows ドライバーの例
- WinFUSE - IFS の代わりに SMB を使用する .NET ベースの USErspace フレームワークのファイルシステム
- Dokany - Windows ユーザー空間のファイルシステム用の MIT ライセンス フレームワーク。独立したカーネル ドライバーを使用し、.NET バインディングも利用可能
