1. 程式人生 > >操作系統的概念

操作系統的概念

編寫 應用軟件 free 控制 什麽是 只需要 不用 bsp 文件的

一 為什麽要有操作系統

現代的計算機系統主要是由一個或者多個處理器,主存,硬盤,鍵盤,鼠標,顯示器,打印機,網絡接口及其他輸入輸出設備組成。

一般而言,現代計算機系統是一個復雜的系統。

其一:如果每位應用程序員都必須掌握該系統所有的細節,那就不可能再編寫代碼了(嚴重影響了程序員的開發效率:全部掌握這些細節可能需要一萬年....)

其二:並且管理這些部件並加以優化使用,是一件極富挑戰性的工作,於是,計算安裝了一層軟件(系統軟件),稱為操作系統。它的任務就是為用戶程序提供一個更好、更簡單、更清晰的計算機模型,並管理剛才提到的所有設備。

總結:

程序員無法把所有的硬件操作細節都了解到,管理這些硬件並且加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是操作系統來幹的,有了他,程序員就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟件的編寫就可以了,應用軟件直接使用操作系統提供的功能來間接使用硬件。

二 什麽是操作

操作系統位於計算機硬件與應用軟件之間,本質也是一個軟件。操作系統由操作系統的內核(運行於內核態,管理硬件資源)以及系統調用(運行於用戶態,為應用程序員寫的應用程序提供系統調用接口)兩部分組成,所以,單純的說操作系統是運行於內核態的,是不準確的。

細說的話,操作系統應該分成兩部分功能:

#一:隱藏了醜陋的硬件調用接口,為應用程序員提供調用硬件資源的更好,更簡單,更清晰的模型(系統調用接口)。應用程序員有了這些接口後,就不用再考慮操作硬件的細節,專心開發自己的應用程序即可。
例如:操作系統提供了文件這個抽象概念,對文件的操作就是對磁盤的操作,有了文件我們無需再去考慮關於磁盤的讀寫控制(比如控制磁盤轉動,移動磁頭讀寫數據等細節), #二:將應用程序對硬件資源的競態請求變得有序化
例如:很多應用軟件其實是共享一套計算機硬件,比方說有可能有三個應用程序同時需要申請打印機來輸出內容,那麽a程序競爭到了打印機資源就打印,然後可能是b競爭到打印機資源,也可能是c,這就導致了無序,打印機可能打印一段a的內容然後又去打印c...,操作系統的一個功能就是將這種無序變得有序。

三 操作系統與普通軟件的區別

1.主要區別是:你不想用暴風影音了你可以選擇用迅雷播放器或者幹脆自己寫一個,但是你無法寫一個屬於操作系統一部分的程序(時鐘中斷處理程序),操作系統由硬件保護,不能被用戶修改。

2.操作系統與用戶程序的差異並不在於二者所處的地位。特別地,操作系統是一個大型、復雜、長壽的軟件,

  • 大型:linux或windows的源代碼有五百萬行數量級。按照每頁50行共1000行的書來算,五百萬行要有100卷,要用一整個書架子來擺置,這還僅僅是內核部分。用戶程序,如GUI,庫以及基本應用軟件(如windows Explorer等),很容易就能達到這個數量的10倍或者20倍之多。
  • 長壽:操作系統很難編寫,如此大的代碼量,一旦完成,操作系統所有者便不會輕易扔掉,再寫一個。而是在原有的基礎上進行改進。(基本上可以把windows95/98/Me看出一個操作系統,而windows NT/2000/XP/Vista則是兩位一個操作系統,對於用戶來說它們十分相似。還有UNIX以及它的變體和克隆版本也演化了多年,如System V版,Solaris以及FreeBSD等都是Unix的原始版,不過盡管linux非常依照UNIX模式而仿制,並且與UNIX高度兼容,但是linux具有全新的代碼基礎)

操作系統的概念