close

File system installabile

Vai alla navigazione Vai alla ricerca

Installable File System ( IFS ) è un'API del file system in IBM OS/2 e Microsoft Windows che consente al sistema operativo di riconoscere e caricare un driver del file system.

Storia

Quando gli sviluppatori IBM e Microsoft stavano progettando OS/2, si sono resi conto che FAT non soddisfaceva i requisiti dei moderni sistemi operativi e Microsoft ha iniziato a sviluppare HPFS (High Performance File System) nome in codice Pinball . Invece di inserire codice all'interno del kernel, come per FAT, Microsoft ha sviluppato un driver di filesystem basato su API che avrebbe consentito ad altri sviluppatori di aggiungere nuovi filesystem al kernel senza doverlo modificare.

Quando Microsoft ha smesso di lavorare su OS/2, IBM ha continuato a utilizzare l'interfaccia IFS e Microsoft ne ha implementata una simile sui sistemi Windows.

IFS in DOS 4.x

MS-DOS 4.0 supporta la direttiva IFS per il caricamento di driver di file system di terze parti. [uno]

Formato del comando: IFS=<unità><percorso><driver>, come per la direttiva DEVICE.

IFS in OS/2

IFS ha fornito un'interfaccia di base e abbastanza potente per la programmazione del file system. È stato incluso nel 1989 con OS/2 1.20 insieme al file system HPFS.

I driver del file system vengono eseguiti nello spazio del kernel (anello 0) e sono divisi in quattro parti principali: microIFS, miniIFS, IFS, helper.

Per il driver IFS, il codice del file system stesso non è richiesto, verrà caricato tramite la direttiva "IFS=" del file CONFIG.SYS. Questa è una libreria a 16 bit caricata dinamicamente in un nuovo formato EXE. Indipendentemente dal fatto che si utilizzi OS/2 a 32 bit (2.0 e versioni successive), IFS è sempre a 16 bit (sebbene sia possibile creare anche IFS a 32 bit).

MicroIFS è un pezzo di codice che carica il kernel miniIFS in memoria e passa il controllo al kernel. Questo codice è contenuto nelle parti di avvio del file system.

MiniIFS è il codice che viene eseguito dal kernel dopo la prima direttiva "IFS=" specificata nel file CONFIG.SYS, quindi il primo argomento di IFS deve essere il file system dell'unità di sistema affinché si avvii.

Gli helper, a 16 bit (per OS/2 1.x) o a 32 bit (per OS/2 /2.x e versioni successive), vengono eseguiti nello spazio utente (anello 3) e contengono il codice utilizzato per la manutenzione del file system e richiamati da le utilità CHKDSK e FORMAT.

Questo schema in quattro parti ha consentito agli sviluppatori di aggiungere dinamicamente un nuovo filesystem di avvio, come il driver ext2 mostrato in OS/2.

Il driver del file system del CD-ROM (ISO 9660) è stato aggiunto in OS/2 2.0, UDF è stato aggiunto in OS/2 4.0 e JFS è stato aggiunto in OS/2 4.5. eComStation, l'ultima versione di OS/2, include anche molti driver di file system per OS/2 nella famiglia di CD. C'era anche un IFS HPFS ufficiale a 32 bit chiamato HPFS386 che migliorava le prestazioni e aggiungeva alcune funzionalità come la cache di dimensioni variabili e gli elenchi di controllo dell'accesso era disponibile solo in OS/2 Server 3.0. Il file system FAT non è stato rimosso dal kernel e non ha mai avuto ufficialmente un proprio IFS, sebbene ci siano ISF FAT che hanno aggiunto funzionalità come nomi di file lunghi (LFN), supporto FAT32, ecc.

Anche i protocolli di condivisione di file di rete come NFS e SMB vengono implementati utilizzando IFS, ma l'interfaccia IFS stessa non è mai cambiata.

IFS in Windows NT

L'API IFS fa parte del Windows Driver Kit. Quando Microsoft (dopo aver venduto il sistema a IBM) smise di sviluppare OS/2 e si concentrò su quello che fu inizialmente chiamato OS/2 NT, presero l'idea da IFS insieme al file system HPFS.

Invece di un sistema in 4 parti, NT IFS è stato riprogettato in uno schema in due parti: microIFS e miniIFS sono stati rimossi da esso. IFS e gli helper rimangono gli stessi, ma in seguito, in Windows NT 4.0, è stato aggiunto un helper di deframmentazione (DEFRAG). L'NTLDR originale di Microsoft è stato codificato per avviare il kernel NT da FAT, HPFS o NTFS, ma le versioni successive hanno abbandonato il supporto per HPFS. Tutti i driver e gli helper sono diventati New Type Executables (PE) a 32 bit. Il file system FAT è stato portato dal kernel a IFS ed è stato fortemente ottimizzato per funzionare utilizzando funzionalità di gestione dei dispositivi a 32 bit (denominate Fastfat).

Il Windows NT 3.1 originale includeva FAT, HPFS (Pinball) e driver NTFS di nuova creazione insieme a un driver del file system CD-ROM nuovo e migliorato che includeva il supporto per nomi di file lunghi utilizzando il file system Microsoft Joliet.

Windows NT 3.51 ha aggiunto la compressione per file per NTFS e l'interfaccia IFS. In Windows NT 4.0, HPFS è stato rimosso. Windows 2000 Fastfat ha aggiornato il supporto per il file system FAT32 e ha aggiunto UDF.

Windows 2000 ha modificato l'interfaccia IFS per includere la crittografia per file. Anche i protocolli di rete e gli antivirus per la condivisione di file vengono implementati tramite IFS.

Apple ha iniziato a includere driver HFS+ di sola lettura nelle versioni di Mac OS X 10.6 per l'uso su Windows XP, Windows Vista e Windows 7.

Bibliografia

  • O'Reilly - Interni del file system di Windows NT, Guida per gli sviluppatori - Di Rajeev Nagar - ISBN 1-56592-249-2
  • Microsoft Press - All'interno del file system di Windows NT - Di Helen Custer - ISBN 1-55615-660-X
  • Microsoft Press - All'interno di Windows NT - Di Helen Custer - ISBN 1-55615-481-X

Vedi anche

Collegamenti

ext2/ext3

ReiserFS

HFS

OS/2

Altri

  • Solid File System Archiviato il 14 luglio 2008 in Wayback Machine - ( SolFS  ) file system virtuale multipiattaforma a file singolo con crittografia e compressione
  • Callback File System  - SDK che consente agli sviluppatori di creare file system virtuali installabili per Windows in modalità utente
  • RomFS  - Esempi di driver per Windows
  • WinFUSE  — un filesystem basato su .NET nel framework USErspace che usa SMB invece di IFS
  • Dokan  — un toolkit del filesystem in modalità utente per mezzo di un driver proxy IFS

Note

  1. ^ Kevtronics. Comandi non documentati . [email protected] . Estratto il 25 maggio 2017 . Archiviata dall'originale il 20 febbraio 2012.