我對windows核心編程的理解之一

看了幾天windows核心編程VC++,前幾天對進程,作業,線程的關係很迷惑,還有就是內核對象的應用也很迷茫。昨天自己拿着書,又翻過去看看。突然有一點心得,初步對windows下的三種工作單位有了新的理解。
 
   作業是進程的管理者,不讓進程獲取系統資源時太囂張;進程則是線程的運行平臺,給線程提供所有線程需要的系統資源;線程纔是windows真正的運行程序的單元,這一點和linux不同。進程運行起來後有一個主線程,如果一個線程不夠完成任務的,可以在主線程裏開啓子線程,協同主線程完成任務。線程的開啓關閉必定在其他線程函數裏,這一點也和linux不太一樣,linux可以fork進程,然後開闢線程來運行,一般也沒有在線程裏開闢線程的。
   內核對象就是數據結構而已。由於windows內核不公開,但是程序有需要和內核通信,操作內核工作。所以window引出了內核對象,這樣我們把要操作的數據放入對象中,然後內核自己會去出來數據。通過這樣的方式,程序就可以操作內核程序來工作了。這一點也迎合了內核對象不歸程序管而歸內核管理,因爲內核要了解內核對象,不然內核不知道自己該做什麼。所以也就那麼幾個內核對象,因爲程序操作內核做的事情,也就歸納爲那幾類。這樣看來,有一定的安全性,但是缺給程序員帶來了很多不變,自己就好像客戶而不是真正的計算機編程者.

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