日期:2014-07-19 09:30:30
目前學術界、工業界對作業系統有很多種不同的定義,但可以歸納和精簡為:
作業系統是管理計算機硬體資源,控制其他程式執行併為使用者提供互動操作介面的系統軟體的集合。
如果您看到上述繞口式的定義還沒有感到思維不清邏輯混亂,那麼恭喜你,你可能具備學習計算機這種變態學科的潛力。但是你也千萬不要得意,這僅僅是潛力,要真正成為計算機大拿,還有很長的一段路要走,同時還需要自身的努力,以及人生的機遇。
而有的時候,人生的機遇要遠遠大於自身的努力。
日期:2014-07-19 09:31:00
我之所以要將作業系統放在前面來講,是因為只有弄明白了作業系統,才能真正搞清楚介面的意義。
在這裡我要強調一個觀點,沒有作業系統的計算機無異於一堆廢銅爛鐵。
對,你沒有看錯。而且這也絕對不是危言聳聽。
沒有作業系統的計算機 = 什麼事情都幹不了的計算機!
這樣的計算機,即便拿去論斤賣廢銅爛鐵,也一定賣不出個好價錢。
日期:2014-07-19 09:31:48
當然我這裡指的是現代的計算機,不包括早期或者是前期的計算機,比如說帕斯卡式的手搖計算機、巴貝奇式的機械計算機就是完全手動的,不需要作業系統也能幹活,同時還不用電,完全符合現代社會環保的理念。
而電氣時代的計算機,雖然裝載了較為原始的系統,但是按現代作業系統的定義,也不能算是嚴格意義上的作業系統。因為那時,如果你要操作計算機,還需要一個比較專業的計算機操作員的協助,該操作員會負責將你的程式進行整理,再透過紙帶的方式讓計算機讀取,並加以執行。
操作員在某種程度上承擔了一部分作業系統的功能,並且他比一般的作業系統要更加智慧一點,具體表現在獲取資源發生衝突之時,不會選擇自我宕機或是關機重啟,而這樣的事情經常會發生在不是很穩定的Windows 95和Windows 98中。
當然這樣的操作員式作業系統也是有缺點的,比如說不能一直工作,他也是需要吃飯睡覺上廁所的,如果一旦遇到感冒發燒之類的症狀,對不起,該系統暫時無法提供你所需要的服務。
日期:2014-07-19 09:33:03
到了1969年,貝爾實驗室(當時世界上最牛逼的實驗室,沒有之一)的兩位科學家覺得很無聊,合計了一下,決定開發一款名為“星際旅行”的小遊戲來娛樂一下自己。關於這款遊戲我查了很多資料,但是因為年代太過久遠,實在找不到多餘的資訊,所以這款遊戲究竟長得什麼樣,在這裡我也沒法告訴大家。
在開發“星際旅行”的過程中,兩位科學家發現該遊戲需要一個作業系統才能正常執行。沒辦法,他們只好自己動作弄了個作業系統,接下來的事情大家應該都知道了,這個系統便是如今大名鼎鼎UNIX作業系統的前身。
程式設計師們都知道,不管是開發軟體還是作業系統,都需要使用程式語言進行程式設計。於是這兩位科學家對當時比較流行的各種程式語言進行了分析比較,試圖找到一個適合於開發作業系統的程式語言。不知道是幸運還是不幸,到了最後他們也沒有找到一款滿意的程式語言。於是他們只好勉為其難,親自動手弄了一款程式語言出來。
補充一點,這款程式語言就是日後風靡全球的C語言。
日期:2014-07-19 09:33:32
我們來梳理一下整件事情的前後關係,首先這兩個科學家發明了一款世界級的程式語言,然後在此基礎上繼續倒騰出了一個世界級的作業系統,而他們費勁心思做這些事的目的,只是為了玩一款“星際旅行”的小遊戲。
好吧,你們贏了。雖然以前我也有所耳聞IT界有很多奇葩,但這兩位科學家所做的事再一次重新整理了我的世界觀。讓我們來認識一下這兩位科學家吧,他們其中一位的名字是肯?湯姆遜(UNIX之父),而另一位的名字是丹尼斯?裡奇(C語言之父)。
到那時為止,人類歷史上才第一次有了一款真正意義上的作業系統。
日期:2014-07-19 09:34:01
看到這裡,可能有人會問,為什麼像“星際旅行”這樣的弱智遊戲非要在這麼高階的作業系統上才能執行呢?
問得很好,一般看到這裡能問出這個問題的人,說明他是一個思路清晰的人。至於這個問題的答案,其實也就是我接下來要談的重點
在正式揭示這個答案之前,我們先來看一看汽車和道路之間的關係。
日期:2014-07-19 09:34:45
以前上學的時候,每天走在回家的路上,望著街上來來往往的車輛,心裡油然萌發出一個念頭,如果自己能夠擁有一輛車,該有多好,這樣我就可以去任何想要去的地方了。
長大之後,等我擁有了自己的車,才明白一個事實:即便是有了車,也不一定能夠想去哪就去哪!
第一,如果那個地方沒有路,無論多麼牛逼的車,也到不了。
第二,如果我不知道去那個地方的路,無論多麼高階的車,同樣還是到不了。
明白了這兩點,我們在回過頭來看作業系統和應用程式之間的關係。
日期:2014-07-19 09:36:16
聰明的童鞋們大概猜到了,如果將作業系統比作道路,應用程式(軟體)就是跑在上面的車。
一個作業系統上可以執行很多的程式,就如同一條路上可以跑很多的車。比如說,自從有了Windows作業系統,我們不僅可以同時在計算機上聊天看A片,還能辦公玩遊戲……
Office辦公軟體就是路上跑著大大小小的貨車,樸實無華不中看,但是國民經濟少不了它;
QQ、暴風影音就是穿梭在大街小巷的轎車,價效比高而且方便實用;
魔獸世界、傳奇等遊戲那一定就是跑車了,光鮮豔麗,吸引著無數人的眼球的同時,也掏空了他們的腰包;
Photoshop、SPSS(統計軟體)等那就是傳說中的越野車,價格昂貴、效能卓越;
至於某些行業資訊系統軟體,我想那一定是勞斯萊斯了,不求最好,但求最貴!
日期:2014-07-19 09:38:00
搞清楚了這層之後,興許有人會說,如你所說,作業系統與應用軟體就是道路與車的關係,那麼作業系統與作業系統之間那又是什麼關係呢?
這個其實也很好理解。
我們知道,交通系統中不僅有公路,還有鐵路、海洋和天空。那麼,從應用範圍的角度來考慮:
Windows自然而然就是公路,無論去哪,都很方便;
蘋果的Macintosh應該對應著鐵路,在通鐵路的情況下,能夠去一些汽車能去的地方,但是還有更多的地方去不了;
UNIX相當於海洋,基本上適用於大眾貨物的海運,偶爾也會載載客,但次數並不頻繁;
而Linux相當於空運,運貨載客皆有可能。
日期:2014-07-19 09:38:54
說到這裡,相信童鞋們應該對作業系統和應用程式有了比較形象深入的認識,接下來我們再來聊一聊“介面”究竟是怎麼一回事。
應用程式能夠在作業系統上正確的執行,並透過作業系統呼叫硬體進行資料傳輸、檔案列印等所有的一切功能,都要透過一個叫“介面”的東西。
“介面”的全稱叫做“應用程式程式設計介面”。雖然“介面”這個概念看上去不那麼好理解,但是其功能還是很好懂的。
作業系統是管理計算機硬體資源,控制其他程式執行併為使用者提供互動操作介面的系統軟體的集合,這是是對作業系統的科學定義。
其實我們也可以換個簡易的說法,作業系統是連線計算機硬體和軟體的橋樑,軟體可以透過作業系統,呼叫一些硬體提供的服務。
而軟體與作業系統之間,都是透過“介面”,按照約定好的協議進行通訊。
日期:2014-07-19 09:39:28
舉個例子。
當我們在使用Windows時,我們既可以用Word列印檔案,也可以用PDF閱讀器列印檔案,甚至還能直接在IE等瀏覽器上列印檔案。
我們之所以能夠如此方便地進行列印,完全在於Windows提供了一個列印介面給Word,給PDF閱讀器,給IE瀏覽器。換句話說,不管任何軟體,只要呼叫了Windows提供的
列印介面,都可以進行列印。
這就是“介面”的神奇之處!
日期:2014-07-19 09:40:06
至於Windows如何通知印表機進行列印,如何將列印內容傳送給印表機。對不起,由於篇幅限制,我們對此不做更多的探討。
類似的介面還有很多。
瀏覽器、即時通訊軟體、網遊客戶端等需要呼叫Windows提供的通訊介面;
影音軟體、繪圖軟體、3D遊戲客戶端需要呼叫Windows提供的圖形顯示介面;
Word軟體、程式設計工具需要呼叫Windows提供的滑鼠鍵盤介面;
……
一切都是介面。
日期:2014-07-19 09:40:39
任何一款在作業系統上正確執行的軟體,無時無刻不再呼叫作業系統提供的介面,否則,這款軟體就什麼都做不了。
現在大家應該明白為什麼軟體界的大哥大並不是做防毒軟體的公司,不是做影音影片的公司,也不是做通訊軟體的公司,甚至不是做辦公軟體的公司,而是做作業系統的微軟。
作業系統才是王道,這是年輕時候的蓋茨最先領悟的道理,所以他成了軟體界叱吒風雲的王者!就如同汽車需要知道路才能到達目的地那樣,應用軟體也需要知道作業系統所提供的介面,才能順利的實現它的功能。
所以接下來安德森要完成他的計劃,就必須找到精通Windows和Macintosh的高手。因為只有這些高手,才懂得如何去呼叫所需要的介面,也只有這些高手,才能在Windows和Macintosh上開發出馬賽克。