91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

unix流架構到底是個什么東西

發布時間:2020-03-28 22:49:52 來源:網絡 閱讀:424 作者:dog250 欄目:系統運維

僅有理論而無實例只是紙上談兵,unix的流機制是很妙的機制,但是unix流究竟是如何實現以及如何使用的呢,雖然unix流已經提出了很久很久,但是時至今日它也沒有普遍被使用,出了solaris和windows等操作系統外,幾乎沒有什么系統在使用它,當今世上操作系統無非也就幾家獨大,按照不失一般性的分類,首先就是windows,然后是linux以及幾家的unix,如solaris和各種bsd以及darvin,然后就是各家小諸侯了,不足掛齒,在幾家大的中,獨有windows和solaris吸取了unix的流思想,其余的好像都是比拼內功的結果,絲毫不在乎整體架構,只是在細節上略勝一籌,比如通讀linux源碼就會發現,里面有十分糟糕的算法,也有十分美妙的,顯然不是一伙人所為,各個開發者都在各行其是,于是便失去了整體的美感,結果就是效率的提升,這也許就是GNU的絕美的地方吧(雖solaris10以及微軟的開發框架也開源,但卻是在不同license下的開源,和linux不可同日而語)。從windows內核來解析流之美,眾人可閱讀很多資料,可是unix自身的流實現,卻只能縱覽system V以后后商用unix實現,最可觀的當屬solaris了,以我比較熟悉的open***為例,在打開且初始化tun/tap設備的時候,open***會調用open_tun,需要初始化整個虛擬設備的協議棧,于是linux和solaris就分道揚鑣了,在linux中,實現如下:
void open_tun (...)
{
    ...//linux的實現就不多說了,本質上就是初始化內核的tun設備而已
}
由于linux并沒有實現unix的流機制,因此linux只是簡單的調用虛擬網卡設備的open例程以及TUNSETIFF的ioctl例程,及結果無非就是“直接”初始化虛擬網卡設備的協議棧以備后用。看看solaris的實現:
void open_tun (...)
{
 ...
    if (tt->type == DEV_TYPE_TAP) {
        ip_node = "/dev/ip";
        if (!dev_node)
            dev_node = "/dev/tun";
         ...   
        }
...
    if_fd = open (dev_node, O_RDWR, 0);
    ioctl (if_fd, I_PUSH, "ip");
...
}
很明顯,solaris的方式比linux更好,它直接將ip協議“壓”在了虛擬網卡設備之上,于是就相當于實現了虛擬網卡設備的tcp/ip協議棧,不光是可以壓入ip協議模塊,還可以壓入諸如arp,icmp等的一切協議處理模塊,unix的流機制可以對任何的IO數據實行過濾,其關鍵在于一個I_PUSH/I_POP命令參數的使用,在用戶空間通過ioctl就可以完成如此底層的協議整合,多么靈活,多么美妙啊!采用unix流的方式無需直接初始化整個協議棧,而是可以再流模塊被壓入的時刻再初始化之。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

栾川县| 扶绥县| 商水县| 六枝特区| 岗巴县| 连江县| 娱乐| 高州市| 广西| 沙坪坝区| 迁西县| 北流市| 阳原县| 牟定县| 邯郸市| 上栗县| 大方县| 东乡| 集安市| 新蔡县| 江孜县| 遵义县| 阿图什市| 门头沟区| 通辽市| 金平| 康乐县| 永昌县| 循化| 永清县| 霸州市| 博客| 澄城县| 乐至县| 双流县| 乾安县| 泸西县| 景德镇市| 安塞县| 泗阳县| 景泰县|