Sistem de fișiere instalabil - Installable File System

Sistemul de fișiere instalabil ( IFS ) este un API de sistem de fișiere în MS-DOS / PC DOS 4.x, IBM OS / 2 și Microsoft Windows care permite sistemului de operare să recunoască și să încarce driverele pentru sistemele de fișiere .

Istorie

Când IBM și Microsoft au dezvoltat împreună OS / 2, și-au dat seama că sistemul de fișiere FAT nu oferea unele dintre caracteristicile pe care le ar necesita sistemele de operare moderne și Microsoft a început să dezvolte sistemul de fișiere de înaltă performanță (HPFS), denumit în cod Pinball .

În loc să-l codeze în interiorul nucleului, așa cum a fost FAT, Microsoft a dezvoltat un API de sistem de fișiere „bazat pe driver” care le-ar putea permite acestora și altor dezvoltatori să adauge noi sisteme de fișiere în nucleu fără a fi nevoie să îl modifice.

Când Microsoft a încetat să lucreze pe OS / 2, IBM a continuat să utilizeze interfața IFS și Microsoft a implementat una similară în Windows NT.

Implementări

IFS în DOS 4.x

IFS în OS / 2

IFS a furnizat o interfață de bază și puternică pentru programarea sistemelor de fișiere. A fost introdus în 1989 în OS / 2 1.20, împreună cu sistemul de fișiere HPFS.

Driverele de sistem de fișiere executate în spațiul kernel ( inelul 0 ) și sunt împărțite în patru bucăți principale: microIFS, miniIFS, IFS, ajutoare.

Doar codul IFS și sistemul de fișiere în sine sunt necesare și este încărcat printr-o instrucțiune " IFS =" în fișierul CONFIG.SYS . Este o bibliotecă NE de 16 biți încărcată dinamic . Indiferent dacă este un OS / 2 pe 32 de biți (2.0 și mai nou), IFS este întotdeauna pe 16 biți (deși extraoficial puteți crea un IFS pe 32 de biți).

MicroIFS este o bucată de cod care încarcă în memorie kernel-ul și miniIFS-ul și trece la execuția kernel-ului. De obicei se află în porțiunea de boot a sistemului de fișiere.

MiniIFS este o bucată de cod care este apelată de kernel pentru a încărca prima instrucțiune IFS care apare în fișierul CONFIG.SYS, deci prima instrucțiune IFS trebuie să fie sistemul de fișiere de boot pentru ca sistemul să poată porni.

Ajutorii sunt pe 16 biți (pentru OS / 2 1.x) sau pe 32 de biți (pentru OS / 2 2.x și în sus), sunt executați în spațiul utilizatorului ( inelul 3 ) și conțin codul utilizat pentru întreținerea tipică a sistemului de fișiere , și sunt apelate de CHKDSK și FORMAT utilități.

Această schemă compusă din patru piese le-a permis dezvoltatorilor să adauge dinamic un nou sistem de fișiere bootabil, așa cum a demonstrat driverul ext2 pentru OS / 2.

Driverul de sistem de fișiere CD-ROM ( ISO 9660 ) a fost adăugat în OS / 2 2.0, UDF în OS / 2 4.0 și JFS în OS / 2 4.5. ArcaOS , cel mai recent ambalaj OS / 2, are disponibile o serie de drivere de sistem de fișiere, inclusiv FAT32. A existat, de asemenea, un HPFS IFS oficial pe 32 de biți, numit HPFS386, care a îmbunătățit performanța și a adăugat unele caracteristici, cum ar fi memoria cache de dimensiuni variabile și Listele de control acces , și a fost disponibil numai în anumite ediții de server OS / 2. Sistemul de fișiere FAT nu a fost niciodată eliminat din kernel și oficial niciodată un IFS, deși există FAT IFS care au adăugat caracteristici precum nume de fișiere lungi (LFN), suport FAT32 etc.

