為什麼無線工具版本 30 成為永久測試版?

為什麼無線工具版本 30 成為永久測試版?

我在這裡找到了一些有關無線工具的好信息問答。顯然它是由 Jean Tourrhiles 在 1997 年由 Hewlett Packard 贊助引入Linux 核心的。

編輯:看來 WE(無線擴展)是由 Tourrhiles 添加到核心中的,而不是無線工具本身。大多數發行版上都提供了這些工具,作為與 WE 溝通的主要方式。您可以在核心中看到 WE /proc/net/wireless

最後發布的版本Ubuntu 14 和 16似乎v29也包含v30beta 版 ( iwconfig -v)。

我很好奇這個包裹怎麼了?為什麼「beta」版本30成為事實上的標準版本?

惠普是否停止了 Jean Tourrhiles 的資助,導致開發停止了?或者也許認為它足夠穩定而停止開發,但如果是這樣的話,為什麼 30 仍然是測試版?

我找到了這個Github頁面但似乎僅供歷史參考。

版本歷史

版本歷史

答案1

無線工具已被棄用,取而代之的是iw因為無線擴充功能已被棄用,取而代之的是用於無線設備的新 nl80211 介面。這iw 的內核文檔這麼說。

然而,nl80211 正在積極開發中,並非所有驅動程式都已遷移到其中。對於尚未從無線擴展遷移的設備,仍然需要無線工具。

Ubuntu(以及我所知道的幾乎所有發行版)提供版本30 beta 的原因是因為該版本修復了版本29 中的一個嚴重錯誤,如果該區域由於緩衝區而存在太多網絡,則該錯誤會導致iwconfig失敗溢出。無線工具的 Github 儲存庫沒有顯示這一點,但這裡有來自的相關補丁

答案2

我應該仔細閱讀我鏈接的問答,因為有一個討論頁面的鏈接為什麼這個項目被放棄了

WE正在進一步發展嗎?

不它不是。 WE 只接受錯誤修復。

為什麼我們要放棄WE

WE 基於ioctl()並且儘管ioctl()已經並且仍然被用作用戶←→內核空間之間通信的標準傳輸,但出於多種原因,新傳輸受到青睞。

來自 Linux 裝置驅動程式 - 第三版:

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

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

此原型由於點的存在而在 Unix 系統呼叫列表中脫穎而出,這些點通常將函數標記為具有可變數量的參數。然而,在真實的系統中,系統呼叫實際上不能具有可變數量的參數。系統呼叫必須有一個明確定義的原型,因為使用者程式只能透過硬體「門」存取它們。因此,原型中的點代表的不是可變數量的參數,而是單一可選參數,傳統上標識為char *argp。這些點只是為了防止編譯期間進行類型檢查。

它也指出:

該呼叫的非結構化性質ioctl導致它不再受到核心開發人員的青睞。每個ioctl命令本質上都是一個單獨的、通常未記錄的系統調用,並且無法以任何全面的方式審核這些調用。要使非結構化ioctl論證在所有系統上都同樣有效也很困難;例如,考慮 64 位元系統,其中用戶空間進程以 32 位元模式運作。

Wireless-Extensions 的替代品是什麼

新的開發應該集中在cfg80211和nl80211。


邊註:Jean Tourrhiles 似乎在 1997 年至 2009 年間致力於該項目。我找到了一個2014年的文章說圖爾希爾斯仍在惠普,從事一個名為開放流

HP 的 Jean Tourrhiles 也擔任可擴展性工作小組的主席,該工作小組充當「編輯」的角色,推動最新技術融入 OpenFlow 的未來版本

相關內容