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

評論