Dlaczego narzędzia bezprzewodowe w wersji 30 stały się stałą wersją beta?

10

Znalazłem jakieś dobre informacje na temat narzędzi bezprzewodowych w tym Q / A . Najwyraźniej został wprowadzony do jądra Linuksa w 1997 roku przez Jean Tourrhilesa sponsorowanego przez Hewlett Packard.

Edycja: Wygląda na to, że WE (rozszerzenia bezprzewodowe) zostało dodane do jądra przez Tourrhiles, a nie same narzędzia bezprzewodowe. Narzędzia są dostępne w większości dystrybucji jako podstawowy sposób komunikacji z WE. Możesz zobaczyć WE w jądrze na /proc/net/wireless.

Ostatnia wersja wydana była v29jeszcze Ubuntu 14 i 16 wydają się zawierać v30beta ( iwconfig -v).

Jestem ciekawy, co się stało z tym pakietem? Dlaczego wersja 30 „beta” stała się standardową wersją defacto?

Czy HP przestało finansować Jean Tourrhiles, więc rozwój został zatrzymany? A może zdecydowano, że jest wystarczająco stabilny, aby zatrzymać rozwój, ale jeśli tak, to dlaczego 30 wciąż byłoby wersją beta?

Znalazłem tę stronę Github, ale wydaje się, że służy wyłącznie do celów historycznych.

Historia wersji

Historia wersji

Philip Kirkbride
źródło
„Dlaczego narzędzia bezprzewodowe w wersji 30 w jądrze Linuksa ...” - narzędzia bezprzewodowe nie znajdują się w jądrze. Sterowniki znajdują się w jądrze, narzędzia bezprzewodowe to (a) komponent przestrzeni użytkownika służący do konfigurowania sterowników przestrzeni jądra.
marcelm
1
@marcelm Dodałem notatkę do mojego pytania na podstawie twojego komentarza. Wydaje mi się, że dodał WE do jądra, /proc/net/wirelessale same narzędzia bezprzewodowe nie są częścią jądra. Daj mi znać, jeśli się mylę.
Philip Kirkbride
1
Tak, jesteśmy częścią jądra. Mówiąc dokładniej, „Rozszerzenia bezprzewodowe” to nazwa interfejsu użytkownika <-> przestrzeni użytkownika jądra, odsłoniętej przez bezprzewodową instalację wodną w jądrze. Wireless-Tools używa tego interfejsu do manipulowania urządzeniami bezprzewodowymi. Są niezależnie wersjonowane; w moim systemie bezprzewodowymi narzędziami jest wersja 30, która komunikuje się z moim jądrem (4.9.0) z wersją WE 22)
marcelm,

Odpowiedzi:

17

Narzędzia bezprzewodowe są przestarzałe na korzyść, iwponieważ rozszerzenia bezprzewodowe zostały wycofane na korzyść nowego interfejsu nl80211 dla urządzeń bezprzewodowych. Dokumentacja jądra dla iw mówi to.

Jednak nl80211 jest w fazie rozwoju i nie wszystkie sterowniki zostały do ​​niego zmigrowane. Narzędzia bezprzewodowe są nadal wymagane w przypadku urządzeń, które nie zostały migrowane z rozszerzeń bezprzewodowych.

Powodem, dla którego Ubuntu (i prawie wszystkie dystrybucje, o których wiem) udostępnia wersję 30 beta, jest to, że ta wersja naprawia krytyczny błąd, który był w wersji 29, który spowodował awarię iwconfig, jeśli w okolicy było zbyt wiele sieci z powodu bufora przelewowy. Repozytorium Github dla narzędzi bezprzewodowych tego nie pokazuje, ale oto odpowiednia łatka od Arch

Munir
źródło
17

Powinienem przeczytać Q / A, które lepiej podlinkowałem, ponieważ był link do strony omawiającej, dlaczego ten projekt został porzucony :

Czy jesteśmy dalej rozwijani?

Nie, nie jest. W WE są akceptowane tylko poprawki błędów.

Dlaczego porzucamy WE

WE są oparte na ioctl()i chociaż ioctl()były używane i nadal są używane jako standardowy transport do komunikacji między użytkownikiem ← → przestrzeń jądra preferowane są nowe transporty z kilku powodów.

Ze sterowników urządzeń dla systemu Linux - wydanie trzecie:

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

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

Prototyp wyróżnia się na liście wywołań systemowych Unixa kropkami, które zwykle oznaczają, że funkcja ma zmienną liczbę argumentów. Jednak w prawdziwym systemie wywołanie systemowe nie może mieć zmiennej liczby argumentów. Wywołania systemowe muszą mieć dobrze zdefiniowany prototyp, ponieważ programy użytkownika mogą uzyskać do nich dostęp tylko za pośrednictwem „bram” sprzętowych. Dlatego kropki w prototypie nie reprezentują zmiennej liczby argumentów, lecz pojedynczy opcjonalny argument, tradycyjnie identyfikowany jako char *argp. Kropki są po prostu tam, aby zapobiec sprawdzaniu typu podczas kompilacji.

Stwierdza również:

Nieustrukturyzowany charakter tego ioctlwywołania spowodował, że popadł on w niełaskę wśród twórców jądra. Każde ioctlpolecenie jest w zasadzie oddzielnym, zwykle nieudokumentowanym wywołaniem systemowym i nie ma sposobu na sprawdzenie tych wywołań w jakikolwiek kompleksowy sposób. Trudno jest również sprawić, aby nieustrukturyzowane ioctlargumenty działały identycznie na wszystkich systemach; na przykład rozważmy systemy 64-bitowe z procesem przestrzeni użytkownika działającym w trybie 32-bitowym.

Co to jest zamiana rozszerzeń bezprzewodowych

Nowe prace powinny koncentrować się na cfg80211 i nl80211.


Uwaga dodatkowa: Wydaje się, że Jean Tourrhiles pracował nad projektem od około 1997-2009. Znalazłem artykuł z 2014 roku , w którym Tourrhiles nadal pracował w HP, pracując nad projektem o nazwie OpenFlow :

Jean Tourrhiles z HP przewodniczy również Grupie Roboczej ds. Rozszerzalności, która działa jako „edytor”, wprowadzając najnowszą technologię do przyszłych wersji OpenFlow

Philip Kirkbride
źródło