Устанавливаемая файловая система ( 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.
Этот раздел нуждается в расширении . Вы можете помочь, дополнив его. ( Ноябрь 2016 ) |
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 никогда не менялся.
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 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 .