stringtranslate.com

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

Устанавливаемая файловая система ( 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. [1] Также существовала официальная 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. [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 [5] для Mac OS X 10.6 для использования в Windows XP , Windows Vista и Windows 7 .

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

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

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

  1. ^ «Устанавливаемый драйвер файловой системы FAT32» . Проверено 4 сентября 2020 г.
  2. ^ Питер Х.С. Мэдсен. «Руководство по CONFIG.SYS и AUTOEXEC.BAT».
  3. ^ Результаты поиска в Google Книгах для IFSHLP . Проверено 13 апреля 2011 г.
  4. ^ «О драйверах фильтров файловой системы - драйверах Windows» . 15 декабря 2021 г.
  5. ^ «Учебный лагерь Snow Leopard включает драйверы HFS + Windows» . 6 мая 2009 года . Проверено 14 сентября 2012 г.

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

ext2/ext3/ext4

РайзерФС

HFS

ОС/2

Другой