操作系統基礎

應用程序在面向過程的語言中是指令加數據,即以指令爲中心,圍繞着指令的執行去選擇所需要的數據;而在面向對象的語言中是算法加上數據結構,即以數據爲中心,圍繞着選定好的對象來組織算法。

不管怎麼說,程序是由開發者通過某種語言編寫出來的,並且存放在外部的存儲器中的。當然了,設計出的程序是要讓它在某種特定的硬件上運行的並實現某種功能的,而想要程序運行,就需要將這些程序從外部的存儲器加載到內存中,並且能夠被CPU處理。說到這裏,問題出現了,我們的計算機只能識別二進制的數據,要如何才能讓它識別高級語言編寫的程序呢?所以這裏需要對程序進行特別的處理才能讓它被底層的硬件設備執行。人們在底層醜陋的硬件接口上加上彙編接口,使得高級語言彙編以後成二進制,從而使其能夠被計算機識別。然而彙編接口仍然很底層,所以開發者又對這些硬件程序開發了一個能夠順利完成彙編功能的程序------驅動程序。有了驅動程序以後,人們不用再自行編寫某段代碼,只要在適當的時候調用驅動程序即可,之後訪問硬件,然後在將程序彙編成二進制,就可以被CPU處理了。這樣一來,每個程序就是一個計算機的運行的基本單位,這個運行中的程序,我們不再稱呼他爲程序,而是稱它爲進程(Process)

之後人們發現,這樣逐一的處理進程方式,使得計算機的執行效率太低。所以人們想要設計出一種能夠提高計算機效率,讓多進程在硬件上運行,並且進程之間不會發生衝突的監控程序,這個程序就是我們所說的操作系統。完整的操作系統是指內核以及各種應用程序。內核工作在底層的硬件系統上,屏蔽了醜陋的接口,爲用戶提供了更爲方便的接口,以便用戶調用,這些接口被稱爲“系統調用”。之後程序員還將經常使用的接口再次封裝,用戶可以更加方便的調用這個接口,這被稱爲“庫調用”。內核還具有APIapplication programming interface),即應用編程接口。

我們以Windows以及Linux爲例:如果一個程序運用了WindowsAPI,那它如果想要在Linux上運行,那就需要不同系統的API兼容纔可以。所以,如果你遵守了POSIXportable operating system可移植性操作系統)的規範,那麼就可以在不同的操作系統上運行。

還有另外一個接口,ABIapplicationbinary interface,應用二進制接口),這個接口是應用者運行程序時面對的接口。

操作系統具備以下基本的功能:硬件的驅動、資源分配、進程管理、文件系統管理、安全防護特性。這些功能夠讓操作系統更加穩定的工作。

當然了,操作系統只有內核是不夠的,在操作系統上還應有很多的應用程序。其中有一個特殊的應用程序----訪問接口程序。其主要分爲:GUIGraphic User Interface,即圖形用戶界面)以及CLICommand Line Interface,即命令行界面)。其中Windows雖然有CLI,但是很少人用,人們使用主要還是Windows提供的GUI,因爲它簡單易上手。但是對於Linux來說,GUI就是一個負擔了,它大大佔用了Linux的內存空間。當然了,使用CLIGUI要方便的多,只是CLI入門比GUI難,所以Windows被廣大羣衆使用,而Linux主要是應用在公司的服務器上。


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