Warum wurde Wireless Tools Version 30 zu einer permanenten Beta?

10

In dieser Frage / Antwort habe ich einige gute Informationen zu drahtlosen Tools gefunden . Anscheinend wurde es 1997 von Jean Tourrhiles, gesponsert von Hewlett Packard, in den Linux-Kernel eingeführt .

Bearbeiten: Es scheint, dass WE (Wireless Extensions) von Tourrhiles zum Kernel hinzugefügt wurde, nicht die Wireless-Tools selbst. Die Tools sind in den meisten Distributionen als primäre Möglichkeit zur Kommunikation mit WE verfügbar. Sie können WE im Kernel unter sehen /proc/net/wireless.

Die letzte veröffentlichte Version war v29noch Ubuntu 14 & 16 scheinen die v30Beta ( iwconfig -v) zu enthalten .

Ich bin gespannt, was mit diesem Paket passiert ist. Warum wurde die "Beta" -Version 30 zur verwendeten Defacto-Standardversion?

Hat HP die Finanzierung von Jean Tourrhiles eingestellt, sodass die Entwicklung gestoppt wurde? Oder vielleicht wurde entschieden, dass es stabil genug ist, um die Entwicklung zu stoppen, aber wenn dies der Fall wäre, warum wäre 30 dann immer noch eine Beta?

Ich habe diese Github-Seite gefunden, aber sie scheint nur als historische Referenz zu dienen.

Versionsgeschichte

Versionsgeschichte

Philip Kirkbride
quelle
"Warum haben Wireless Tools Version 30 im Linux-Kernel ..." - Wireless-Tools sind nicht im Kernel. Die Treiber befinden sich im Kernel, Wireless-Tools sind die (a) User-Space-Komponente zum Konfigurieren der Kernel-Space-Treiber.
Marcelm
1
@marcelm Ich habe meiner Frage einen Hinweis hinzugefügt, der auf Ihrem Kommentar basiert. Ich denke, er hat WE zum Kernel hinzugefügt, /proc/net/wirelessaber die Wireless-Tools selbst sind nicht Teil des Kernels. Lassen Sie mich wissen, wenn ich falsch liege.
Philip Kirkbride
1
Ja, WIR sind Teil des Kernels. Genauer gesagt ist "Wireless Extensions" der Name der User-Space-Kernel-Space-Schnittstelle, die durch die Wireless-Installation im Kernel verfügbar gemacht wird. Wireless-Tools verwenden diese Schnittstelle, um die Wireless-Geräte zu manipulieren. Sie sind unabhängig versioniert; Auf meinem System ist Wireless-Tools Version 30, und es spricht mit meinem Kernel (4.9.0) mit WE Version 22 :)
Marcelm

Antworten:

17

Wireless-Tools werden zugunsten von abgelehnt, iwda die Wireless-Erweiterungen zugunsten der neuen nl80211-Schnittstelle für Wireless-Geräte veraltet sind. Die Kernel-Dokumentation für iw sagt das aus.

Nl80211 befindet sich jedoch in der aktiven Entwicklung und nicht alle Treiber wurden darauf migriert. Für Geräte, die nicht von drahtlosen Erweiterungen migriert wurden, sind weiterhin drahtlose Tools erforderlich.

Der Grund, warum Ubuntu (und so ziemlich alle mir bekannten Distributionen) Beta-Version 30 bereitstellen, ist, dass diese Version einen kritischen Fehler in Version 29 behebt, der dazu führte, dass die iwconfig fehlschlug, wenn sich aufgrund eines Puffers zu viele Netzwerke in der Umgebung befanden Überlauf. Das Github-Repo für drahtlose Tools zeigt dies nicht, aber hier ist der relevante Patch von Arch

Munir
quelle
17

Ich hätte die Fragen und Antworten lesen sollen, die ich besser verlinkt habe, da es einen Link zu einer Seite gab, auf der erläutert wurde, warum dieses Projekt abgebrochen wurde :

Wird WIR weiterentwickelt?

Nein ist es nicht. Für WE werden nur Bugfixes akzeptiert.

Warum wir WIR verlassen

WEs basieren auf ioctl()und werden zwar ioctl()verwendet und werden immer noch als Standardtransport für die Kommunikation zwischen Benutzern verwendet. ← → Kernelspace Neue Transporte werden aus mehreren Gründen bevorzugt.

Von Linux-Gerätetreibern - 3. Ausgabe:

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

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

Der Prototyp sticht in der Liste der Unix-Systemaufrufe durch die Punkte hervor, die die Funktion normalerweise mit einer variablen Anzahl von Argumenten kennzeichnen. In einem realen System kann ein Systemaufruf jedoch keine variable Anzahl von Argumenten haben. Systemaufrufe müssen einen genau definierten Prototyp haben, da Benutzerprogramme nur über Hardware-Gates darauf zugreifen können. Daher stellen die Punkte im Prototyp keine variable Anzahl von Argumenten dar, sondern ein einzelnes optionales Argument, das traditionell als identifiziert wird char *argp. Die Punkte dienen lediglich dazu, die Typprüfung während der Kompilierung zu verhindern.

Es heißt auch:

Die unstrukturierte Natur des ioctlAufrufs hat dazu geführt, dass er bei Kernel-Entwicklern in Ungnade gefallen ist. Jeder ioctlBefehl ist im Wesentlichen ein separater, normalerweise nicht dokumentierter Systemaufruf, und es gibt keine Möglichkeit, diese Aufrufe auf umfassende Weise zu überwachen. Es ist auch schwierig, die unstrukturierten ioctlArgumente auf allen Systemen identisch zu machen . Betrachten Sie beispielsweise 64-Bit-Systeme mit einem Userspace-Prozess, der im 32-Bit-Modus ausgeführt wird.

Was ist der Ersatz für Wireless-Extensions?

Die Neuentwicklung sollte sich auf cfg80211 und nl80211 konzentrieren.


Randnotiz : Es scheint, dass Jean Tourrhiles von 1997 bis 2009 an dem Projekt gearbeitet hat. Ich fand einen Artikel aus dem Jahr 2014 , in dem es hieß, Tourrhiles sei noch bei HP und arbeite an einem Projekt namens OpenFlow :

Jean Tourrhiles von HP ist außerdem Vorsitzender der Extensibility Working Group, die als „Editor“ arbeitet, um die neueste Technologie in zukünftige Versionen von OpenFlow zu integrieren

Philip Kirkbride
quelle