Posix

為什麼 STREAMS 在 POSIX.1-2008 中被標記為過時?

  • July 16, 2016

POSIX.1-2008 XRAT 的基本原理指出 X/Open STREAMS 可能會從標準的未來版本中刪除,並且嚴格遵守的應用程序不應使用它們,但它沒有解釋原因。

為什麼它們被有效地從標準中刪除?

它們是否超出了 POSIX 的範圍?以這種方式實現設備驅動程序是否存在缺陷?我覺得 STREAMS 很有趣;我喜歡分層實現設備驅動程序的想法。

STREAMS 確實包含一個 API。如果該概念被廣泛採用,被攜帶式應用程序等使用,它們肯定會在標準化範圍內。

Linux 黑客口中的傳說是 STREAMS 到 1994 年就死了,只是為了向後兼容而存在。(API)。

https://lkml.org/lkml/1998/6/28/138

它最初也是為了涵蓋網路而設計的(引用:維基百科)。顯然,在 100M/1G 伺服器的時代,它是網路性能的障礙……現在我們有 10G+……

人們說 Linux 網路仍然很慢(試圖推動像 DPDK 這樣的使用者空間繞過)。所以我很高興我們有一個沒有強制進入 STREAMS 模型的網路堆棧。

我不熟悉 STREAMS,但原始設計的另一半是終端 IO。至少在 Linux 上,你可以說它有點老了,我們有一個介面可以滿足我們的需要,而編寫額外的功能只會導致處理不必要的損壞。您已經可以使用生產線規程切換中間處理,儘管這似乎將數據轉移到另一個子系統而不是提供可交換的過濾器。例如,其中一個學科(PPP)創建了一個網路介面——它與設備節點完全不同。即使結果是一個設備節點,向 udev hotplug 設備管理器宣布它為給定類型的新設備似乎也很乾淨。例如,應用串列滑鼠規則將創建一個新的輸入設備,X 將通過與插入 USB 滑鼠完全相同的機制拾取該輸入設備。

引用自:https://unix.stackexchange.com/questions/296169