操作系統功能的歷史
在計算機中尚不存在操作系統的年代,完全沒有任何程序,因此程序員就需要編寫出處理相關的所有程序。用機器語言編寫程序,然后再使用開關將程序輸入,這個過程非常麻煩。于是,有人開發出僅具有 「加載」 和 「運行功能」 的 「監控程序」 ,這就是操作系統的原型。
通過事先啟動監控程序,程序員就可以根據需要將各種程序加載到內存中運行。
隨著時代的發展,人們在利用 「監控程序」 編寫程序的過程中,發現很多程序都有 「共通」 的部分。例如,鍵盤輸入、顯示器輸出文字等。因此,基本的 「輸入輸出」 部分的程序被追加到了監控程序中。因此,初期的操作系統就應用而生了。
初期的操作系統 = 監控程序 + 基本的輸入輸出程序
之后,開始有更多的功能被追加到監控程序中。例如,硬件控制程序、語言處理器(匯編、編譯、解析)以及各種實用程序等。從此可知, 「操作系統本身并不是單獨的程序,而是多個程序的集合體」 。
意識到操作系統的存在
我們希望制作應用的程序員意識到一點,那就是他們制作的不是硬件,而是 「利用操作系統功能的應用」 。
雖然,對程序員來說,掌握硬件的基本知識是必需的,不過,在操作系統誕生后,就沒有必要再編寫直接控制硬件的程序了。不過,「要想成為一個全面的程序員,有一點需要清楚的是,掌握基本的硬件知識,并借助操作系統進行抽象化,可以大大提高編程效率。」
?在操作環境這個運行環境下,應用并不是直接控制硬件,而是通過操作系統來 「間接」 控制硬件。
?
系統調用和高級編程語言的移植性
操作系統的硬件控制功能,通常是通過一些小的 「函數集合」 的形式來提供的。這些函數及調用函數的行為統稱為系統調用System Call,也就是應用對操作系統的功能進行調用。
C語言
等高級編程語言并不依存于特定的操作系統。這是因為無論Windows
還是Linux
都能使用幾乎相同的源代碼。因此, 「高級編程語言的機制就是,使用獨自的函數名,然后再在編譯時將其轉換成相應操作系統的系統調用」 。
用高級編程語言編寫的應用在 「編譯后」 ,就轉換成了利用系統調用的 「本地代碼」 。
操作系統和高級編程語言使硬件抽象化
通過使用操作系統提供的 「系統調用」 ,程序員就沒必要編寫直接控制硬件的程序了。而且,通過使用高級編程語言,有時甚至也無需考慮系統調用的存在。這是因為 「操作系統和高級編程語言能夠使硬件抽象化」 。
我們用C語言
編寫一個往文件中寫入字符串的應用。
#include
void main(){
//打開文件
FILE *fp = fopen("MyFile.txt","w");
/寫入文件
fputs("前端柒八九",fp);
// 關閉文件
fclose(fp);
}
fopen()
是用來打開文件的函數fputs()
是用來往文件中寫入字符串的函數fclose()
是用來關閉文件的函數
在應用被編譯運行后,MyFile
文件中就會被寫入前端柒八九
字符串。
?文件是操作系統對磁盤媒介空間的抽象化
?
正如前面介紹過,硬件被劃分為了多個扇區,并以扇區為單位對磁盤進行讀寫。
變量fp
中被賦予的是fopen()
函數的返回值。該值稱為 「文件指針」 。應用打開文件后,操作系統就會自動申請分配用來管理文件讀寫的內存空間。這個內存空間的地址可以通過fopen()
函數的返回值獲得。用fopen()
打開文件后,接下來就是通過指定文件指針來對文件進行操作。
Windows 操作系統的特征
32/64
位操作系統- 通過 「API函數集」 來提供系統調用
- 提供采用了圖形用戶界面Graphical User Interface的用戶界面
- 通過
WYSIWYG
實現打印輸出 - 提供多任務功能
- 提供網絡功能及數據庫功能
- 通過 「即插即用」 實現設備驅動的自動設定
我們來挑幾個我們比較感興趣的來簡單講講。
通過WYSIWYG
實現打印輸出
WYSIWYG
是What You See Is What You Get
的縮寫。翻譯成中文就是 「所見即所得」 。
WYSIWYG
指的是顯示器上顯示的內容可以直接通過打印機打印輸出。在Windows
中,顯示器和打印機是被作為同等的圖形輸出設備處理的,而該功能也就為WYSIWYG
的實現提供了條件。
借助WYSIWYG
功能,基本上在同一個程序中就可以實現顯示和打印這兩方面的操作了。
提供多任務功能
? 「多任務」 指的是同時運行多個程序的功能。
Windows
是通過 「時鐘分割」 技術來實現多任務功能的。?
時鐘分割指的是在短時間間隔內,多個程序切換運行的方式。在用戶看來,就是多個任務在同時運行。而Windows
會自動切換多個程序的運行。此外,Windows
還具有 「以程序中的函數為單位來進行時鐘分割的多線程功能」 。
提供網絡功能及數據庫功能
Windows
中,網絡功能是作為 「標準功能」 提供的。數據庫功能有時也會在之后進行追加。網絡功能和數據庫功能,雖并不是操作系統本身不可欠缺的功能,但因為它們和操作系統很接近,所以被統稱為 「中間件」 而不是應用。
?中間件的意思是處于 「操作系統和應用的中間」 。
?
操作系統和中間件合在一起,也稱為**「系統軟件」**
通過即插即用實現設備驅動的自動設定
即插即用Plug-and-Play指的是新的設備連接(Plug
)后立刻就可以使用(Play
)的機制。新的設備連接到計算機后,系統就會自動安裝和設定用來控制該設備的 「設備驅動」 程序。
設備驅動是操作系統的一部分,提供了同硬件進行基本的輸入輸出的功能。
-
計算機
+關注
關注
19文章
7534瀏覽量
88457 -
程序員
+關注
關注
4文章
953瀏覽量
29833 -
機器語言
+關注
關注
0文章
35瀏覽量
10772
發布評論請先 登錄
相關推薦
評論