Come funzionano i tool che creano i drive virtuali? Come fanno ad “ingannare” il sistema operativo facendogli credere di acquisire dati da un drive ottico piuttosto che dall’hard disk? Che differenza c’è tra interfaccia sistema operativo-hard disk e sistema operativo-drive ottico?

La domanda direi che si riferisca ai sistemi Windows, comunque il funzionamento dei driver è unificabile anche se ovviamente esistono delle differenze tra i vari sistemi operativi.
Fondamentamente un driver non è altro che un insieme di funzioni (software), che se richiamate attivano dei circuiti hardware nel dispositivo a cui sono collegate.

Facciamo un esempio: abbiamo un driver di un hard-disk, e diciamo che esista una funzione per il posizionamento della testina di lettura/scrittura. Nel momento in cui questa funzione viene richiamata, vegono scritti dei byte sul buffer di sistema indirizzati allo specifico dispositivo.
Il dispositivo riceve questi dati e il sistema operativo del dispositivo (il firmware), non fa altro che interpretare i dati ricevuti e in base a questi attiva o disattiva circuiti hardware che nel nostro esempio attivano un motore elettrico che fisicamente sposta la testina.

I dispositivi vengono raggruppati in varie categorie e per ogni categoria il sistema si aspetta che i driver abbiano in comune delle funzioni di base. Tanto per tornare all’esempio un driver di un hard-disk deve come minimo permettere lo spostamento della testina, la lettura dei dati e ovviamente la scrittura.

Normalmente all’avvio quasi tutti i sistemi operativi effettuano automaticamente uno scan dei bus (PCI(-E), AGP, etc.), alla ricerca dei dispositivi installati, alla fine di questo scan, si avrà un elenco che viene confrontato con quello dei dispositivi rilevati nel precedente scan.
Ovviamente se si rilevano dei dispositivi nuovi il sistema cerca di inserirli in una specifica categoria, se per esempio il nuovo dispositivo si trova in uno slot APG è ragionevole pensare che si tratti di una scheda video, ed esistono dei driver generici che permettono il corretto funzionamento con le sole funzionalità di base, per le varie categorie (schede video, hard-disk, lettori CD/DVD).
Dopo questo processo di aggiornamento della lista dei dispositivi, si avvia una diagnostica dei dispositivi per accertarsi che siano effettivamente funzionanti, e questo avviene con il richiamo di una funzione di base dei driver per ottenere lo stato del dispositivo.

I tool che creano i drive virtuali non fanno altro che modificare la lista dei dispositivi presenti, aggiungendo un nuovo driver, che ovviamente ha le stesse funzioni di base dei normali driver.
Quando il sistema si avvia o effettua uno scan alla ricerca dei dispositivi, non rileva nessun nuovo dispositivo fisico, ma vede che esistono delle differenze tra i due elenchi, e passa alla diagnostica dei dispositivi tra cui quello virtuale. Quando lo testa, richiama l’apposita funzione del driver, che naturalmente risponde “Tutto OK!”, e a questo punto il sistema lo aggiunge tra i dispositivi operativi, ed ecco che vediamo apparire una nuova icona in explorer con l’iconcina del CD/DVD o altro in base a quello che il driver gli dice di saper fare e a quale categoria appartiene.

Per quanto riguarda le differenze tra le interfacce Hard-Disk e CD/DVD, ovviamente le prime permettono la anche la scrittura dei dati. Ma per il sistema operativo non è quella la vera differenza, ma più che altro è nella categoria in cui il driver dichiara di essere.