Installerbart filsystem - Installable File System

Den Installer File System ( IFS ) er en filsystem API i MS-DOS / PC DOS 4.x, IBM OS / 2 og Microsoft Windows som gjør at operativsystemet til å gjenkjenne og laste drivere for filsystemer .

Historie

Da IBM og Microsoft var med på å utvikle OS / 2, innså de at FAT-filsystemet ikke hadde noen av funksjonene som moderne operativsystemer ville kreve, og Microsoft begynte å utvikle High Performance File System (HPFS), kodenavnet Pinball .

I stedet for å kode den inne i kjernen, slik FAT var, utviklet Microsoft en "driverbasert" filsystem-API som kunne tillate dem og andre utviklere å legge til nye filsystemer i kjernen uten å måtte endre den.

Da Microsoft sluttet å jobbe med OS / 2, fortsatte IBM å bruke IFS-grensesnittet, og Microsoft implementerte en lignende i Windows NT.

Implementeringer

IFS i DOS 4.x

IFS i OS / 2

IFS ga et grunnleggende og kraftig grensesnitt for programmering av filsystemer. Den ble introdusert i 1989 i OS / 2 1.20, sammen med HPFS-filsystemet.

Filsystemdrivere utført i kernel-space ( ring 0 ) og er delt inn i fire hovedstykker: microIFS, miniIFS, IFS, helpers.

Bare IFS og selve filsystemkoden kreves, og den lastes inn via en " IFS =" -uttalelse i CONFIG.SYS- filen. Det er et NE 16-biters dynamisk lastet bibliotek . Uansett om det er et 32-bit OS / 2 (2.0 og nyere), er IFS alltid 16-bit (selv om du utenoffisielt kan lage en 32-bit IFS).

MicroIFS er et stykke kode som laster i kjernen og miniIFS i minnet og hopper til kjernekjøring. Det er vanligvis i oppstartsdelen av filsystemet.

MiniIFS er et stykke kode som kalles av kjernen for å laste den første IFS-setningen som vises i CONFIG.SYS-filen, så den første IFS-setningen må være boot-filsystemet for at systemet skal kunne starte.

Hjelperne er 16-biters (for OS / 2 1.x) eller 32-biters (for OS / 2 2.x og oppover), blir utført i brukerområdet ( ring 3 ) og inneholder koden som brukes til typisk vedlikehold av filsystemet , og kalles av CHKDSK og FORMAT verktøy.

Denne firedelte ordningen tillot utviklere å dynamisk legge til et nytt oppstartbart filsystem, som ext2- driveren for OS / 2 demonstrerte.

CD-ROM- filsystemdriver ( ISO 9660 ) ble lagt til i OS / 2 2.0, UDF ble lagt til i OS / 2 4.0 og JFS ble lagt til i OS / 2 4.5. ArcaOS , den siste emballasjen til OS / 2, har en rekke filsystemdrivere tilgjengelig, inkludert FAT32. Det var også en offisiell 32-biters HPFS IFS, kalt HPFS386 som forbedret ytelsen og la til noen funksjoner, som hurtigbuffer med variabel størrelse og tilgangskontrollister , og var bare tilgjengelig i visse OS / 2-serverversjoner. FAT-filsystemet ble aldri fjernet fra kjernen og offisielt aldri en IFS, selv om det er FAT IFS som la til funksjoner som lange filnavn (LFNs), FAT32- støtte, etc.

Nettverksfildelingsprotokoller som NFS og SMB implementeres også ved bruk av IFS, og IFS-grensesnittet ble aldri endret.

IFS i Windows 3.11 og 9x

IFSHLP.SYS ( Installable File System Helper) er en MS-DOS- enhetsdriver som først ble utgitt som en del av Microsoft Windows 3.11 . Det gjør mors 32-biters filtilgang i Windows 386 Enhanced Mode ved å omgå 16-bit DOS API og sikre at ingen andre realmodus driver fanger INT 21H samtaler.

Den beskyttede modusmotparten 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 av Windows Driver Kit .

Da Microsoft sluttet å utvikle OS / 2 og konsentrerte seg om det som da ble kalt OS / 2 NT, tok de IFS-ideene med seg, sammen med HPFS-filsystemet.

I stedet for å være en firedelingsplan, ble NT IFS redesignet til en todelt ordning. microIFS og miniIFS ble fjernet fra ordningen. IFS og hjelpere forblir de samme, men senere, i Windows NT 4.0, ble en defragmenteringshjelper (DEFRAG) lagt til. Microsofts originale NTLDR ble kodet for å laste NT-kjernen fra FAT, HPFS eller NTFS , men påfølgende versjoner droppet HPFS-støtte. Alle driverne og hjelperne ble 32-biters PE-kjørbare filer . FAT-filsystemet ble flyttet ut av kjernen til en IFS og var sterkt optimalisert for ytelse, og utnyttet 32-biters behandlingsfunksjoner (kalt FASTFAT ).

Opprinnelige Windows NT 3.1 inkorporerte FAT, HPFS (Pinball) og de nyopprettede NTFS-driverne, sammen med en ny og forbedret CD-ROM-filsystemdriver som innlemmet lange filnavn ved hjelp av Microsoft Joliet- filsystemet.

Windows NT 3.51 la til komprimering per fil til NTFS og IFS-grensesnittet. I Windows NT 4.0 ble HPFS fjernet. I Windows 2000 ble FASTFAT oppdatert for å støtte FAT32 og UDF ble lagt til.

Windows 2000 modifiserte IFS-grensesnittet for å legge til kryptering per fil.

Nettverksfildelingsprotokoller og antivirus implementeres også ved bruk av IFS.

Apple begynte å inkludere skrivebeskyttede HFS + -drivere i Mac OS X 10.6 -versjonen av Boot Camp for bruk i Windows XP , Windows Vista og Windows 7 .

Videre lesning

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

Se også

Referanser

Eksterne linker

ext2 / ext3 / ext4

ReiserFS

HFS

OS / 2

Annen

  • CBFS Storage - kryssplattform virtuelt filsystem med én fil med kryptering og komprimering
  • CBFS Connect - SDK som lar utviklere lage installerbare virtuelle filsystemer for Windows i brukermodus
  • RomFS - Windows- drivereksempler
  • WinFUSE - et .NET-basert filsystem i USErspace-rammeverk som bruker SMB i stedet for IFS
  • Dokany - et MIT-lisensiert rammeverk for filsystemer i Windows-brukerområdet som bruker en egen kjernedriver, med tilgjengelige .NET-bindinger