編程基礎概念:操作系統

===》點我返回目錄《===

上面我們探索到了一臺理論上的計算機是什麼樣子的。爲了讓大家能使用計算機,這麼一臺裸機肯定是不行的,不能讓大家自己去管理CPU,管理內存,管理輸入輸出設備,管理程序裝載。這些底層的工作是統一的,不需要每一個使用計算機的人自己動手去做。

這就誕生了操作系統,把計算機的這些組成部件的管理給包起來,然後使用計算機的人其實使用的是操作系統。

操作系統可以看成是一個調度程序,它負責管理計算機這臺設備,包括CPU、內存和I/O設備。那它調度什麼東西呢?如果一臺計算機是一種專用的機器,其實不需要調度的,但是計算機設計之初就定位爲一臺通用的計算機器,所以原則上一臺計算機會運行很多程序。如果規定這些程序要排隊,一個運行完之後才運行下一個,實際上也沒有什麼好調度的。

歷史上,電子計算機剛發明出來的頭幾年,是沒有什麼操作系統的,全是手工操作。程序員將穿孔的紙帶裝入輸入機,然後啓動輸入機把程序和數據輸入計內存,接着通過控制檯開關啓動程序針對數據運行;計算完畢,打印輸出計算結果;用戶取走結果並卸下紙帶(或卡片)後,才讓下一個用戶上機。

而現在你熟悉的實際情況是一臺計算機上會同時運行很多程序,我們邊寫作邊放音樂,還在通過網絡下載文件,甚至同時在social網絡上聊天。對這些程序任務的管理,是操作系統要處理的核心事務,每一個程序都需要佔用計算機的計算資源,如CPU如內存如輸入輸出設備,互相之間不能打架,所以需要一個調度機制。

歷史上誕生過很多種操作系統。

首先出現的是批處理系統,在它的控制下,計算機能夠自動地、成批地處理一個或多個用戶的作業(這作業包括程序、數據和命令)。這一下大大提高了效率,不過CPU的性能還是沒有充分利用,因爲輸入輸出這些操作要通過機電設備,是很慢的,作爲純粹的電子設備的CPU大部分時間要等着這些設備完成工作。

爲了克服這些矛盾,出現了多道程序技術,允許多個程序同時進入內存並運行。我們這裏要理解“同時”這個詞的含義,它是一種對人的感受來講的“同時”,因爲CPU只有一個,嚴格說起來,是沒有同時的,一個瞬間只執行一條指令。實際上,是讓這些任務交替在CPU中運行,它們共享系統中的各種硬、軟件資源。當一道程序因I/O請求而暫停運行時,CPU便立即轉去運行另一道程序。CPU很快,雖然它是交替爲這些程序服務,但是從人的感受來講是多個任務同時在運行。

這樣一步一步演變成現代的操作系統。

比較主流的操作系統有:

Unix

Unix操作系統是一種強大的多任務、多用戶操作系統。1971年,Ken Thompson編寫了第一個版本,後來Dennis M.Ritchie加入改寫,因此我們一般把Thompson和Ritchie稱爲Unix發明人。Unix是強大的系統,但是它的核心卻是非常小的,1979年發佈的正式Unix的核心是有40KB。

 

(Ken Thompson,1943.2.4 - ,Dennis Ritchie,1941.9.9-2011.10.12,圖片來源:維基百科)

Linux

1991年,芬蘭的Linus Torvalds發佈了Linux內核系統。後來很多開發者加入,

發佈了不同的發行版本,如UBuntu,Centos。

 

(Linus Torvalds,1969.12.28 - ,圖片來源:維基百科)

Windows

由Microsoft公司在1980年代研發。

Mac OS

由Apple公司在1970年代研發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章