Perché la versione 30 degli strumenti wireless è diventata una beta permanente?


10

Ho trovato alcune buone informazioni sugli strumenti wireless in questo Q / A . Apparentemente è stato introdotto nel kernel Linux nel 1997 da Jean Tourrhiles sponsorizzato da Hewlett Packard.

Modifica: sembra che WE (Wireless Extensions) sia stato aggiunto al kernel da Tourrhiles, non dagli stessi strumenti wireless. Gli strumenti sono disponibili sulla maggior parte delle distro come il modo principale per comunicare con WE. Puoi vedere WE nel kernel all'indirizzo /proc/net/wireless.

L' ultima versione rilasciata era v29ancora Ubuntu 14 e 16 sembra contenere la v30beta ( iwconfig -v).

Sono curioso di sapere cosa è successo a questo pacchetto? Perché la versione "beta" 30 è diventata la versione standard defacto utilizzata?

HP ha smesso di finanziare Jean Tourrhiles così lo sviluppo si è fermato? O forse è stato deciso che era abbastanza stabile per fermare lo sviluppo, ma se fosse così perché 30 sarebbero ancora una beta?

Ho trovato questa pagina di Github ma sembra essere solo per riferimento storico.

Cronologia delle versioni

Cronologia delle versioni


"Perché strumenti wireless versione 30 nel kernel Linux ..." - wireless-tools non è nel kernel. I driver sono nel kernel, wireless-tools è il (a) componente dello spazio utente per la configurazione dei driver dello spazio kernel.
martedì

1
@marcelm Ho aggiunto una nota alla mia domanda in base al tuo commento. Immagino abbia aggiunto WE al kernel, /proc/net/wirelessma gli stessi strumenti wireless non fanno parte del kernel. Fammi sapere se mi sbaglio.
Philip Kirkbride,

1
Sì, facciamo parte del kernel. Più precisamente, "Wireless Extensions" è il nome dell'interfaccia dello spazio utente <-> spazio del kernel esposta dall'impianto idraulico wireless nel kernel. wireless-tools utilizza quell'interfaccia per manipolare i dispositivi wireless. Sono versioni indipendenti; sul mio sistema wireless-tools è la versione 30 e parla con il mio kernel (4.9.0) con WE versione 22 :)
marcelm

Risposte:


17

Gli strumenti wireless sono deprecati iwperché le estensioni wireless sono state deprecate a favore della nuova interfaccia nl80211 per dispositivi wireless. Lo dice la documentazione del kernel per iw .

Tuttavia, nl80211 è in fase di sviluppo attivo e non tutti i driver sono stati migrati su di esso. Gli strumenti wireless sono ancora necessari per i dispositivi che non sono stati migrati dalle estensioni wireless.

Il motivo per cui Ubuntu (e praticamente tutte le distro che conosco) forniscono la versione 30 beta è perché quella versione risolve un bug critico che era nella versione 29, che causava il fallimento di iwconfig se c'erano troppe reti nell'area a causa di un buffer troppo pieno. Il repository Github per strumenti wireless non lo mostra, ma ecco la patch pertinente dell'Arch


17

Avrei dovuto leggere il Q / A che ho collegato meglio perché c'era un link a una pagina che discuteva perché questo progetto è stato abbandonato :

Stiamo sviluppando ulteriormente?

No non lo è. Per WE sono accettate solo correzioni di bug.

Perché stiamo abbandonando NOI

I WE sono basati ioctl()e sebbene siano ioctl()stati utilizzati e siano ancora utilizzati come trasporto standard per la comunicazione tra l'utente ← → kernelspace nuovi trasporti sono preferiti per diversi motivi.

Da driver di dispositivo Linux - 3a edizione:

In user space, the ioctl system call has the following prototype:

int ioctl(int fd, unsigned long cmd, ...);

Il prototipo si distingue nell'elenco delle chiamate di sistema Unix a causa dei punti, che di solito contrassegnano la funzione con un numero variabile di argomenti. In un sistema reale, tuttavia, una chiamata di sistema non può effettivamente avere un numero variabile di argomenti. Le chiamate di sistema devono avere un prototipo ben definito, poiché i programmi utente possono accedervi solo attraverso "porte" hardware. Pertanto, i punti nel prototipo rappresentano non un numero variabile di argomenti ma un singolo argomento opzionale, tradizionalmente identificato come char *argp. I punti sono semplicemente lì per impedire il controllo del tipo durante la compilazione.

Dichiara inoltre:

La natura non strutturata della ioctlchiamata ha fatto sì che cadesse in disgrazia tra gli sviluppatori del kernel. Ogni ioctlcomando è essenzialmente una chiamata di sistema separata, generalmente non documentata, e non c'è modo di controllare queste chiamate in alcun modo. È anche difficile far funzionare gli ioctlargomenti non strutturati in modo identico su tutti i sistemi; ad esempio, considerare i sistemi a 64 bit con un processo userspace in esecuzione in modalità 32 bit.

Che cos'è la sostituzione delle estensioni wireless

Il nuovo sviluppo dovrebbe essere focalizzato su cfg80211 e nl80211.


Nota a margine : sembra che Jean Tourrhiles abbia lavorato al progetto intorno al 1997-2009. Ho trovato un articolo del 2014 che diceva che Tourrhiles era ancora in HP, che stava lavorando a un progetto chiamato OpenFlow :

Jean Tourrhiles di HP presiede anche l'Extensibility Working Group, che lavora come "editore" per guidare le ultime tecnologie nelle future versioni di OpenFlow

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.