Addio a Larry Finger, se oggi possiamo usare il WiFi su Linux è merito suo

L'ultimo saluto a Larry Finger, una persona che è stata lontano dalle luci della ribalta ma che è responsabile del corretto funzionamento dei driver WiFi su Linux.
Addio a Larry Finger, se oggi possiamo usare il WiFi su Linux è merito suo

Il codice di GNU/Linux è creato da persone, che in molti casi lavorano silenziosamente per anni inviando i loro contributi in maniera appassionata e con grande motivazione. Larry Finger, scomparso nei giorni scorsi, era la prova provata di come il lavoro di un singolo individuo possa ancora oggi essere fondamentale per un progetto mastodontico com’è Linux.

Si stima che Finger abbia contribuito a 94 rilasci del kernel Linux, con un totale di quasi 1.500 commit, almeno dal kernel 2.6.16 del 2006 ossia da quando Linus Torvalds ha iniziato a usare git per tracciare le modifiche applicate sul “cuore” del sistema operativo libero e open source. Considerando la natura dinamica e “precaria” dei contributi inviati in seno al progetto kernel Linux, il lavoro svolto da Finger è davvero impressionante. Soprattutto da parte di una persona che non si considerava un informatico puro, quanto piuttosto un uomo di scienza.

L’integrazione del supporto WiFi in Linux: la sfida epica vinta da Larry Finger

Far funzionare le schede WiFi su un dispositivo Linux era qualcosa di folle. Almeno quando Finger iniziò a dare il suo contribuito per migliorare la situazione. Le probabilità che l’hardware fosse correttamente riconosciuto, abilitato e reso funzionante subito dopo l’installazione del sistema operativo, erano paragonabili a ottenere una scala reale nel poker.

Se nessuno sviluppatore aveva ancora creato un driver compatibile per il chipset wireless presente sul sistema, Linux non poteva riconoscerlo e permetterne l’utilizzo.

In queste circostanze, gli utenti potevano ricorrere a NDISwrapper, uno strumento che consente di utilizzare i driver di Windows per le schede di rete su un sistema Linux. Il software permette a Linux di “interfacciarsi” con i driver scritti per Windows, fornendo un modo per far funzionare il chipset wireless anche in assenza di un driver nativo.

NDISwrapper è spesso descritto come un “kludge tool“, una soluzione improvvisata e spesso inefficiente o goffa per risolvere un problema. Tra l’altro, se il codice Linux è liberamente disponibile e modificabile, l’uso di driver di Windows – che sono spesso proprietari – contraddice alla base la filosofia del pinguino.

Finger prese il toro per le corna iniziando a lavorare sui driver Broadcom BCM43XX. Broadcom non forniva codice per far funzionare il suo hardware, così Finger si occupò del reverse engineering eseguendo il dump dei registri hardware. Con il suo lavoro, Finger permise di aggiungere il supporto per una nutrita schiera di chipset, tra cui anche quelli a marchio Realtek.

Tanti utenti stanno scoprendo oggi che molti dei loro sistemi utilizzano ancora oggi ampie porzioni di codice sviluppato proprio da Finger.

L’eredità lasciata da Finger

Nella serie di articoli “Linux in a Windows Workstation Environment“, risalenti al 2005, Finger riassunse il suo background: programmatore Fortran nel 1963, interfacce PDP-11 per strumenti scientifici negli anni ’70, VAX-11/780 all’inizio degli anni ’80 e poi sistemi Unix/Linux, fino al pensionamento del 1999 (lavorava presso la Carnegie Institution for Science di Washington, DC).

Il suo impegno nella cristallografia fece guadagnare a Finger un importante riconoscimento e il minerale chiamato fingerite, un esemplare estremamente raro, è stato così battezzato in suo onore.

Da allora, si dedicò ad aggiornare l’infrastruttura e la rete di un club informatico locale, in Arizona. Dapprima volle sostituire le licenze di WinGate, noto software con funzionalità di proxy server sviluppato per fornire una soluzione di condivisione della connessione Internet, firewall e gestione della rete, con un’implementazione totalmente basata su Linux. Successivamente, passò ad aggiungere il supporto WiFi in Linux, permettendo così ai membri del club di accedere gratuitamente alla rete.

Il ruolo da mentore

Finger ha svolto il ruolo di mentore per tante persone, spesso rimanendo lontano dalle luci della ribalta. Nel 2023, in risposta a qualcuno che chiedeva se una persona sprovvista di una “formazione formale in informatica” potesse “contribuire in modo sostanziale” allo sviluppo di Linux, Finger scrisse: “penso di sì“. E collegò le statistiche del kernel 6.4, mostrando 172.346 righe di codice suo, circa lo 0,5% del totale.

Non ho mai seguito corsi in informatica; tuttavia, ho molta esperienza nella codifica, gran parte della quale è avvenuta quando i computer erano molto meno potenti di oggi, ed era fondamentale scrivere codice che funzionasse in modo efficiente“, ha aggiunto.

Rispetto allo sviluppo di codice per il kernel Linux, Finger ha fatto presente come questo tipo di attività possa essere molto gratificante, ma allo stesso tempo anche altrettanto frustrante.  Consigliando di imparare il C, iniziando ad esempio con l’analisi dei driver USB, Finger suggeriva di prendersi il tempo necessario per imparare la tecnologia DMA (Direct Memory Access), che consente ai componenti hardware di accedere direttamente alla memoria principale (RAM) del sistema, bypassando la CPU.

Non perdete la speranza“, scrisse Finger. “Mi ci sono voluti circa 2 anni prima di poter fare qualcosa di più che dire agli esperti dove il mio sistema generava un errore“.

Credit immagine in apertura: iStock.com – atakan

Ti consigliamo anche

Link copiato negli appunti