大多數作業系統中,都會把應用程式和核心**分離執行在不同的模式下。核心模式訪問系統資料和硬體,應用程式執行在沒有特權的模式下(使用者模式),只能使用有限的api,且不能直接訪問硬體。當使用者模式呼叫系統服務時,cpu執行乙個特殊的指令以切換到核心模式,當系統服務呼叫完成時,作業系統切換回使用者模式。
windows與大多數unix系統類似,驅動程式**共享核心模式的記憶體空間,意味著任何系統元件或驅動程式都可能訪問其他系統元件的資料。但是,windows實現了一套核心保護機制,比如patchguard和核心模式**簽名。
核心模式的元件雖然共享系統資源,但也不會互相訪問,而是通過傳引數的方式來訪問或修改資料結構。大多數系統**用c寫的是為了保證可移植性,c語言不是物件導向的語言結構,比如動態型別繫結,多態函式,型別繼承等。但是,基於c的實現借鑑了物件導向的概念,但並不依賴物件導向。
下圖是簡化版的windows系統架構實現:
首先注意那條橫線將使用者模式和核心模式分開兩部分了。橫線之上是使用者模式的程序,下面是核心模式的系統服務。
這4種使用者模式下的程序分別是:
注意:服務程序和使用者程式之下的「子系統dll」。在windows下,使用者程式不直接呼叫本地windows服務,而是通過子系統dll來呼叫。子系統dll的角色是將文件化的函式翻譯成該用的非文件化的系統服務(未公開的)。
核心模式的幾個元件包括:
下表中是windoows系統核心元件的檔名:
檔名元件
ntoskrnl.exe
執行體和核心
ntkrnlpa.exe(32位才有)
支援pae
hal.dll
硬體抽象層
win32k.sys
子系統的核心模式部分
ntdll.dll
內部函式
kernal32.dll,advapi32.dll,user32.dll,gdi32.dll
核心子系統的元件
Windows網路系統架構 轉
在介紹windows網路體系架構之前,我首先介紹一下windows中的兩個重要程式設計規範 tdi,ndis.然後再介紹網路體系的架構。tdi,transport driver inte ce,傳輸驅動程式介面。windows system32 drivers tdi.sys。在實現網路api驅動程...
系統架構 氣象監測系統架構 氣象監測系統架構
ft qc6氣象監測系統架構 風途科技 fengtu降水變化對農業生產的影響。在農業生產過程中,水資源起著重要的作用,農作物吸收的水資源,主要是地表水 地下水和大氣降水,隨著社會的不斷發展,水資源不斷減少,並且水資源也出現汙染的情況,使農業生產用水問題越來越嚴重。據相關報道,我國灌溉作物面積逐漸減少...
系統架構 系統架構師
一 什麼是架構師 是乙個既需要掌控整體又需要洞悉區域性瓶頸並依據具體的業務場景給出解決方案的團隊領導型人物。架構師需要能夠識別定義並確認需求,能夠進行系統分解形成整體架構,能夠正確地技術選型,能夠制定技術規格說明並有效推動實施落地。按 togaf 的定義,架構師的職責是了解並關注實際上關係重大但未變...