Installable File System
Installable File System (IFS) API файловых систем в IBM OS/2 и Microsoft Windows, который позволяет операционной системе распознать и загрузить драйвер файловой системы.
История
Когда разработчики IBM и Microsoft проектировали OS/2, они поняли , что FAT не отвечает требованиям современных ОС, и Microsoft приступила к разработке High Performance File System (HPFS), под кодовым названием Pinball. Вместо размещения кода внутри ядра, как для FAT, Microsoft разработала драйвер файловой системы, основанный на API, который позволил бы и другим разработчикам добавлять новые файловые системы в ядро без необходимости изменять его.
Когда Microsoft перестала работать над OS/2, IBM продолжила использовать интерфейс IFS и Microsoft реализовала подобный ему, уже в системах Windows.
IFS в DOS 4.x
IFS в OS/2
IFS предоставил основной и довольно мощный интерфейс для программирования файловых систем. Он был включён в 1989 году в OS/ 2 1.20, вместе с файловой системой HPFS.
Драйверы файловых систем выполняются в пространстве ядра ( кольцо 0 ) и разделены на четыре основных частей: microIFS, miniIFS, IFS, хелперы.
Для драйвера IFS сам код файловой системы не требуется, он будет загружен через директиву «IFS=» файла CONFIG.SYS. Это 16-битная динамически загружаемая библиотека нового EXE-формата. Независимо от того, если используется ли 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.х и выше), выполняются в пользовательском пространстве (кольцо 3) и содержат код , используемый для технического обслуживания файловой системы и вызываемый утилитами CHKDSK и FORMAT.
Эта схема из четыре частей позволила разработчикам динамически добавлять новую загрузочную файловую систему, такую как драйвер ext2 продемонстрированного в OS/2 .
CD-ROM , драйвер файловой системы ( Международная организация по стандартизации 9660 ) была добавлен в OS/2 2.0, UDF была добавлена в OS/2 4.0 и JFS была добавлена в OS/2 4.5. eComStation , последний релиз OS/2 также включает в себя множество драйверов файловых систем для OS/2 в семействе компакт-дисков. Был также официальный 32-разрядный HPFS IFS, называемый HPFS386 , повысивший производительность и добавивший некоторые функции, такие как кэш переменного размера и списки управления доступом, был доступен только в версии OS/2 Server 3,0. Файловая система FAT не была удалена из ядра и никогда официально не имела своего IFS, хотя есть FAT ISF, к которым добавлены функции, такие как длинные имена файлов (LFNs), поддержка FAT32 и т.д.
Сетевые протоколы обмена файлов, такие как NFS и SMB, также реализованы с использованием IFS, но сам интерфейс IFS никогда не изменялся.
IFS в Windows NT
Библиография
- O'Reilly - Windows NT File System Internals, A Developer's Guide - By Rajeev Nagar - ISBN 1-56592-249-2
- Microsoft Press - Inside Windows NT File System - By Helen Custer - ISBN 1-55615-660-X
- Microsoft Press - Inside Windows NT - By Helen Custer - ISBN 1-55615-481-X
Смотри также
Внешние ссылки
ext2/ext3
- Ext2 file system driver for windows 2000/XP/Vista (x86/amd64) (supports writing/multiple codepages, ext3 htree, journal support new in 0.50)
- ext2 IFS for Windows NT (Read only)
- Ext2IFS / Another ext2-3 IFS for Windows NT/2000/XP/2003 (Read/Write; support for UTF-8 file names and ext3 htree; ext3 journal not supported )
ReiserFS
- ReiserFS IFS for Windows NT (Read only)
HFS
OS/2
Другие
- Solid File System - (SolFS) cross-platform single-file virtual filesystem with encryption and compression
- Callback File System - SDK that lets developers create installable virtual file systems for Windows in user mode
- RomFS - Windows driver examples
- WinFUSE (недоступная ссылка — история, копия) - a .NET based Filesystem in USErspace framework that uses SMB instead of IFS
- Dokan - a user mode filesystem toolkit by means of an IFS proxy driver
Installable File System |
---|