La licenza GPL, con cui e' rilasciato il kernel di Linux, non ammette che si mischi codice libero e codice proprietario. Tutto il codice che utilizza software GPL deve avere il source accessibile.
Ma fra i produttori di hardware l'abitudine di completare caratteristiche dell'hardware col software (e correggere bachi hardware via software) deve essere piu' diffusa di quanto non si dica. Per questo fornire i source dei loro driver equivale a permettere alla gente (ed alla concorrenza) di sbirciare nei loro prodotti, cosa che non vogliono assolutamente fare.
Il risultato e' che molto hardware (fra cui varie schede grafiche 3D) e' supportato in Linux da driver proprietari, forniti dai produttori come moduli binari per il Kernel. In questo modo la parte "proprietaria" e' tecnicamente separata dal kernel. Questo approccio viene accettato dagli sviluppatori di Linux, per permettere una maggior diffusione del sistema, ma e' poco gradito ai puristi del software libero ed e' un problema per i fornitori di hardware, che devono produrre di continuo versioni diverse dei drivers, vista la varieta' delle distribuzioni e l'evoluzione veloce del kernel, specie per la serie 2.6.
Ammettere o no moduli propretari ? E' un problema annoso che da luogo a discussioni infinite.
Io non sono un fanatico della filosofia del software libero, ma ho sempre avuto problemi con i driver proprietari. L'hardware ha un suo (breve) ciclo di vita, quando si fabbrica qualcosa di nuovo il vecchio si abbandona. Il fabbricante rilascia driver lentamente rispetto all'evoluzione del kernel, e supporta l'hardware coi driver solo per qualche anno, fino a che ci guadagna, poi il supporto cessa ( o quasi ) e diventa un problema fare andare l'hardware con i nuovi kernel, se non c'e' un gruppo indipendente dal fabbricante che mantiene i drivers.
Alcune ditte affrontano il problema del supporto a Linux abbinando a driver aperti firmware proprietari, la situazione e' un po' migliore, poiche' la parte free del driver puo' essere inserita nel kernel e seguirne l'evoluzione, ma il problema e' solo in parte risolto; spesso le versioni dei driver free sono legate a specifiche versioni dei firmware, ed il problema del supporto e' solo spostato dal driver vero e proprio al firmware.
Dilemmi filosofici a parte avere un driver aperto e' una garanzia di qualita' e longevita' dell'hardware.