從自己的角度比較《天書夜讀》和《寒江獨釣》

2022-04-10 18:57:54 字數 1316 閱讀 3300

本文節選自《寒江獨釣》一書序言

早在一年前,譚文就和我談過想寫一本既能深刻介紹windows核心架構,又能結合具體windows驅動程式開發例項的書。在一年的時間中,譚文一直在 構思醞釀。那時候他的《天書夜讀——從組合語言到windows核心程式設計》已經出版,《天書夜讀》所涉及的內容很廣,但就如同書名一樣,它的內容不太適合 剛剛涉獵windows核心程式設計的程式設計師,反而更像一本供黑客學習的讀物。書中翔實地介紹了很多反彙編技巧的技巧,非常的精闢,但對於新手來說,容易對 windows核心程式設計產生畏懼感。

當我第一次讀完《寒江獨釣——windows核心安全程式設計》的初稿時,我覺得本書非常適合windows核心程式的入門。windows核心程式一直被認 為是只有高手才能涉及的領域,很多程式設計師對這種開發都覺得非常神秘。我覺得這是一種錯覺,其中有乙個很重要的原因就是國內很少出版這方面的書籍。這本書很 好地彌補了這方面的空白,我相信大部分讀者讀完後,都會覺得windows核心開發程式不再那麼神秘。的確,微軟自從windows 2000版本以後,核心的架構變化不是很大。當然,這並不意味著你讀完本書後,你就可以對核心開發游刃有餘了,這需要你對每乙個細節反覆研究,並且多做試 驗。

編寫windows核心程式,就意味著這個程式可以執行任意指令,可以訪問計算機所有的軟體、硬體資源。因此,稍有不慎就有可能將系統變得不穩定。 windows的設計者設計了各種驅動模型或者框架,如nt式核心驅動模型、wdm框架和新推出的wdf框架。在這些模型框架下程式設計,就使核心程式設計變得簡 單,同樣也降低了核心程式崩潰的機會。其實,windows驅動程式員和黑客都在寫核心程式,唯一不同的是驅動程式員按照微軟設計的模型寫程式,而黑客可 以不按照這些框架寫。windows設計的這些框架,可以將作業系統的原理隱藏起來,只暴露一些介面,驅動程式員只要把這些介面寫好就可以了。從這個角度 看,驅動開發並不難,尤其是讀完本書後,更會覺得不難了。但是想完成一些特殊的功能,如核心級隱藏程序等,windows的這些框架就沒什麼用處了,程式 員就需要對windows核心有全面的了解,通過直接修改windows核心來實現這些目的。往往黑客對這種技術樂此不疲,通過修改windows核心, 你會發現你的程式幾乎無所不能。

編寫核心程式是一件很痛苦的事情,回想起這些年學習核心程式開發的經歷,真是感慨萬千。就如同譚文所說:編寫核心程式的人從某種程度講是孤獨的。當乙個經 驗並不豐富的小程式設計師面對龐大複雜的並且不開源的windows框架時,那是一種怎樣的無助感啊!譚文是我比較欽佩的程式設計師之一,他對技術非常執著,並且 精力充沛。核心程式的知識涉及面非常廣,不同類別的核心程式差別也特別大,他幾乎都有所涉獵。相信讀者在讀完這本書後,能對windows核心開發有比較 詳細的了解,同時也能結合書中的例項寫出很優秀的核心程式了。

張   帆  

2023年5月1日於北京

從程式設計的角度看的記憶和回憶

首先丟擲思維,精神,意識的概念 思維是大腦產生精神的過程,是大腦對客體與主題進行感知,認識以及反應的過程。精神是大腦思維的產物,是大腦對客體與主題進行感知,認識以及反應的結果。精神是一種分子,是大腦神經元所合成的一類特定的氨基酸序列以及蛋白質分子。意識是大腦在認識過程中所達到的一種高階境界,意識是主...

從程式設計的角度看的記憶和回憶

首先丟擲思維,精神,意識的概念 思維是大腦產生精神的過程,是大腦對客體與主題進行感知,認識以及反應的過程。精神是大腦思維的產物,是大腦對客體與主題進行感知,認識以及反應的結果。精神是一種分子,是大腦神經元所合成的一類特定的氨基酸序列以及蛋白質分子。意識是大腦在認識過程中所達到的一種高階境界,意識是主...

從資源池和管理的角度理解物理記憶體

乙個任務所需要的記憶體大小以及位置不應該依賴其它任務的記憶體的大小和位置,並且記憶體的位置也不應該是永久性的,任務使用記憶體就應該和人們使用公共廁所一樣。程式任務只管自己的計算邏輯,用到記憶體的時候,不必自己操心,應該有乙個服務機構為其現場分配記憶體,分配多少算好呢,答案就是就可能少,按照基本單位分...