說起Xwindow,很多人都知道,但是它的意義并不僅僅在于提供了一個圖形操作機(jī)制,任何事情如果牽扯到它的意義,那么就不得不談?wù)勊某錾尘耙约昂喴臍v史,Xwindow出生在終端大行其道的時期,那個時候,人們提出了終端的概念,這樣的話一臺計算機(jī)就可以被很多人共享,每個人一個終端然后連接到同一臺計算機(jī)上,這樣就擴(kuò)充了計算機(jī)的概念,再也不是只有計算機(jī)旁邊的人可以操作它了,只要有終端連接到計算機(jī)上,哪怕在大洋彼岸的人也可以是計算機(jī)的擁有者之一,這樣的話,終端可以擴(kuò)充到全世界,某種意義上講,計算機(jī)本身和連接它的終端就是一臺整個的大計算機(jī),其實多用戶,多任務(wù)的概念就是那個時期被發(fā)掘的。這里說的和windows操作系統(tǒng)無關(guān),windows系統(tǒng)根本就不是那個時期的東西,即使是后來的系統(tǒng),它也沒有做到后來者居上,想想msdos吧想想windows3.1吧,再想想windows多任務(wù)的發(fā)展吧,可憐的協(xié)作多任務(wù),經(jīng)典的畢竟是經(jīng)典,unix的哲學(xué)和文化影響了整個計算機(jī)產(chǎn)業(yè),后面會提及。
終端是有了,人們可以遠(yuǎn)程地操作計算機(jī)了,可是終端畢竟只是一個字符界面,那個時期有個字符界面就很不錯了,可是人們總是希望把自己可以觸及的東西盡量變得精彩,雖然很多人們摸不到那些巨無霸計算機(jī),但是unix的產(chǎn)生和c語言的產(chǎn)生讓很多人可以為計算機(jī)寫程序了,人們開始可以在0和1的世界里面暢游了,用0和1搭建起來的世界成就了我們今天世界的精彩。既然如此,人們迫不及待地要改進(jìn)終端的操作方式,于是圖形化的操作界面便成了一個需求,畢竟視覺上的東西總是很逼真,它卸掉了很多字符界面的邏輯包袱,具有諷刺意味的是,也正是如此,windows最后才風(fēng)靡天下,不過windows也就僅僅如此罷了。如果說人們想到了在遠(yuǎn)程通過圖形界面來操作計算機(jī),那么必然要有一種方式來使得計算機(jī)“理解”這一種方式,需要注意的是,終端就是終端,即使它有了圖形界面它還只是一個終端,真正的計算任務(wù)是在計算機(jī)端完成的,因此終端本身就是一個操作接口而已,不包括任何邏輯運算元素,因此比如說我按下一個按鈕,那么我“按下按鈕”這件事就必須告訴計算機(jī),以前字符終端依著計算機(jī),字符終端傳過去一個“l(fā)s -l”,那么計算機(jī)知道該怎么做,把事情做完后會把結(jié)果傳回來,這個過程是如此的容易被理解以至于根本沒有什么要說的,字符終端只需要顯示字符就可以了,但是圖形界面就不一樣了,這回計算機(jī)該照顧一下圖形終端了。
還是那個例子,我按下一個按鈕,我的本意是彈出來一個提示框,注意,按鈕是我按下的,計算機(jī)那邊根本沒有按鈕這個概念,提示框也是在我的圖形終端彈出的,計算機(jī)那邊也沒有提示框的概念,這就是說一定要通過某種機(jī)制使得當(dāng)計算機(jī)“收到”按下按鈕這件事時(當(dāng)然要有一個約定表示比如計算機(jī)收到“click 屬性”就表示用戶按下一個按鈕),通過自己的計算,然后發(fā)回圖形終端一個消息,當(dāng)圖形終端收到消息時,知道要在圖形界面的某個地方畫上什么圖形其實就是一個提示框。圖形終端已經(jīng)不再是僅有顯示字符的功能的“終端”了,它已經(jīng)成了一個小得多的計算機(jī)了,擁有了自己的邏輯控制功能,于是就分出了服務(wù)器和客戶機(jī),服務(wù)器就是那個只負(fù)責(zé)計算和回顯的大家通過終端(字符/圖形)共享的計算機(jī),而客戶端就是擁有終端的小得多,功能也弱很多的計算機(jī),這就是在計算本身的意義上分出的服務(wù)器和客戶機(jī),這種模型一直延續(xù)到現(xiàn)在,在顯示的意義上,負(fù)責(zé)接收用戶輸入和顯示的計算機(jī)成了服務(wù)器,而負(fù)責(zé)告訴服務(wù)器該如何顯示的計算機(jī)成了客戶機(jī),而它們之間復(fù)雜的交互固然需要一個約定,這個約定成了一個協(xié)議,就是x協(xié)議,而整個體系就成了X window體系。見下圖:
話說linux來自網(wǎng)絡(luò)是從開發(fā)意義上說的,不僅如此,它的誕生環(huán)境決定了它的思想深深扎根于網(wǎng)絡(luò),這就是它繼承于unix的最好的基因,unix誕生之日就不是讓用戶在它面前擺置的,用戶必須擁有一個終端,通過終端連接,當(dāng)然終端可以在本機(jī)。在unix的誕生之日,它就宣稱一切都可以來自于網(wǎng)絡(luò),這里的網(wǎng)絡(luò)不僅僅指TCP/IP網(wǎng)絡(luò),那個時候還沒有呢,網(wǎng)絡(luò)的意義就在于分布式,TCP/IP僅僅說的是一個網(wǎng)絡(luò)的實現(xiàn)而已,它就是一套協(xié)議族,在沒有TCP/IP的時候,可以通過終端的線路規(guī)程組成網(wǎng)絡(luò),也可以用任何可以把操作者和計算機(jī)拉開距離的機(jī)制組成網(wǎng)絡(luò),現(xiàn)在我們看一下當(dāng)今存儲領(lǐng)域很火的SAN吧,其實SAN就是一個不是TCP/IP的網(wǎng)絡(luò),它的實現(xiàn)協(xié)議就是scsi協(xié)議和底層的光纖傳輸規(guī)程,其實任何的計算機(jī)內(nèi)部的io指令都可以實現(xiàn)一個網(wǎng)絡(luò)協(xié)議,一臺計算機(jī)本身就是一個網(wǎng)絡(luò),其中cpu是中心,而各種io外設(shè)都是這個網(wǎng)絡(luò)上的節(jié)點,于是按照分布式的思想將那些外設(shè)拉到外邊去不就組成了一臺分布式計算機(jī)了嗎?這個思想根本不是什么新東西,想想unix的終端,它不是把鍵盤和顯示器拉到外邊了嗎?x window當(dāng)然也是,現(xiàn)在把硬盤拉到外面就成了SAN,這一切是不是很有趣。硬盤拉到外邊再通過scsi的協(xié)議規(guī)程就可以讓很多計算機(jī)共享一個磁盤陣列,這也不是什么新東西,想想商用unix的虛擬化的概念,一臺計算機(jī)中運行n多個操作系統(tǒng),分成了n多個node,在加上numa機(jī)制可能更復(fù)雜,這些操作系統(tǒng)不就是共享一個本機(jī)的磁盤嗎?可見現(xiàn)在分布式的概念,集群的概念僅僅是一個策略性的東西罷了,機(jī)制在于什么?機(jī)制就是unix的哲學(xué)!
SAN的方式有好處嗎?當(dāng)然有,當(dāng)TCP/IP風(fēng)靡的時代,讓人們恨不得把所有東西都架設(shè)在它上面,于是一個網(wǎng)絡(luò)里面的數(shù)據(jù)就十分雜亂了,而且在數(shù)據(jù)量很大的網(wǎng)絡(luò),TCP/IP會不堪重負(fù),就好像一些粉絲把明星壓得不堪重負(fù)一樣的道理。這樣通過另一個網(wǎng)絡(luò),scsi網(wǎng)絡(luò)來傳輸塊級的數(shù)據(jù),不但可以將大量的文件數(shù)據(jù)從TCP/IP網(wǎng)絡(luò)卸載下來,而且很靈活的塊級傳輸會使得效率更高,不像tcp/ip的文件級的操作,保留了很多高層的東西,這樣也會使文件服務(wù)器很累,san將存儲策略交給了管理員,自己只管存儲,人們像操作自己的磁盤一樣操作san網(wǎng)絡(luò),再也不用被文件等高層概念困擾,也免去了很多的文件配置工作。如果按照unix哲學(xué)思考問題,那么計算機(jī)中的任何一個外設(shè)都可以被拉到外面,就連內(nèi)存都可以,這樣的話,分布式就真的變成現(xiàn)實了,人們再也不用為了分布式而寫那么多基于tcp/ip的程序了,一切就好像在操作自己的計算機(jī)一樣,tcp/ip的負(fù)載將大大減輕。這就是一個輪回,起初人們使用自己的計算機(jī)而且在自己的計算機(jī)中保存一切數(shù)據(jù),然后有了網(wǎng)絡(luò),人們知道了網(wǎng)絡(luò)的概念后開始讓網(wǎng)絡(luò)幫忙,然后人們發(fā)現(xiàn)一切都是網(wǎng)絡(luò)后,就又開始自主的屏蔽掉了網(wǎng)絡(luò)的概念,就像san一樣,本地化的操作著整個網(wǎng)絡(luò)...
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
