告別小白 作業系統OS的概念和原理是什麼?

2021-09-28 17:14:13 字數 3216 閱讀 1968

本文總結自wiki

作業系統(英語:operating system,縮寫:os)是管理計算機硬體與軟體資源的系統軟體,同時也是計算機系統的核心與基石。作業系統需要處理如管理與配置記憶體決定系統資源供需的優先次序控制輸入與輸出裝置、操作網路與管理檔案系統等基本事務。作業系統也提供乙個讓使用者與系統互動的操作介面

作業系統的型別非常多樣:windows、linux、android、ios、鴻蒙。有些作業系統整合了圖形使用者介面,而有些僅使用命令列介面。

作業系統理論研究者有時把作業系統分成四大部分:

驅動程式- 最底層的、直接控制和監視各類硬體的部分,它們的職責是隱藏硬體的具體細節,並向其他部分提供乙個抽象的、通用的介面。

核心- 作業系統之最核心部分,通常執行在最高特權級,負責提供基礎性、結構性的功能。

支承庫- (亦作「介面庫」)是一系列特殊的程式庫,它們職責在於把系統所提供的基本服務包裝成應用程式所能夠使用的程式設計介面(api),是最靠近應用程式的部分。例如,gnu c執行期庫就屬於此類,它把各種作業系統的內部程式設計介面包裝成ansi c和posix程式設計介面的形式。

外圍- 所謂外圍,是指作業系統中除以上三類以外的所有其他部分,通常是用於提供特定高階服務的部件。例如,在微核心結構中,大部分系統服務,以及unix/linux中各種守護程序都通常被劃歸此列。作業系統的分類沒有乙個單一的標準,可以根據工作方式分為批處理作業系統、分時作業系統、實時作業系統、網路作業系統和分布式作業系統等;根據架構可以分為單核心作業系統等;根據執行的環境,可以分為桌面作業系統,嵌入式作業系統等;根據指令的長度分為8bit, 16bit, 32bit, 64bit的作業系統。

作業系統中四大部分的不同布局,也就形成了幾種整體結構的分野。常見的結構包括:簡單結構、層結構、微核心結構、垂直結構、和虛擬機器結構

作業系統的分類沒有乙個單一的標準,可以根據工作方式分為批處理作業系統、分時作業系統、實時作業系統、網路作業系統和分布式作業系統等;根據架構可以分為單核心作業系統等;根據執行的環境,可以分為桌面作業系統,嵌入式作業系統等;根據指令的長度分為8bit, 16bit, 32bit, 64bit的作業系統。

核心結構

核心是作業系統最核心最基礎的構件,其結構往往對作業系統的外部特性以及應用領域有著一定程度的影響。儘管隨著理論和實踐的不斷演進,作業系統高層特性與核心結構之間的耦合有日趨縮小之勢,但習慣上,核心結構仍然是作業系統分類之常用標準。

核心的結構可以分為單核心、微核心、超微核心、以及外核等。

單核心結構是作業系統中各核心部件雜然混居的形態,該結構產生於2023年代(亦有2023年代初之說,尚存爭議),歷史最長,是作業系統核心與外圍分離時的最初形態。

微核心結構是2023年代產生出來的較新的核心結構,強調結構性部件與功能性部件的分離。20世紀末,基於微核心結構,理論界中又發展出了超微核心與外核心等多種結構。儘管自2023年代起,大部分理論研究都集中在以微核心為首的「新興」結構之上,然而,在應用領域之中,以單核心結構為基礎的作業系統卻一直佔據著主導地位。

在眾多常用作業系統之中,除了qnx和基於mach的unix等個別系統外,幾乎全部採用單核心結構,例如大部分的unix、linux,以及windows(微軟聲稱windows nt是基於改良的微核心架構的,儘管理論界對此存有異議)。 微核心和超微核心結構主要用於研究性作業系統,還有一些嵌入式系統使用外核。

基於單核心的作業系統通常有著較長的歷史淵源。例如,絕大部分unix的家族史都可上溯至2023年代。該類作業系統多數有著相對古老的設計和實現(例如某些unix中存在著大量2023年代、2023年代的**)。另外,往往在效能方面略優於同一應用領域中採用其他核心結構的作業系統(但通常認為此種效能優勢不能完全歸功於單核心結構)。