Protocoalele de partajare a fișierelor în rețea, cum ar fi NFS și SMB, sunt de asemenea implementate folosind IFS, iar interfața IFS nu s-a schimbat niciodată.

IFS în Windows 3.11 și 9x

IFSHLP.SYS ( asistentul de sistem de fișiere instalabil ) este un driver de dispozitiv MS-DOS care a fost lansat pentru prima dată ca parte a Microsoft Windows 3.11 . Permite accesul nativ la fișiere pe 32 de biți în modul îmbunătățit Windows 386, ocolind API-ul DOS pe 16 biți și asigurându-se că niciun alt driver de mod real nu interceptă apelurile INT 21h .

Omologul de mod protejat al IFSHLP.SYS este IFSMGR.386 în Windows 3.11 și IFSMGR.VXD în Windows 95 și Windows 98.

IFS în Windows NT

API-ul IFS face parte din Windows Driver Kit .

Când Microsoft a încetat să dezvolte OS / 2 și s-a concentrat pe ceea ce se numea atunci OS / 2 NT, au luat ideile IFS cu el, împreună cu sistemul de fișiere HPFS.

În loc să fie o schemă din patru piese, NT IFS a fost reproiectat într-o schemă din două piese. microIFS și miniIFS au fost eliminate din schemă. IFS și ajutoarele rămân la fel, dar mai târziu, în Windows NT 4.0, a fost adăugat un ajutor de defragmentare (DEFRAG). NTLDR original Microsoft a fost codificat pentru încărcarea nucleului NT din FAT, HPFS sau NTFS , dar versiunile ulterioare au renunțat la suportul HPFS. Toți driverele și ajutoarele au devenit executabile PE pe 32 de biți . Sistemul de fișiere FAT a fost mutat din Kernel într-un IFS și a fost puternic optimizat pentru performanță, profitând de capacitățile de procesare pe 32 de biți (fiind numit FASTFAT ).

Windows NT 3.1 original a încorporat FAT, HPFS (Pinball) și driverele NTFS nou create, împreună cu un driver de sistem de fișiere CD-ROM nou și îmbunătățit care a încorporat nume de fișiere lungi folosind sistemul de fișiere Microsoft Joliet .

Windows NT 3.51 a adăugat compresie per fișier la NTFS și la interfața IFS. În Windows NT 4.0 HPFS a fost eliminat. În Windows 2000 FASTFAT a fost actualizat pentru a suporta FAT32 și UDF a fost adăugat.

Windows 2000 a modificat interfața IFS pentru a adăuga criptarea fișierului.

Protocoalele de partajare a fișierelor în rețea și antivirusul sunt, de asemenea, implementate utilizând IFS.

Apple a început să includă doar drivere HFS + citite în versiunea Boot Camp de Mac OS X 10.6 pentru utilizare în Windows XP , Windows Vista și Windows 7 .

Lecturi suplimentare

  • Rajeev Nagar. Windows NT File System Internals, Un ghid pentru dezvoltatori . O'Reilly. ISBN   1-56592-249-2 .
  • Helen Custer. În sistemul de fișiere Windows NT . Microsoft Press. ISBN   1-55615-660-X .
  • Helen Custer. În Windows NT . Microsoft Press. ISBN   1-55615-481-X .

Vezi si

Referințe

linkuri externe

ext2 / ext3 / ext4

ReiserFS

HFS

OS / 2

Alte

  • Stocare CBFS - sistem de fișiere virtuale cu un singur fișier multiplataforma cu criptare și compresie
  • CBFS Connect - SDK care permite dezvoltatorilor să creeze sisteme de fișiere virtuale instalabile pentru Windows în modul utilizator
  • RomFS - exemple de drivere Windows
  • WinFUSE - un sistem de fișiere bazat pe .NET în cadrul USErspace care utilizează SMB în loc de IFS
  • Dokany - un cadru licențiat MIT pentru sistemele de fișiere din spațiul utilizatorilor Windows care utilizează un driver de kernel separat, cu legături disponibile .NET