從操作系統(tǒng)發(fā)展的歷史可以看出,操作系統(tǒng)的最大作用是提供合適的抽象。
操作系統(tǒng)是幫我們操控硬件的軟件,它就像是應(yīng)用程序與硬件的中間者,在兩者之間扮演一個(gè)協(xié)調(diào)、管理的角色。它們的關(guān)系如下圖。
操作系統(tǒng)提供了幾個(gè)我們熟悉的概念去表示硬件設(shè)備,比如進(jìn)程、虛擬存儲(chǔ)器、文件。它們表示的硬件設(shè)備如下圖所示。
可以看出文件是對(duì)I/O設(shè)備的抽象描述,而虛擬存儲(chǔ)器是對(duì)主存和I/O設(shè)備的統(tǒng)稱,最后,一個(gè)進(jìn)程在此基礎(chǔ)上又加入了處理器。
但在目前的大規(guī)模多機(jī)集群的情況下,這個(gè)抽象已經(jīng)失效了
由于摩爾定律的失效,單核CPU的效率無法提升,同時(shí)單機(jī)IO的無法擴(kuò)展。但是商業(yè)和科研的上的數(shù)據(jù)需求又不斷的在擴(kuò)大規(guī)模,導(dǎo)致了在服務(wù)端越來越依靠不斷的擴(kuò)大機(jī)器規(guī)模來解決問題。
但機(jī)器規(guī)模的擴(kuò)張僅僅是粗放型的,解決機(jī)器、系統(tǒng)、數(shù)據(jù)之間的協(xié)調(diào)成為巨大的問題
我們不再像以前那樣,通過shell或者視窗來登陸系統(tǒng)了,我們?cè)谑謾C(jī)上登陸的系統(tǒng),背后的數(shù)據(jù)來自于一個(gè)又一個(gè)的大集群
那么,問題來了,目前的操作系統(tǒng)不足以抽象上面的機(jī)器
這導(dǎo)致了很多問題,對(duì)于程序員而言,我們寫的程序不再能簡單的編寫然后運(yùn)行了,至少一個(gè)大規(guī)模的,需要被很多人訪問的系統(tǒng)是這樣的
對(duì)于民眾而言,他們不能直接接觸到這個(gè)集群,但是過年搶票的痛苦的背后其實(shí)來自于系統(tǒng)
新的抽象是云嗎?
這是目前的云計(jì)算的抽象圖,雖然看起來很酷,但實(shí)際上這個(gè)抽象還只是一個(gè)藍(lán)圖,并沒有像第一幅圖那樣已經(jīng)實(shí)現(xiàn)。
正如微軟的win9,win10試圖用同一個(gè)操作系統(tǒng)UI解決手機(jī)和PC的問題那樣不切實(shí)際一樣,同樣的故事也在云端發(fā)生,IaaS提供給用戶的還是傳統(tǒng)的操作系統(tǒng)交互,登陸系統(tǒng)后你還是看到一樣的操作系統(tǒng)shell。
PaaS稍微好一些,PaaS能讓程序員把自己的程序分發(fā)部署、運(yùn)行到集群上,但目前受限于安全性、性能、實(shí)現(xiàn)的考慮,用戶能在PaaS系統(tǒng)中獲得的自由非常小,并且又依賴于不同廠商的云實(shí)現(xiàn)。
Docker提供了一種思路,就是集裝箱方式來管理程序,或者說,這只是集群中的一項(xiàng)標(biāo)準(zhǔn)
和這個(gè)圖片所暗示的一樣,docker僅僅提供了集裝箱的標(biāo)準(zhǔn),但與之配套的碼頭、裝卸機(jī)、中心控制等還沒有建立,這僅僅是個(gè)開始。人的自由還非常的小。
我們這個(gè)時(shí)代有無數(shù)的數(shù)據(jù),但這些數(shù)據(jù)卻被禁錮在政府或者大商業(yè)公司的機(jī)房內(nèi),人類的大腦所能接受的數(shù)據(jù)量是有限的,可以想想目前我們的PC已經(jīng)實(shí)質(zhì)上性能過剩了,手機(jī)也快了。唯有在云上給出系統(tǒng)的合理抽象,大多人才有機(jī)會(huì)去操縱和利用這些數(shù)據(jù),并進(jìn)化出我們和這個(gè)世界的新的交流方式。
博文出處:http://my.oschina.net/HardySimpson/blog/374399