Устанавливаемая файловая система - Installable File System

Installable File System ( 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 . Это 16-битная динамически загружаемая библиотека NE . Независимо от того, 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. Также существовала официальная 32-битная HPFS IFS под названием HPFS386, которая улучшала производительность и добавляла некоторые функции, такие как кэш переменного размера и списки контроля доступа , и была доступна только в некоторых редакциях сервера OS / 2. Файловая система FAT никогда не удалялась из ядра и официально никогда не была IFS, хотя есть FAT IFS, в которую добавлены такие функции, как длинные имена файлов (LFN), поддержка FAT32 и т. Д.

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

IFS в Windows 3.11 и 9x

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

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

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.

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

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

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

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

Рекомендации

внешние ссылки

ext2 / ext3 / ext4

ReiserFS

HFS

OS / 2

разное

  • CBFS Storage - кроссплатформенная однофайловая виртуальная файловая система с шифрованием и сжатием
  • CBFS Connect - SDK, который позволяет разработчикам создавать устанавливаемые виртуальные файловые системы для Windows в пользовательском режиме.
  • RomFS - примеры драйверов для Windows
  • WinFUSE - файловая система на основе .NET в среде USErspace, которая использует SMB вместо IFS
  • Dokany - лицензированный MIT фреймворк для файловых систем в пользовательском пространстве Windows, использующий отдельный драйвер ядра с доступными привязками .NET.