Устанавливаемая файловая система

API файловой системы

Устанавливаемая файловая система ( IFS ) — это API файловой системы в MS-DOS / PC DOS 4.x, IBM OS/2 и Microsoft Windows , который позволяет операционной системе распознавать и загружать драйверы для файловых систем .

История

Когда IBM и Microsoft совместно разрабатывали OS/2, они поняли, что файловая система FAT не предлагает некоторых функций, которые требуются современным ОС, и Microsoft начала разработку высокопроизводительной файловой системы (HPFS) под кодовым названием Pinball .

Вместо того чтобы кодировать его внутри ядра, как это было в FAT, Microsoft разработала API файловой системы на основе «драйвера», который позволил бы им и другим разработчикам добавлять новые файловые системы в ядро ​​без необходимости его модификации.

Когда Microsoft прекратила работу над OS/2, IBM продолжила использовать интерфейс IFS, а Microsoft реализовала аналогичный в Windows NT.

Реализации

IFS в DOS 4.x

IFS в OS/2

IFS предоставляла базовый и мощный интерфейс для программирования файловых систем. Она была представлена ​​в 1989 году в OS/2 1.20 вместе с файловой системой HPFS.

Драйверы файловой системы выполняются в пространстве ядра ( кольцо 0 ) и делятся на четыре основные части: microIFS, miniIFS, IFS, помощники.

Требуется только IFS и сам код файловой системы, и он загружается с помощью оператора " IFS =" в файле CONFIG.SYS . Это NE 16-битная динамически загружаемая библиотека . Независимо от того, является ли это 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.x и выше), выполняются в пользовательском пространстве ( кольцо 3 ) и содержат код, используемый для типичного обслуживания файловой системы, и вызываются утилитами CHKDSKи FORMAT.

Эта четырехкомпонентная схема позволила разработчикам динамически добавлять новую загрузочную файловую систему, как это продемонстрировал драйвер ext2 для OS/2.

Драйвер файловой системы CD-ROM ( ISO 9660 ) был добавлен в OS/2 2.0, UDF был добавлен в OS/2 4.0, а JFS был добавлен в OS/2 4.5. ArcaOS , последняя упаковка OS/2, имеет ряд доступных драйверов файловых систем, включая FAT32. [1] Также была официальная 32-битная HPFS IFS, называемая HPFS386 , которая улучшила производительность и добавила некоторые функции, такие как кэш переменного размера и списки контроля доступа , и была доступна только в определенных редакциях сервера OS/2. Файловая система FAT никогда не удалялась из ядра и официально никогда не была IFS, хотя есть FAT IFS, которые добавляли функции, такие как длинные имена файлов (LFN), поддержка FAT32 и т. д.

Сетевые протоколы обмена файлами, такие как NFS и SMB, также реализованы с использованием IFS, а интерфейс IFS никогда не менялся.

IFS в Windows 3.11 и 9x

IFSHLP.SYS ( Instalable File System Helper) — драйвер устройства MS-DOS , впервые выпущенный как часть Microsoft Windows for Workgroups 3.11. Он обеспечивает собственный 32-разрядный доступ к файлам в расширенном режиме Windows 386 , обходя 16-разрядный API DOS и гарантируя, что никакой другой драйвер реального режима не перехватит вызовы INT 21h .

Аналогом IFSHLP.SYS в защищенном режиме является IFSMGR.386 в Windows 3.11 и IFSMGR.VXD в Windows 95 и Windows 98. [2] [3]

IFS в Windows NT

IFS API является частью комплекта драйверов Windows .

Когда Microsoft прекратила разработку OS/2 и сосредоточилась на том, что тогда называлось OS/2 NT, они взяли с собой идеи IFS, а также файловую систему HPFS.

Вместо схемы из четырех частей, 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, которые перехватывают операции ввода-вывода файлов. [4]

Apple начала включать драйверы HFS+ только для чтения в версию Boot Camp для Mac OS X 10.6 [5] для использования в Windows XP , Windows Vista и Windows 7 .

Дальнейшее чтение

  • Раджив Нагар (1997). Внутреннее устройство файловой системы Windows NT, Руководство разработчика . O'Reilly. ISBN 1-56592-249-2.
  • Хелен Кастер (1994). Внутри файловой системы Windows NT . Microsoft Press. ISBN 1-55615-660-X.
  • Хелен Кастер (1993). Внутри Windows NT . Microsoft Press. ISBN 1-55615-481-X.

Смотрите также

Ссылки

  1. ^ "FAT32 Installable File System Driver" . Получено 2020-09-04 .
  2. ^ Питер Х.С. Мэдсен. «Руководство по CONFIG.SYS и AUTOEXEC.BAT».
  3. ^ Результаты поиска Google Books для IFSHLP . Получено 2011-04-13 .
  4. ^ "О драйверах фильтров файловой системы - Драйверы Windows". 15 декабря 2021 г.
  5. ^ "Snow Leopard's Boot Camp включает драйверы HFS + Windows". 6 мая 2009 г. Получено 14 сентября 2012 г.
  • Руководство по проектированию драйверов файловых систем в Microsoft Docs

ext2/ext3/ext4

  • Ext2Fsd — это драйвер файловой системы GPL для Windows 2000 — Windows 8 (32- и 64-разрядные версии); он поддерживает запись/множество кодовых страниц, ext3 htree, журнал, начиная с версии 0.50.
  • ext2 IFS для Windows NT (только чтение)
  • Ext2IFS / Еще одна ext2-3 IFS для Windows NT/2000/XP/2003 (чтение/запись; поддержка имен файлов UTF-8 и ext3 htree; журнал ext3 не поддерживается)

ReiserFS

  • ReiserFS IFS для Windows NT (только чтение)

ХФС

  • Коммерческая HFS IFS для Windows NT

ОС/2

  • HFS IFS для OS/2
  • NTFS и FAT IFS для OS/2 Архивировано 20 июня 2017 г. на Wayback Machine
  • FTP-сервер, предлагающий драйверы IFS для OS/2. Архивировано 2017-05-02 на Wayback Machine.

Другой

  • CBFS Storage — кроссплатформенная однофайловая виртуальная файловая система с шифрованием и сжатием
  • CBFS Connect — SDK, позволяющий разработчикам создавать устанавливаемые виртуальные файловые системы для Windows в пользовательском режиме
  • RoFS - примеры драйверов Windows
  • WinFUSE — файловая система на базе .NET в среде USErspace, использующая SMB вместо IFS
  • Dokany — лицензированная MIT структура для файловых систем в пользовательском пространстве Windows, которая использует отдельный драйвер ядра с доступными привязками .NET.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Installable_File_System&oldid=1197685577"