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

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