11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.4. LA GESTIONE DI INTERFACCE E PERIFERICHE 231periferica e viceversa, indicati con downstream e upstream; inoltre vengono specificati quattrotipi di trasferimento:Control transfersutilizzati per inviare pacchetti di controllo, che devono essere di dimensioni ridotte etrasportati con affidabilità; viene usata per configurare i dispositivi e per supportarei comandi di controllo di base.Bulk transfersusata per trasmettere dati alla massima velocità possibile in maniera affidabile; vieneusata per i trasferimenti di dati da e verso i dispositivi.Interrupt transferssimili ai precedenti, ma ripetuti periodicamente, la richiesta viene ripetuta periodicamente,vengono utilizzati come meccanismo di notifica (dato che non esiste un vero eproprio interrupt).Isochronous transfersusata per inviare e riceve dati potendo contare su una quantità di banda garantita,ma senza affidabilità, usata per trasferimenti real-time (ad esempio i trasferimenti pervideo e audio).La presenza di due direzioni nel flusso di dati si riflette anche sui connettori, che in generesono classificati in due tipi diversi, a seconda che siano rivolti all’unità di controllo (di tipo A)o verso una periferica (di tipo B). Inoltre i dispositivi si possono suddividere in autoalimentati,alimentati dal bus, 80 o entrambi. Un’altra distinzione fra i dispositivi è fra quelli lenti (comemouse, tastiere, ecc.) che comunicano al massimo ad 1.5Mbit/s e quelli veloci che possono usarepotenzialmente fino al 90% della banda passante massima.La prima versione del protocollo (USB 1.0) consentiva una banda passante massima di 12Mibit/s.Tuttavia l’uso di dispositivi lenti, gli interrupt e l’overhaed del protocollo non consentonovelocità superiori a 8.5Mbit/s anche in condizioni ideali, mentre prestazioni tipiche sono intornoai 2Mbit/s. La seconda versione del protocollo, la USB2 permette invece di portare la bandapassante ad un massimo teorico 480Mibit/s, ampliando notevolmente l’utilizzabilità del bus perl’utilizzo con dispositivi di stoccaggio esterni (in particolare con dischi rimuovibili).Negli ultimi tempi praticamente qualunque PC compatibile viene fornito di interfaccia USB,usualmente fornita direttamente dal chipset della piastra madre, anche se sono disponibili schedePCI con a bordo delle unità di controllo. Per quanto riguarda USB 1.0 le unità di controllo sonosostanzialmente di due tipi, o compatibili con le specifiche Open Host Controller Interface (oOHCI) della Compaq (usata anche nel mondo Mac) o con la specifiche Universal Host ControllerInterface della Intel. Le funzionalità sono le stesse, ma la seconda specifica richiede hardwarepiù semplice e quindi è meno costosa, ma richiede un driver più complesso e quindi un maggiorcarico sulla CPU.Il supporto per USB è stato introdotto per la prima volta a partire dal kernel 2.2.7; manella serie 2.2.x il supporto è molto grezzo, almeno fino al 2.2.18 in cui sono state portateindietro parecchie funzionalità del 2.4; per un supporto pieno delle funzionalità del bus (ed inparticolare per utilizzare dischi su USB) occorre comunque usare un kernel della serie 2.4.x osuccessivo. In ogni caso <strong>Linux</strong> supporta entrambi i tipi di unità di controllo (UHCI o OHCI),utilizzando rispettivamente i moduli usb-uhci e usb-ohci (da selezionare nella relativa sezionedi configurazione del kernel, vedi sez. 5.1.3).In genere è estremamente facile riconoscere quale delle due interfacce viene utilizzata, bastainfatti usare lspci per verificare il tipo di unità di controllo; avremo allora, a seconda dei casi,per una macchina che ha una unità UHCI:80 che fornisce un massimo di 400 mA, quindi attenzione a non sovraccaricare, pena il rischio di non far funzionarenulla per mancanza di potenza.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!