通用與專用、嵌入式

通用作業系統是面向一般沒有特定應用需求的作業系統。由於沒有特定的應用需求,通用作業系統為了適應更廣泛的應用,需要支援更多的硬體與軟體,需要針對所有的使用者體驗,對系統進行更新。通用作業系統是乙個工程量繁重的作業系統。

實時與非實時

「實時作業系統」(real time os)泛指所有據有一定實時資源排程以及通訊能力的作業系統。而所謂「實時」,不同語境中往往有著非常不同的意義。某些時候僅僅用作「高效能」的同義詞。但在作業系統理論中「實時性」所指的通常是特定操作所消耗的時間(以及空間)的上限是可預知的。比如,如果說某個作業系統提供實時記憶體分配操作,那也就是說乙個記憶體分配操作所用時間(及空間)無論如何也不會超出作業系統所承諾的上限。實時性在某些領域非常重要,比如在工業控制、醫療器材、影音訊合成、以及軍事領域,實時性都是無可或缺的特性。

常用實時作業系統有qnx、vxworks、rtlinux等等,而linux、多數unix、以及多數windows家族成員等都屬於非實時作業系統。作業系統整體的實時性通常依仗核心的實時能力,但有時也可在非實時核心上建立實時作業系統,很多在windows上建立的實時作業系統就屬於此類。

在posix標準中專有一系用於規範實時作業系統的api,其中包括posix.4、posix.4a、posix.4b(合稱posix.4)以及posix.13等等。符合posix.4的作業系統通常被認可為實時作業系統(但實時作業系統並不需要符合posix.4標準)。

8位、16位、32位、64位、128位

所謂8位、16位、32位、64位、128位等術語有時指匯流排寬度,有時指指令寬度(在定長指令集中),而在作業系統理論中主要是指儲存器定址的寬度。如果儲存器的定址寬度是16位,那麼每乙個儲存器位址可以用16個二進位制位來表示,也就是說可以在64kb的範圍內定址。同樣道理32位的寬度對應4gb的定址範圍,64位的寬度對應16 exabyte的定址範圍。儲存器定址範圍並非僅僅是對作業系統而言的,其他型別的軟體的設計有時也會被定址範圍而影響。但是在作業系統的設計與實現中,定址範圍卻有著更為重要的意義。

在早期的16位作業系統中,由於64kb的定址範圍太小,大都都採用「段」加「線性位址」的二維平面位址空間的設計。分配儲存器時通常需要考慮「段置換」的問題,同時,應用程式所能夠使用的位址空間也往往有比較小的上限。

在32位作業系統中,4gb的定址範圍對於一般應用程式來說是綽綽有餘的,因而,通常使用一維的線性位址空間,而不使用「段」。

OS 作業系統基本概念介紹

目錄 一 作業系統認識 二 作業系統的具體功能 三 作業系統提供的服務 四 計算機系統的組成 五 操作碼指定的5類基本操作 六 陷阱和中斷 為了使計算機系統能正常執行而必不可少的那些系統軟體或軟體合集叫做作業系統 外部 巨集觀上看作業系統 程式設計人員 作業系統是虛擬的機器,在功能和數量上擴充了原有...

作業系統 作業系統的概念

3 作業系統的目標和功能 作業系統用做擴充機器 計算機系統自上而下可區分為 從作業系統的角度 計算機系統的概述 在計算機中的cpu 記憶體 輸入 輸出裝置等硬體,提供了基本的計算機資源 應用程式等規定了按何種方式來使用這些資源來為使用者服務 作業系統控制和協調各使用者程式對硬體的分配和呼叫。所以作業...

OS作業系統的啟動

ucore的啟動過程.ucore.img 映象檔案的生成 rom中的bios 軟體執行,完成加電自檢的工作後,跳轉到bootloader 程式.bootloader負責將os從硬碟載入到記憶體中,載入完成後,將cpu控制權移交給os,完成os的啟動.bootloader還完成了實模式和保護模式 32...