歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

Solaris 系統核心功能初探


  Solaris 10 中的 FireEngine 方法將所有協議層合並為一個完全多線程的 STREAMS 模塊。在合並的模塊內,沒有使用針對每個數據結構的鎖,而是使用針對每個 CPU 的同步機制,即垂直邊界。垂直邊界是使用名為 squeue 的序列化隊列抽象實現的。每個 squeue 綁定到 CPU,而每個連接又綁定到提供特定於連接的數據結構所需的任何同步和互斥的 squeue。

  由於棧是完全多線程的(除非垂直邊界強制實現針對每個 CPU 的串行化),因此它使用基於引用的方案來確保連接實例在需要時可用。對於建立的 TCP 連接,可確保對其進行三種引用。每個協議層具有對實例的引用(TCP 和 IP 各有一個引用),分類器本身也具有引用,因為它是建立的連接。每次數據包到達連接並且分類器查找連接實例時,都會設置一個額外的引用;當協議層處理完該數據包後,將會刪除此引用。

  Solaris 10 提供了與以前發行版相同的 TCP 視圖,即 TCP 顯示為克隆設備,但它實際上是一個復合設備,將 TCP 和 IP 代碼合並為單個 D_MP STREAMS 模塊。TCP 的操作部分由通過 squeue 原語輸入的垂直邊界充分保護。在控制和數據路徑上,FireEngine 將 TCP 和 IP 之間的接口由基於 STREAMS 的現有消息傳送接口更改為基於函數調用的接口。

  Solaris 10 引入了名為 GLDv3 的新設備驅動程序框架以及新棧。大多數主要設備驅動程序都移植到此框架上,所有將來的設備驅動程序和 10Gb 設備驅動程序均基於此框架。此框架還提供了一個基於 STREAMS 的 DLPI 層以保持向後兼容性(以允許外部非 IP 模塊能夠繼續正常使用)。GLDv3 體系結構虛擬化網絡棧的第二層。網絡接口和設備之間的一一對應關系不復存在。

  Crossbow 通過任何服務(HTTP、HTTPS、FTP、NFS等)、協議(TCP、UDP、SCTP等)或 Solaris 容器技術創建虛擬棧。虛擬棧通過 H/W 分類引擎進行分隔,以便一個棧的通信不會影響其他虛擬棧。可以在共享 NIC 上為每個虛擬棧分配它自己的優先級和帶寬,而不會導致系統或服務/容器的性能下降。
Copyright © Linux教程網 All Rights Reserved