一個普通的作業系統,即類似于一個軟體中間件,是使用者程式和硬體之間的“中介”
是以,一個達到要求的作業系統,便能夠運作許多使用者級别的應用程式(第三方程式)。
同時,這些應用程式可以:
- 和使用者互動
- 和網際網路互動
- 和檔案系統互動
對于應用程式來說,作業系統就像是計算機本身,這台“計算機”提供了:
(1)程序(應用程式的可執行單元);
(2)記憶體;
(3)檔案系統(位于磁盤中);
(4)網際網路互動;
(5)使用者互動裝置(即輸入輸出裝置,常見的諸如鍵盤,滑鼠,顯示器等,專用的裝置諸如空間球,遊戲搖桿等);
(6)對于多使用者作業系統,還需要給每個使用者配置設定權限,管理他們可以操作等檔案等;
(7)計算機安全,比如防止黑客入侵某個部分,或者防止第三方應用程式的肆意破壞= =;
(8)其它。(whatever needed)
(日後補充作業系統的架構概念圖)
是以,當我們學習作業系統時,可以從一下幾個方面入手:
(1)記憶體管理與cpu:
首當其沖,這是作業系統,也就是應用程式所謂的“計算機”的核心。
(2)程序與線程:
這是最重要的部分,事實上和記憶體管理、cpu唇齒相連。沒有了程序和線程,作業系統也就失去了意義。
(3)檔案系統:
對于一個作業系統,管理磁盤也相當重要;程序相關的内容都存儲在記憶體中,可是程序需要讀寫,需要長期存儲一些東西,這些都是檔案系統都功勞。
(4)硬體裝置接口:
硬體裝置,包括磁盤,滑鼠,鍵盤等,是作業系統的另一個重要任務;對于磁盤,關系到檔案系統的讀取;而對于其它裝置,關系到作業系統能否良好地提供一個互動式應用程式環境。
(5)網際網路接口:
這關系到作業系統能否提供一個良好的網絡應用程式環境。面對網際網路發達的今天,沒有一個作業系統可以不提供這樣的接口。
(注:chromium os,firefox os,幾乎完全依賴與網絡。web os,我認為是以後作業系統發展的方向)
在有了以上幾個部分以後,其實作業系統已經可以運作。但是為了更好的服務與應用程式,作業系統需要這些:
*虛拟記憶體:可以在磁盤中擴張記憶體。當應用程式需要的記憶體大于實體記憶體時,作業系統可以不受束縛的提供更大的記憶體。
*計算機安全:為了保護作業系統、硬碟、使用者資料或者别的使用者程序,作業系統應該需要提供安全保護。