Устанавливаемая файловая система
Устанавливаемая файловая система ( 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
[ редактировать ]Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( ноябрь 2016 г. ) |
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 ( помощник устанавливаемой файловой системы ) — это драйвер устройства 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+ только для чтения в для Mac OS X 10.6. версию Boot Camp [5] для использования в Windows XP , Windows Vista и Windows 7 .
Дальнейшее чтение
[ редактировать ]- Раджив Нагар (1997). Внутреннее устройство файловой системы Windows NT. Руководство разработчика . О'Рейли. ISBN 1-56592-249-2 .
- Хелен Кастер (1994). Внутри файловой системы Windows NT . Майкрософт Пресс. ISBN 1-55615-660-Х .
- Хелен Кастер (1993). Внутри Windows NT . Майкрософт Пресс. ISBN 1-55615-481-Х .
См. также
[ редактировать ]- Виртуальная файловая система
- Список файловых систем
- Сравнение файловых систем
- Сетевой редиректор
- Библиотечный магазин
Ссылки
[ редактировать ]- ^ «Драйвер устанавливаемой файловой системы FAT32» . Проверено 4 сентября 2020 г.
- ^ Питер Х.С. Мэдсен. «Руководство по CONFIG.SYS и AUTOEXEC.BAT» .
- ^ Результаты поиска в Google Книгах для IFSHLP . Проверено 13 апреля 2011 г.
- ^ "О драйверах фильтров файловой системы - Драйверы Windows" . 15 декабря 2021 г.
- ^ «Boot Camp Snow Leopard включает драйверы HFS + Windows» . 6 мая 2009 года . Проверено 14 сентября 2012 г.
Внешние ссылки
[ редактировать ]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 и htree ext3; журнал ext3 не поддерживается)
РайзерФС
[ редактировать ]- ReiserFS IFS для Windows NT (только чтение)
HFS
[ редактировать ]ОС/2
[ редактировать ]- HFS IFS для OS/2
- NTFS и FAT IFS для OS/2. Архивировано 20 июня 2017 г. на Wayback Machine.
- FTP-сервер, предлагающий драйверы IFS для OS / 2. Архивировано 2 мая 2017 г. на Wayback Machine.
Другой
[ редактировать ]- CBFS Storage — кроссплатформенная однофайловая виртуальная файловая система с шифрованием и сжатием.
- CBFS Connect — SDK, который позволяет разработчикам создавать устанавливаемые виртуальные файловые системы для Windows в пользовательском режиме.
- RomFS — примеры драйверов для Windows
- WinFUSE — файловая система на основе .NET в структуре USERspace, которая использует SMB вместо IFS.
- Dokany — лицензированная MIT платформа для файловых систем в пользовательском пространстве Windows, использующая отдельный драйвер ядра с доступными привязками .NET.