在批處理時代及之前,程序必須排序執(zhí)行,被安排在同一臺機器的幾個程序很難直接通信,每個程序獨占一臺機器,只能和同時刻獨占別的機器的程序遠程通信,類似于打電話,不能自己給自己打電話,因為自己永遠占線,可以給別人打,但對方必須在線。
微時間片輪轉調度的現(xiàn)代操作系統(tǒng)制造了進程(虛擬機)假象,將多個程序拉到了同一個時空,每個程序獨占一個進程,大家同時運行在同一臺機器,彼此之間可隨時溝通,從此,一切皆可為進程。這個意義非常重大。
TCP/IP 的胖端瘦網(wǎng)模型來源于此。
以往排隊執(zhí)行的程序可 “同時” 執(zhí)行,程序之間便可激烈碰撞出火花,相互配合,這也是 UNIX 本源組合小程序的哲學思想。批處理時代,將一個文件先送到一個 egrep 程序里過濾,再通過網(wǎng)絡送到另一個主機,是不可想象的。
交互變得多而復雜,主機越發(fā)擁擠,對外通信的程序共享物理資源,迫切需要一種良好的方式調度資源,為每一個程序的通信過程管理資源。這意味著網(wǎng)絡協(xié)議棧的端側在變胖。
終端不再功能固定,成了一個同時運行多個程序的容器,每個終端接入網(wǎng)絡時的這些程序的通信行為不可預期,必須將接入和通信過程解耦,這意味著終端接入的時刻,網(wǎng)絡的核心是無感知的,換句話說,程序間的通信對于網(wǎng)絡必須無狀態(tài),這是瘦網(wǎng)的來源。
終端接入時,僅分配一個 IP 地址,只在程序需要通信的那一刻,才分配傳輸層以上資源,這是現(xiàn)在的方式。但在一開始,TCP 和 IP 是一個整體,端側沒有現(xiàn)在胖,網(wǎng)側沒有現(xiàn)在瘦,隨著系統(tǒng)的演進,端側越來越復雜,而網(wǎng)側越來越無力承受這種復雜,才終于成了現(xiàn)在 TCP/IP 胖端瘦網(wǎng)的樣子。
曾看過一個講分組交換網(wǎng)的論文,說是分組交換網(wǎng)的思想早已有之,但在終端 “通用計算機” 化后才開始有大發(fā)展,計算機科學的發(fā)展促進了網(wǎng)絡通信,說的大致就是這個意思。
從經(jīng)濟學角度看,公共資源會隨著使用者的增多變得越發(fā)便宜,便宜意味著簡化,這里的公共資源是 IP 網(wǎng)絡,使用者是 TCP/UDP…,復雜性會集中在主機,集中在針對這些傳輸協(xié)議的管理上。
還是之前那個觀點,超過一定閾值后,東西越多,管理起來越復雜,額外管理開銷越大。 dog250的博客
編者按:這種時候往往需要重新定義問題,抽象解決問題的新方案,否則就會一直內卷下去。
韓信點兵,多多益善,現(xiàn)實中并不真實。
設想一場頭腦風暴或者辯論,如果規(guī)定發(fā)言人必須一次性把要說的全部講完,一旦結束便不能再講,還能碰撞出什么新想法?恰恰是在同一時空中的實時交互才讓這些變得有趣并有益。時間片輪轉調度的現(xiàn)代操作系統(tǒng)給了程序在同一時空溝通碰撞的權利,而 TCP/IP 助力將這種權利延伸了互聯(lián)網(wǎng)的每一個角落。
現(xiàn)代操作系統(tǒng)的意義非常特殊,感覺比 TCP/IP 還更重要。網(wǎng)絡連接早已有之,從古羅馬道路到 20 世紀電話線,一直到 1960 年代的分組交換網(wǎng),但一直沒被大用,直到現(xiàn)代 UNIX 系統(tǒng)開始發(fā)展,TCP/IP 才終于"被迫"進場。因為應用和數(shù)據(jù)同時開始爆發(fā)了,控制信令和數(shù)據(jù)開始變多,迫不及待需要傳輸?shù)搅硪粋€系統(tǒng),網(wǎng)絡才開始大發(fā)展。 dog250的博客
這一切的背后,就是多任務分時操作系統(tǒng),世界第一次有能力在 “同一時刻做很多不同的事情”,交互多了,可能性就多了,連鎖反應來源于此。后面的事情大家都知道了。
dog250的博客
同樣一段時間做幾件不同的事,可以不同的方式進行,可以一件事做完了再做另一件,按順序來,也可以將每件事情按照自己的邏輯分成不同步驟,輪轉不同事情的不同步驟,但這些都沒能將系統(tǒng)"現(xiàn)代化",現(xiàn)代化的根本在于"將每件事都分成了多個固定時間片的步驟",不再以事情為本,而以固定時間片為本,這就誕生了現(xiàn)代調度系統(tǒng),這是現(xiàn)代操作系統(tǒng)的現(xiàn)代之根,在這個機制下,虛擬內存幾乎就是順水推舟了。
dog250的博客
現(xiàn)實中,時間片并不固定,但這并不重要,因為調度器已經(jīng)和具體的任務解耦了,同樣的創(chuàng)舉來自分組交換,時間片統(tǒng)計復用,雖然可以強制規(guī)定每個報文固定大小從而占據(jù)固定時間片,但現(xiàn)實中報文在最大限制之下可以任意長,根本在于報文和時間解耦,而不再和連接關聯(lián),所以,所以最后,TCP 真是一個不合適的傳輸抽象,它明明是一個連接啊,從這里,你將能推論出 IP 一開始就是 TCP 的一部分,這個故事和現(xiàn)代操作系統(tǒng)是同一個故事。 dog250的博客
編輯:黃飛
?
電子發(fā)燒友App










評論