Por que as ferramentas sem fio versão 30 se tornaram uma versão beta permanente?

10

Eu encontrei algumas boas informações sobre ferramentas sem fio neste Q / A . Aparentemente, foi introduzido no kernel do Linux em 1997 por Jean Tourrhiles patrocinado pela Hewlett Packard.

Edit: Parece que WE (Wireless Extensions) foi adicionado ao Kernel por Tourrhiles, não as ferramentas sem fio em si. As ferramentas estão disponíveis na maioria das distros como o principal meio de comunicação com a WE. Você pode ver o WE no kernel em /proc/net/wireless.

A última versão lançadav29 ainda era o Ubuntu 14 e 16, parece conter a v30versão beta ( iwconfig -v).

Estou curioso sobre o que aconteceu com este pacote? Por que a versão "beta" 30 se tornou a versão padrão padrão usada?

A HP parou de financiar Jean Tourrhiles para que o desenvolvimento parasse? Ou talvez tenha sido decidido que era estável o suficiente para interromper o desenvolvimento, mas se esse fosse o caso, por que 30 ainda seria beta?

Encontrei esta página do Github, mas parece ser apenas para referência histórica.

Histórico de Versões

Histórico de versões

Philip Kirkbride
fonte
"Por que as ferramentas sem fio versão 30 no kernel do Linux ..." - as ferramentas sem fio não estão no kernel. Os drivers estão no kernel, wireless-tools é o componente (a) do espaço do usuário para configurar os drivers do espaço do kernel.
marcelm
1
@marcelm Adicionei uma observação na minha pergunta com base no seu comentário. Eu acho que ele adicionou WE ao kernel, /proc/net/wirelessmas as ferramentas sem fio em si não fazem parte do kernel. Deixe-me saber se estou errado nisso.
Philip Kirkbride 29/11
1
Sim, fazemos parte do kernel. Mais precisamente, "Extensões sem fio" é o nome da interface do espaço do usuário <-> espaço do kernel exposta pelo encanamento sem fio no kernel. As ferramentas sem fio usam essa interface para manipular os dispositivos sem fio. Eles são versionados independentemente; No meu sistema wireless-tools é a versão 30, e fala ao meu kernel (4.9.0) com WE versão 22 :)
marcelm

Respostas:

17

As ferramentas sem fio foram preteridas em favor de, iwporque as extensões sem fio foram preteridas em favor da nova interface nl80211 para dispositivos sem fio. A documentação do kernel para iw diz isso.

No entanto, o nl80211 está em desenvolvimento ativo e nem todos os drivers foram migrados para ele. As ferramentas sem fio ainda são necessárias para dispositivos que não foram migrados de extensões sem fio.

A razão pela qual o Ubuntu (e praticamente todas as distros que conheço) fornece a versão 30 beta é porque essa versão corrige um bug crítico que estava na versão 29, que causou a falha do iwconfig se houvesse muitas redes na área devido a um buffer transbordar. O repositório do Github para ferramentas sem fio não mostra isso, mas aqui está o patch relevante do Arch

Munir
fonte
17

Eu deveria ter lido o Q / A que eu vinculei melhor, porque havia um link para uma página discutindo por que esse projeto foi abandonado :

O WE está sendo desenvolvido?

Não não é. Somente correções de bugs estão sendo aceitas para WE.

Por que estamos abandonando o WE

Os WEs são baseados ioctl()e, embora ioctl()tenham sido usados ​​e ainda estejam sendo usados ​​como um transporte padrão para a comunicação entre o usuário ← → kernelspace, novos transportes estão sendo preferidos por vários motivos.

De drivers de dispositivo Linux - 3ª edição:

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

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

O protótipo se destaca na lista de chamadas do sistema Unix por causa dos pontos, que normalmente marcam a função como tendo um número variável de argumentos. Em um sistema real, no entanto, uma chamada de sistema não pode realmente ter um número variável de argumentos. As chamadas do sistema devem ter um protótipo bem definido, porque os programas do usuário podem acessá-los apenas através de "portas de hardware". Portanto, os pontos no protótipo representam não um número variável de argumentos, mas um único argumento opcional, tradicionalmente identificado como char *argp. Os pontos estão simplesmente lá para impedir a verificação de tipo durante a compilação.

Ele também afirma:

A natureza não estruturada da ioctlchamada fez com que ela caísse em desuso entre os desenvolvedores do kernel. Cada ioctlcomando é, essencialmente, uma chamada de sistema separada, geralmente não documentada, e não há como auditar essas chamadas de qualquer maneira abrangente. Também é difícil fazer com que os ioctlargumentos não estruturados funcionem de forma idêntica em todos os sistemas; por exemplo, considere sistemas de 64 bits com um processo de espaço do usuário em execução no modo de 32 bits.

O que é a substituição das extensões sem fio

O novo desenvolvimento deve se concentrar em cfg80211 e nl80211.


Nota: Parece que Jean Tourrhiles trabalhou no projeto entre 1997 e 2009. Encontrei um artigo de 2014 dizendo que Tourrhiles ainda estava na HP, trabalhando em um projeto chamado OpenFlow :

Jean Tourrhiles, da HP, também preside o Extensibility Working Group, que trabalha como um "editor" para conduzir a mais recente tecnologia para futuras versões do OpenFlow

Philip Kirkbride
fonte