Installable File System

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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 - (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
  1. Kevtronics. Undocumented Commands. 76362.2023@compuserve.com.