windows驅動程式設計學習順序?
2023年11月19日
核心驅動程式設計並不是什麼高深的知識,無非也是按照系統的api,框架去做**罷了,只是這些東西,提供了更接近於底層的功能,在某些情況下對程式的構架更加有利效率更高而已。沒有創新性的東西是無所謂難度不難度的,照葫蘆畫瓢而已。 從**學起,基本路線 語言-》演算法-》框架機制&windows程式-》系統核心實現等。 下面說的一些內容都有乙個共同的前提,就是不斷的去寫**,除錯**,否則說什麼也是白搭的。我曾經乙個作業系統的老師的一句話是"看了書叫你做,做不出來就是沒學懂" 第乙個階段:鑑於你現在已經提了乙個方向了,那選擇的語言自然是c和c++,兩門都需要,現在windows核心是混合的,從這個角度來說也必須兩門都熟悉。相關書籍,國內的可以買譚浩強的c和c++書,比較簡短,適合上手,然後c++ primer這種從c++的思想去講解c++的書也可以翻一翻。然後為了c和c++的基礎紮實一些,可以看例如effective c++/more effective c++/c語言陷阱等等類似的書,都是從語言的層面去解釋一些經驗和技巧,注意,這裡的內容沒有涉及一點點技術,只是最基本的語言基礎。 為了方便後面的學習,這個階段應該學習計算機的基礎課程,資料結構,計算機網路,作業系統,資料庫原理,組成原理等等,甚至包括一些高等數學,離散數學的基礎。這個要視你的情況而定,非常重要,對進一步發展影響很大。 第二個階段:windows程式,熟悉windows程式的實現機制,例如訊息響應,事件處理這些都應該明白底層是如何實現的,而不只是知道乙個概念而已。相關的包括windows sdk,mfc框架等,書籍有《windows程式設計》(微軟那本1300頁的書,雖然很厚,但這本無非是該領域的經典,當然國內的也有不少,但是都是寫的比較淺顯,很多地方一筆帶過),《深入淺出mfc》《vc技術內幕》等,這些都是講解mfc底層實現機制的書,比起教你如何去拖控制項,更有實際價值。這個是講解socket的,其實這方面內容一般windows程式的書都有涉及,但是很多人還是不明白,為了熟悉一些,還是有必要看的。驅動程式,這個只是在windows的乙個固定框架下去做,沒什麼大不了。 第三個階段:核心相關。由於windows不開源,所以沒有**可以看,好的是現在又reactos這種仿windows的系統是開源的,可以看看**的實現,熟悉作業系統是怎麼執行的。這些東西很多涉及到了安全相關的機制,要靠自己去琢磨。 除此之外還應該明白編譯器如何編譯,鏈結器如何鏈結,作業系統如何載入檔案,windows如何管理記憶體等等無數的相關知識,這些不會對你的程式造成直接價值,但是間接價值無限。在學習的過程中,應該明白一些基本的解決問題方法,設計模式什麼的,這些東西才是真正的技術。我估計你要做點什麼研究很困難了,不過上面這些也足夠了。 現在很多人一學習就要系統的學,但是你也要明白這樣的代價。前面進步很慢,學習週期很長,很難堅持下來。學到什麼程度?學會了能夠拿來用,做的出來說的出道理就可以繼續後面的學習了,別要用了幾年的new,還不知道new做了些什麼。
windows驅動程式設計學習筆記 (三)IRP
一,irp的概念 i o request package 當乙個應用程式呼叫函式去操作某個裝置時,比如呼叫createfile,deviceiocontrol,等等時,i o管理器為此函式建立乙個irp資料結構物件和乙個irp stack location資料結構物件陣列,陣列個數等於驅動程式堆疊上...
windows驅動開發學習
序言 很多人都對驅動開發有興趣,但往往找不到正確的學習方式.當然這跟驅動開發的本土化資 料少有關係.大多學的驅動開發資料都以英文為主,這樣讓很多驅動初學者很頭疼.本人從 事驅動開發時間不長也不短,大概也就3 4年時間.大多數人都認為會驅動開發的都是牛人,高手之類的.其實高手,牛人不是這樣定義的.我們...
Windows程式設計學習
1 基礎 windows 運作機制的核心是動態鏈結的概念,windows 提 用程式豐富的可呼叫函式,這些函式採用 dynamic linking library dll 的方式撰寫,是具有 dll 或.exe 為副檔名的檔案。早期的windows主要部分僅通過三個動態鏈結庫實現,分別為 kerne...