Installerbart filsystem - Installable File System

Den Installerbar File System ( IFS ) er en filsystem API i MS-DOS / PC DOS 4.x, IBM OS / 2 og Microsoft Windows , der gør det muligt for operativsystemet at genkende og belastning drivere til filsystemer .

Historie

Da IBM og Microsoft udviklede OS / 2 sammen, indså de, at FAT-filsystemet ikke havde nogle af de funktioner, som moderne operativsystemer ville kræve, og Microsoft begyndte at udvikle High Performance File System (HPFS), kodenavnet Pinball .

I stedet for at kode det inde i kernen, som FAT var, udviklede Microsoft en "driverbaseret" filsystem-API, der kunne give dem og andre udviklere mulighed for at tilføje nye filsystemer til kernen uden at skulle ændre den.

Da Microsoft stoppede med at arbejde på OS / 2, fortsatte IBM med at bruge IFS-grænsefladen, og Microsoft implementerede en lignende i Windows NT.

Implementeringer

IFS i DOS 4.x

IFS i OS / 2

IFS leverede en grundlæggende og kraftfuld grænseflade til programmering af filsystemer. Det blev introduceret i 1989 i OS / 2 1.20 sammen med HPFS-filsystemet.

Filsystemdrivere, der udføres i kernel-space ( ring 0 ) og er opdelt i fire hovedstykker: microIFS, miniIFS, IFS, helpers.

Kun IFS og selve filsystemkoden kræves, og den indlæses via en " IFS =" -erklæring i CONFIG.SYS- filen. Det er et NE 16-bit dynamisk indlæst bibliotek . Ligegyldigt om det er et 32-bit OS / 2 (2.0 og nyere), er IFS altid 16-bit (selvom man ekstraofficielt kan lave en 32-bit IFS).

MicroIFS er et stykke kode, der indlæser kernen og miniIFS i hukommelsen og hopper til kernekørsel. Det er normalt i boot-delen af ​​filsystemet.

MiniIFS er et stykke kode, der kaldes af kernen til at indlæse den første IFS-sætning, der vises i CONFIG.SYS-filen, så den første IFS-sætning skal være bootens filsystem for at systemet skal kunne starte.

Hjælperne er 16-bit (til OS / 2 1.x) eller 32-bit (til OS / 2 2.x og op), udføres i brugerrummet ( ring 3 ) og indeholder den kode, der bruges til typisk filsystemvedligeholdelse , og kaldes af CHKDSK og FORMAT hjælpeprogrammer.

Denne firedelte ordning tillod udviklere dynamisk at tilføje et nyt bootbart filsystem, som ext2- driveren til OS / 2 demonstrerede.

CD-ROM- filsystemdriver ( ISO 9660 ) blev tilføjet i OS / 2 2.0, UDF blev tilføjet i OS / 2 4.0 og JFS blev tilføjet i OS / 2 4.5. ArcaOS , den nyeste emballage af OS / 2, har et antal filsystemdrivere til rådighed, inklusive FAT32. Der var også en officiel 32-bit HPFS IFS, kaldet HPFS386, der forbedrede ydeevnen og tilføjede nogle funktioner, som cache med variabel størrelse og adgangskontrolister , og var kun tilgængelig i visse OS / 2-serverudgaver. FAT-filsystemet blev aldrig fjernet fra kernen og officielt aldrig et IFS, selvom der er FAT IFS, der tilføjede funktioner som lange filnavne (LFN'er), FAT32- support osv.

Netværksfildelingsprotokoller som NFS og SMB implementeres også ved hjælp af IFS, og IFS-grænsefladen blev aldrig ændret.

IFS i Windows 3.11 og 9x

IFSHLP.SYS ( Installable File System Helper) er en MS-DOS- enhedsdriver, der først blev frigivet som en del af Microsoft Windows 3.11 . Det muliggør indfødt 32-bit filadgang i Windows 386 Enhanced Mode ved at omgå 16-bit DOS API og sikre, at ingen andre reelle mode- drivere opfanger INT 21h- opkald.

Den beskyttede modstykke til IFSHLP.SYS er IFSMGR.386 i Windows 3.11 og IFSMGR.VXD i Windows 95 og Windows 98.

IFS i Windows NT

IFS API er en del af Windows Driver Kit .

Da Microsoft stoppede med at udvikle OS / 2 og koncentrerede sig om det, der derefter blev kaldt OS / 2 NT, tog de IFS-idéerne sammen med HPFS-filsystemet.

I stedet for at være en firedelingsordning blev NT IFS redesignet til en todelt ordning. microIFS og miniIFS blev fjernet fra ordningen. IFS og hjælpere forbliver de samme, men senere, i Windows NT 4.0, blev en defragmenteringshjælper (DEFRAG) tilføjet. Microsofts originale NTLDR blev kodet til indlæsning af NT-kernen fra FAT, HPFS eller NTFS , men efterfølgende versioner droppede HPFS-understøttelse. Alle drivere og hjælpere blev 32-bit PE-eksekverbare filer . FAT-filsystemet blev flyttet ud af kernen til en IFS og var stærkt optimeret til ydeevne ved at udnytte 32-bit-behandlingsfunktionerne (kaldes FASTFAT ).

Original Windows NT 3.1 inkorporerede FAT, HPFS (Pinball) og de nyoprettede NTFS-drivere sammen med en ny og forbedret CD-ROM-filsystemdriver, der inkorporerede lange filnavne ved hjælp af Microsoft Joliet- filsystemet.

Windows NT 3.51 tilføjede komprimering pr. Fil til NTFS og til IFS-grænsefladen. I Windows NT 4.0 blev HPFS fjernet. I Windows 2000 blev FASTFAT opdateret til understøttelse af FAT32, og UDF blev tilføjet.

Windows 2000 ændrede IFS-grænsefladen for at tilføje kryptering pr. Fil.

Netværksfildelingsprotokoller og antivirus implementeres også ved hjælp af IFS.

Apple begyndte at inkludere skrivebeskyttede HFS + -drivere i Mac OS X 10.6 's version af Boot Camp til brug i Windows XP , Windows Vista og Windows 7 .

Yderligere læsning

  • Rajeev Nagar. Windows NT File System Internals, En udviklervejledning . O'Reilly. ISBN   1-56592-249-2 .
  • Helen Custer. Inde i Windows NT-filsystemet . Microsoft Press. ISBN   1-55615-660-X .
  • Helen Custer. Inde i Windows NT . Microsoft Press. ISBN   1-55615-481-X .

Se også

Referencer

eksterne links

ext2 / ext3 / ext4

ReiserFS

HFS

OS / 2

Andet

  • CBFS Storage - virtuelt filsystem med en fil på tværs af platforme med kryptering og komprimering
  • CBFS Connect - SDK, der lader udviklere oprette installerbare virtuelle filsystemer til Windows i brugertilstand
  • RomFS - Windows- drivereksempler
  • WinFUSE - et .NET-baseret filsystem i USErspace-ramme, der bruger SMB i stedet for IFS
  • Dokany - en MIT-licenseret ramme til filsystemer i Windows-brugere, der bruger en separat kernedriver med tilgængelige .NET-bindinger