Installable File System (IFS) — API файловых систем в IBM OS/2 и Microsoft Windows, который позволяет операционной системе распознать и загрузить драйвер файловой системы.
История
Когда разработчики IBM и Microsoft проектировали OS/2, они поняли, что FAT не отвечает требованиям современных ОС, и Microsoft приступила к разработке High Performance File System (HPFS) под кодовым названием Pinball. Вместо размещения кода внутри ядра, как для FAT, Microsoft разработала драйвер файловой системы, основанный на API, который позволил бы и другим разработчикам добавлять новые файловые системы в ядро без необходимости изменять его.
Когда Microsoft перестала работать над OS/2, IBM продолжила использовать интерфейс IFS и Microsoft реализовала подобный ему уже в системах Windows.
IFS в DOS 4.x
В MS-DOS 4.0 поддерживается директива IFS для загрузки сторонних драйверов файловой системы.[1]
Формат команды: IFS=<drive><path><driver>, так же, как для директивы DEVICE.
IFS в OS/2
IFS предоставил основной и довольно мощный интерфейс для программирования файловых систем. Он был включён в 1989 году в OS/ 2 1.20 вместе с файловой системой HPFS.
Драйверы файловых систем выполняются в пространстве ядра (кольцо 0) и разделены на четыре основных частей: microIFS, miniIFS, IFS, хелперы.
Для драйвера IFS сам код файловой системы не требуется, он будет загружен через директиву «IFS=» файла CONFIG.SYS. Это 16-битная динамически загружаемая библиотека нового EXE-формата. Независимо от того, используется ли 32-битная OS/2 (2,0 и выше), IFS всегда 16-битная (хотя можно создавать и 32-разрядные IFS).
MicroIFS — это часть кода, которая загружает в память ядра miniIFS и передаёт управление ядру. Этот код содержится в загрузочных частях файловой системы.
MiniIFS — код, который исполняется ядром после первой директивы «IFS=», указанной в файле CONFIG.SYS, поэтому первым аргументом IFS должна быть файловая система системного диска, чтобы она могла загрузиться.
Хелперы, 16-битный (для OS/2 1.x) или 32-разрядный (для OS/2 /2.х и выше), выполняются в пользовательском пространстве (кольцо 3) и содержат код, используемый для технического обслуживания файловой системы и вызываемый утилитами CHKDSK и FORMAT.
Эта схема из четырех частей позволила разработчикам динамически добавлять новую загрузочную файловую систему, такую как драйвер ext2, продемонстрированный в OS/2 .
Драйвер файловой системы CD-ROM (Международная организация по стандартизации 9660) был добавлен в OS/2 2.0, UDF была добавлена в OS/2 4.0 и JFS была добавлена в OS/2 4.5. eComStation, последний релиз OS/2 также включает в себя множество драйверов файловых систем для OS/2 в семействе компакт-дисков. Был также официальный 32-разрядный HPFS IFS, называемый HPFS386 , повысивший производительность и добавивший некоторые функции, такие как кэш переменного размера и списки управления доступом, был доступен только в версии OS/2 Server 3,0. Файловая система FAT не была удалена из ядра и никогда официально не имела своего IFS, хотя есть FAT ISF, к которым добавлены функции, такие как длинные имена файлов (LFNs), поддержка FAT32 и т. д.
Сетевые протоколы обмена файлов, такие как NFS и SMB, также реализованы с использованием IFS, но сам интерфейс IFS никогда не изменялся.
IFS в Windows NT
IFS API является частью набора Windows Driver Kit. Когда Microsoft (после продажи системы IBM) прекратила развивать OS/2 и сконцентрировалась на том, что сначала назвали OS/2 NT, они взяли идею с IFS вместе с файловой системой HPFS.
Вместо системы из 4 частей NT IFS была переработана в схему из двух частей: microIFS и miniIFS были удалены из неё. IFS и помощники остаются теми же, но позже в Windows NT 4.0, был добавлен помощник дефрагментации (DEFRAG). Оригинальный NTLDR Microsoft был закодирован для загрузки ядра NT с FAT, HPFS или NTFS, но в последующих версиях была прекращена поддержка HPFS. Все драйверы и хелперы стали 32-битными выполняемыми файлами нового типа (PE). Файловая система FAT была перенесена из ядра в IFS и была серьёзно оптимизирована для работы, используя возможности 32-битной работы с устройствами (название Fastfat).
В оригинальной Windows NT 3.1 включены FAT, HPFS (Pinball) и вновь созданные драйвера NTFS вместе с новым улучшенным драйвером файловой системы CD-ROM, который включал поддержку длинных имен файлов с помощью файловой системы Microsoft Joliet.
В Windows NT 3.51 добавлено пофайловое сжатие для NTFS и интерфейс IFS. В Windows NT 4.0 HPFS был удален. В Windows 2000 Fastfat была обновлена поддержка файловой системы FAT32 и был добавлен UDF.
В Windows 2000 изменен интерфейс IFS для добавления пофайлового шифрования. Протоколы файлообменных сетей и антивирусы также реализованы через IFS.
Apple начал включать драйверы только для чтения HFS + в Mac OS X 10.6 версии для использования в Windows XP, Windows Vista и Windows 7.
Библиография
См. также
Ссылки
ext2/ext3
ReiserFS
HFS
OS/2
Другие
- Solid File System Архивная копия от 14 июля 2008 на Wayback Machine — (SolFS) cross-platform single-file virtual filesystem with encryption and compression
- Callback File System — 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
- Dokan — a user mode filesystem toolkit by means of an IFS proxy driver
Примечания
|
---|
Основные | |
---|
Службы управления | |
---|
Игры | |
---|
Ядро ОС | |
---|
Файловые системы | |
---|
Графическая подсистема | |
---|
Объектная модель | |
---|
Совместимость | |
---|