Ich hätte die Q/A, die ich verlinkt habe, besser durchlesen sollen, weil es einen Link zu einer Seite gab, auf der diskutiert wurde, warum dieses Projekt aufgegeben wurde:
Wird WE weiterentwickelt?
Nein ist es nicht. Für WE werden nur Fehlerbehebungen akzeptiert.
Warum wir WE verlassen
WEs basieren auf ioctl()
und zwar ioctl()
wurde und wird immer noch als Standardtransport für die Kommunikation zwischen Benutzer←→ Kernelspace verwendet. Neue Transporte werden aus mehreren Gründen bevorzugt.
Von Linux Device Drivers - 3rd Edition:
In user space, the ioctl system call has the following prototype:
int ioctl(int fd, unsigned long cmd, ...);
Der Prototyp fällt in der Liste der Unix-Systemaufrufe durch die Punkte auf, die normalerweise die Funktion mit einer variablen Anzahl von Argumenten kennzeichnen. In einem realen System kann ein Systemaufruf jedoch eigentlich keine variable Anzahl von Argumenten haben. Systemaufrufe müssen einen wohldefinierten Prototyp haben, da Benutzerprogramme nur durch Hardware-„Tore“ auf sie zugreifen können. Daher stellen die Punkte im Prototyp keine variable Anzahl von Argumenten dar, sondern ein einzelnes optionales Argument, das traditionell als char *argp
bezeichnet wird . Die Punkte sind lediglich dazu da, eine Typprüfung während der Kompilierung zu verhindern.
Außerdem heißt es:
Die unstrukturierte Natur des ioctl
call hat dazu geführt, dass es bei Kernel-Entwicklern in Ungnade gefallen ist. Jeweils ioctl
command ist im Wesentlichen ein separater, normalerweise nicht dokumentierter Systemaufruf, und es gibt keine Möglichkeit, diese Aufrufe umfassend zu prüfen. Es ist auch schwierig, den unstrukturierten ioctl
zu erstellen Argumente funktionieren auf allen Systemen identisch; Betrachten Sie beispielsweise 64-Bit-Systeme mit einem Userspace-Prozess, der im 32-Bit-Modus ausgeführt wird.
Was ist der Ersatz von Wireless-Extensions
Neue Entwicklungen sollten sich auf cfg80211 und nl80211 konzentrieren.
Nebenbemerkung: Es scheint, dass Jean Tourrhiles zwischen 1997 und 2009 an dem Projekt gearbeitet hat. Ich habe einen Artikel aus dem Jahr 2014 gefunden, in dem stand, dass Tourrhiles immer noch bei HP war und an einem Projekt namens OpenFlow arbeitete:
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 einfließen zu lassen
Drahtlose Tools werden zugunsten von iw
verworfen weil die drahtlosen Erweiterungen zugunsten der neuen nl80211-Schnittstelle für drahtlose Geräte veraltet sind. Das sagt die Kernel-Dokumentation für iw.
nl80211 befindet sich jedoch in aktiver Entwicklung und nicht alle Treiber wurden darauf migriert. Wireless-Tools sind weiterhin für Geräte erforderlich, die nicht von Wireless-Erweiterungen migriert wurden.
Der Grund, warum Ubuntu (und so ziemlich alle Distributionen, die ich kenne) Version 30 Beta bereitstellt, ist, dass diese Version einen kritischen Fehler in Version 29 behebt, der dazu führte, dass die iwconfig fehlschlug, wenn aufgrund eines Puffers zu viele Netzwerke in der Umgebung waren Überlauf. Das Github-Repository für drahtlose Tools zeigt dies nicht an, aber hier ist der relevante Patch von Arch