[CURIOSITA'] Cos'è un driver? E' così facile crearne uno?
Avendo usato per qualche mese Linux è capitato più volte che mancassero i "driver" per alcune periferiche -senza di questi non era possibile farle funzionare. Ora mi chiedo: di cosa si tratta esattamente?. Non so se la definizione può essermi d'aiuto, ma piuttosto mi chiedo: cosa c'è "dietro" un driver? In che linguaggio viene pensato? Anche in C? Com'è possibile che persone che non siano i costruttori dell'apparecchiatura riescano a comprendere il funzionamento interno di una periferica che potrebbe essere diversissima da un'altra? Per Linux ho sentito parlare a volte di "driver proprietari". Significa che le stesse case costruttrici hanno preso a cuore gli utenti open-source?
E' una questione delicata? Perché si aspetta del tempo prima che i driver vengano sviluppati da qualcuno?
Non sapevo se postare in Generale. Nel caso, spostate grazie!
E' una questione delicata? Perché si aspetta del tempo prima che i driver vengano sviluppati da qualcuno?
Non sapevo se postare in Generale. Nel caso, spostate grazie!

Risposte
In generale, un driver è una libreria che permette al kernel di dialogare con una qualche periferica o componente del computer. Si tratta di qualcosa di molto delicato perché un driver ha normalmente privilegi molto più alti di un comune programma utente. E' quindi maggiormente in grado di danneggiare il sistema operativo. Inoltre le informazioni riguardo alla particolare periferica potrebbero non essere disponibili o disponibili solo in parte.
I driver proprietari sono spesso closed-source, per cui non direi esattamente che hanno preso a cuore gli utenti open-source. Hanno semplicemente riconosciuto dei vantaggi economici nel fornire driver per i loro dispositivi per il sistema linux. In alcuni ambienti professionali, linux è molto usato.
I driver proprietari sono spesso closed-source, per cui non direi esattamente che hanno preso a cuore gli utenti open-source. Hanno semplicemente riconosciuto dei vantaggi economici nel fornire driver per i loro dispositivi per il sistema linux. In alcuni ambienti professionali, linux è molto usato.
"giuscri":
Ora mi chiedo: di cosa si tratta esattamente?
Bella domanda, commuove il mio cuore di hacker.

"giuscri":
In che linguaggio viene pensato? Anche in C?
"Pensato" direi in base all'architettura e al sistema operativo. In C spesso (quasi sempre) viene scritto, per vari motivi.
"giuscri":
Com'è possibile che persone che non siano i costruttori dell'apparecchiatura riescano a comprendere il funzionamento interno di una periferica che potrebbe essere diversissima da un'altra?
Perché la tua sensazione è perlopiù apparente - queste diversità che per te appaiono grandi, in realta per gli addetti ai lavori sono differenze minime.
"giuscri":
Per Linux ho sentito parlare a volte di "driver proprietari". Significa che le stesse case costruttrici hanno preso a cuore gli utenti open-source?
Ma per carità. Quoto apatriarca.
Capisco. Avete qualche lettura da consigliarmi?, qualche guida giusto per il gusto di vedere davvero di cosa si tratta. Che ne so: scrivere il driver di una pennetta USB, o di un mouse - qualche periferica "facile" (sempre che facile sia la parola giusta in questo settore). Anche per capire di quali strumenti avrei bisogno.
Grazie!
Grazie!

http://www.linux.it/~rubini/docs/index.html
qui c'è qualcosa di interessante da sfogliare.
Bella domanda, commuove il mio cuore di hacker.
[/quote]
qui c'è qualcosa di interessante da sfogliare.
"Rggb":
[quote="giuscri"]Ora mi chiedo: di cosa si tratta esattamente?
Bella domanda, commuove il mio cuore di hacker.



Bene, grazie! Più tardi gli darò un'occhiata molto seria.

Sinceramente sconsiglio ad un programmatore alle prime armi di cimentarsi nella scrittura di un driver, anche a seguito della lettura di un paio di libri. I driver non sono facili da scrivere (tieni conto che molti dei bachi di Windows e Linux derivano dai driver*) e richiedono una discreta conoscenza del funzionamento interno dei dispositivi e del sistema operativo. Inoltre spesso cercando su internet riesci a risolvere il problema con un paio di comandi da console (ed eventualmente l'istallazione di qualche pacchetto già fatto).
* Cosa che avvantaggia apple perché fa sembrare Mac OSX molto meglio di quel che è: la apple selezione con MOLTA attenzione i dispositivi che possono interfacciarsi con i loro dispositivi riducendo i rischi di conflitti.
* Cosa che avvantaggia apple perché fa sembrare Mac OSX molto meglio di quel che è: la apple selezione con MOLTA attenzione i dispositivi che possono interfacciarsi con i loro dispositivi riducendo i rischi di conflitti.