La programmazione sotto SCSI di Andrea Vallinotto
Qualche nozione preliminare.
Prima di incominciare la programmazione vera e propria, bisogna introdurre
qualche nozione fondamentale che riguarda la visione dello SCSI da parte del
programmatore (relativa quindi ai livelli Shared command set e
Device-Type Specific Command Sets).
Tutte queste nozioni sono fondamentalmente mirate alla lettura degli standards
disponibili presso la Home Page del
TX310, cioè il comitato che definisce lo SCSI-3.
Va innanzitutto notato che i files disponibili su questo sito sono delle bozze
dello SCSI vero e proprio: le versioni definitive non sono in libera
distribuzione, ma sono pubblicate e vendute (a caro prezzo) dall'ANSI.
Utilizzando le bozze (in Inglese draft), non si
rischia nulla, a patto di cercare sempre quelle più aggiornate possibile. Sul
sito inoltre, sono ben segnalati quei documenti che rappresentano la stesura
definitiva delle 'bozze', cioè quelle che si avvicinano il più possibile allo
standard approvato dall' ANSI.
I testi che sono necessari per programmare lo SCSI sono innanzitutto lo SPC (o
anche SPC-2, che però è ancora in fase di bozza) e quelli relativi ai singoli
tipi di dispositivi (hard-disk, streamer, CD-ROM/RW/DVD, stampanti, ecc...).
Ad una prima lettura questi documenti risultano un po' ostici e quindi bisogna
prendere un po' di tempo per abituarsi al linguaggio ed alla strutturazione
interna. Sono scritti con una notevole pignoleria: ad esempio all'inizio di
ogni documento sono definiti i significati dei termini Inglesi quali 'shall',
'should' e 'may'.
Questo però è giustificato dalle varie versioni fuori standard
utilizzate spesso da varie industrie del settore: se il protocollo di
riferimento non fosse più che preciso e pedante, ci sarebbe ancora più
confusione di quella già esistente.
La struttura dei documenti è pressochè sempre la stessa; per i manuali di
riferimento ad un singolo tipo di periferica, nei primi capitoli troviamo una
definizione formale del device in questione, quindi l'elenco e descrizione dei
comandi che possono essere utilizzati. Ogni comando nell'elenco può essere
sengalato come 'M' = obbligatorio (mandatory in Inglese) oppure 'O' = opzionale
(i comandi obbligatori sono pochissimi, ed è lasciato al fabbricante la facoltà
di dare ad un determinato dispositivo un insieme più o meno ricco di comandi).
Segue quindi la descrizione minuziosa del comando, con una piccola introduzione,
il CDB, e di seguito la spiegazione di tutti i campi del CDB. A volte ci sono
delle tabelle esplicative nel caso in cui diversi campi siano da usare in
maniera combinata.
Va sottolineato che questi documenti non sono testi divulgativi, ma
strettamente tecnici: sono un buon esempio di testo scientifico. In essi, tutto
ciò che è asserito va seguito alla lettera, e non c'è scritto niente di più del
necessario. Tutto ciò che non segue queste specifiche è fuori standard,
un'eresia (non esiste l'Inquisizione però. Anche perchè altrimenti molti
produttori sarebbero sui carboni ardenti - letteralmente).
|
|
|