Condividi tramite


End-User richieste di I/O e oggetti file

I driver in modalità kernel sono nascosti agli utenti finali da un sottosistema protetto che implementa un'interfaccia di programmazione già nota, ad esempio Windows o POSIX. I dispositivi sono visibili al codice in modalità utente, che include sottosistemi protetti, solo come oggetti file denominati controllati dal gestore di I/O.

La figura seguente illustra questa relazione tra un utente finale, un sottosistema e il gestore di I/O.

diagramma che illustra gli oggetti file che rappresentano file, volumi e dispositivi.

Un sottosistema protetto, ad esempio il sottosistema Win32, passa le richieste di I/O al driver in modalità kernel appropriato tramite i servizi di sistema di I/O. Il sottosistema illustrato nella figura precedente dipende dal supporto dei driver di dispositivo display, video adapter, tastiera e mouse.

Un sottosistema protetto isola gli utenti finali e le applicazioni dalla necessità di conoscere i componenti in modalità kernel, inclusi i driver. A sua volta, il gestore di I/O isola i sottosistemi protetti dalla necessità di conoscere informazioni sulle configurazioni dei dispositivi specifiche del computer o sulle implementazioni dei driver.

L'approccio a più livelli del gestore di I/O isola anche la maggior parte dei conducenti dalla necessità di conoscere i seguenti aspetti:

  • Indica se una richiesta di I/O ha avuto origine in un sottosistema protetto specifico, ad esempio Win32 o POSIX

  • Indica se un determinato sottosistema protetto ha determinati tipi di driver in modalità utente

  • Qual è il modello di I/O del sottosistema protetto e l'interfaccia dei driver

Il gestore di I/O fornisce driver con un singolo modello di I/O, un set di routine di supporto in modalità kernel che i driver possono usare per eseguire operazioni di I/O e un'interfaccia coerente tra l'originatore di una richiesta di I/O e i driver che devono rispondere.

Come illustrato nella figura precedente, un sottosistema e le relative applicazioni native possono accedere al dispositivo di un driver o a un file in un dispositivo di archiviazione di massa solo tramite handle di oggetti file forniti dal gestore di I/O. Per aprire un oggetto file di questo tipo o per ottenere un handle per l'I/O in un dispositivo o un file di dati, un sottosistema chiama i servizi di sistema di I/O con una richiesta di apertura di un file denominato. Il file denominato può avere un alias specifico del sottosistema (collegamento simbolico) al nome della modalità kernel per l'oggetto file.

Il gestore di I/O, che esporta questi servizi di sistema, è quindi responsabile dell'individuazione o della creazione dell'oggetto file che rappresenta il dispositivo o il file di dati e per individuare i driver appropriati.