第三章 核心物件

2021-06-26 22:09:20 字數 1461 閱讀 8259

一、核心物件

1、每個核心物件都是一片兒記憶體(資料結構),由系統核心分配與訪問。

2、令牌物件,事件物件,程序物件,訊號量物件,執行緒物件等都是核心物件。

3、核心物件有安全限制,在建立之初就需要傳入乙個結構security_attributes的安全描述符

4、類似的還有使用者物件和gdi物件等等,它們的建立函式就不需要乙個「安全描述符」引數。

注:相關apicreate*

二、核心物件--控制代碼

1、核心物件是屬於系統核心的,可以被很多程序使用。

2、程序維持了乙個核心物件表,核心物件表的結構為:索引(控制代碼),指標(核心物件指標),訪問掩碼....

3、程序中通過控制代碼來操作核心物件,用完以後需要呼叫closehandle來關閉核心物件,但是系統核心可

能沒有釋放核心物件,僅僅是將這個核心物件的計數減一了,因為有可能其他程序在使用。

注:有乙個工具可以檢視程序中的核心物件(process explorer)

三、核心物件的傳遞

繼承:子程序複製父程序能被繼承的控制代碼,此時控制代碼值相同,

核心物件計數加一。(createprocess有引數設定)

環境塊繼承:環境塊是可以被繼承的,因此父程序只需要把控制代碼值寫進環境變數中就可以了。(不安全的)

訊息:父程序可以通過給子程序發訊息來傳遞控制代碼。(不安全的)

呼叫:duplicatehandle將a程序的s控制代碼複製給b程序。(安全的)

名字:使用名字來呼叫。

四、核心物件的命名

1、可以為核心物件命名,這樣其他程序可以通過名字開啟乙個已有的核心物件,

或者建立時如有已存在這個名字的核心物件,則變為開啟這個控制代碼物件了。

2、如果在伺服器,或者遠端桌面等功能上,很有可能多個終端所使用的核心物件名稱一樣,

造成了混亂,此時就需要命名空間了。

global (全域性命名空間) 用於公用伺服器端核心物件,local(本地命名空間)用於終端專有核心物件。

3、另一種核心物件命名安全機制孕育而生:

專有命名空間針對專有使用者建立類似(global,local)等命名空間的 專有命名空間,這樣確保只有特權用

戶才能使用專有命名空間。

a.先建立邊界createboundarydescriptor

b.再建立安全描述符(sid)createwellknownsid

c.然後將sid插入邊界中 addsidtoboundarydescriptor

d.最後呼叫 createprivatenamespace 建立專有命名空間

第三章 核心結構

2016 07 05 lt os cfg.h中的核心功能函式 os enter critical os exit critical osinit osstart osintenter osintexit osschedlock os sched lock en osschedunlock os sc...

第三章 JSP內建物件

1 request物件代表了客戶端的請求資訊,主要用於接收通過http協議傳送到伺服器段的資料,包括頭資訊 系統資訊 請求方式 請求引數等。2 獲取請求引數,解決中文亂碼 index.jsp 獲取請求引數的值 show.jsp id引數值為 request.getparameter id 姓名引數值...

物件導向第三章 多型

多型 多型 是具有表現多種形態的能力的特徵。實現多型的三個必備條件 1.繼承 2.要有重寫 3.父類引用指向子類物件 實現多型的兩種方式 1.使用父類作為方法形參實現多型 2.使用父類作為方法返回值實現多型 多型的好處 通過多型可以減少類中的 量,可以提高 的可擴充套件性和可維護性。繼承是多型的基礎...