題記:
2003年,正是互聯(lián)網(wǎng)風(fēng)起云涌,人人哥倫布事事蒙查查的時代,幾個年輕人懷揣大夢想但做著看似沒有巨大商業(yè)回報的基礎(chǔ)軟件開發(fā)研究,他們打破常規(guī)發(fā)明創(chuàng)造自主開發(fā)出Windows內(nèi)核調(diào)試器Syser Debugger,他們用笨功夫和慢功夫編寫了30萬行代碼,在人類的基礎(chǔ)軟件開發(fā)史上留下永恒記憶。
十年后,這群已經(jīng)不是那么年輕的年輕人籌劃用新鮮的技術(shù)構(gòu)想為Syser Debugger這款世界級產(chǎn)品注入新的生命力,這些舉動或許是為了找回當(dāng)初的夢想,用這樣的舉動來完成他們的致青春。
對于軟件開發(fā)者而言,內(nèi)核調(diào)試器是幫助他們洞悉Windows底層源代碼,查看Windows內(nèi)核的一種非常有效的手段。同時,它們還能夠協(xié)助開發(fā)者對其所開發(fā)的應(yīng)用程序進(jìn)行內(nèi)核調(diào)試,以確保應(yīng)用程序或相關(guān)的設(shè)備驅(qū)動程序與Windows能夠?qū)崿F(xiàn)源代碼級的兼容。
內(nèi)核調(diào)試器在基礎(chǔ)開發(fā)的作用很大,但內(nèi)核調(diào)試器本身的開發(fā)是一項(xiàng)相當(dāng)挑戰(zhàn)軟件開發(fā)者智慧的工作。在Windows平臺,除了微軟自身所提供的調(diào)試工具WinDBG外,一直以來市場上并沒有更為方便的同類產(chǎn)品出現(xiàn)。這由于內(nèi)核調(diào)試器的產(chǎn)品研發(fā)具有較高的技術(shù)門檻,且使用者相對窄眾,缺乏通用軟件的巨大市場空間和商業(yè)回報,所以很少有軟件供應(yīng)商進(jìn)行此項(xiàng)產(chǎn)品的投入與開發(fā)。
Compuware的SoftIce曾經(jīng)是內(nèi)核調(diào)試器中最富盛名的產(chǎn)品。SoftIce最早由Numega公司開發(fā),后因收購被納入Compuware旗下。相比微軟出品的WinDBG,SoftIce最大的改進(jìn)體現(xiàn)在圖形化界面和單機(jī)調(diào)試兩方面。這些改進(jìn)為軟件開發(fā)者的內(nèi)核調(diào)試操作提供了極大的便利性。不過,在發(fā)布了針對Windows 2000的內(nèi)核調(diào)試器版本后,伴隨著Compuware在商業(yè)世界的由盛轉(zhuǎn)衰,SoftIce這款明星產(chǎn)品也開始隕落。這款世界上曾經(jīng)最出色的Windows內(nèi)核調(diào)試器從2006年起就處于長期不更新的狀態(tài)。
SoftIce在那個年代所締造的輝煌激勵著當(dāng)時的中國開發(fā)者。吳巖峰、陳俊豪、馬杰是需要被記住的。這幾位當(dāng)年供職瑞星公司的年輕軟件工程師,用業(yè)余時間成功開發(fā)出了圖形界面內(nèi)核調(diào)試器Syser Debugger,在這個“基礎(chǔ)中的基礎(chǔ)”領(lǐng)域做出自己名流千古的產(chǎn)品,真正參與到Windows基礎(chǔ)軟件開發(fā)中。
Syser Debugger,這是目前除微軟的WinDbg外唯一仍在維護(hù)的Windows內(nèi)核調(diào)試器。它的研發(fā)構(gòu)想萌發(fā)于2003年。當(dāng)時,大學(xué)畢業(yè)在北京闖蕩了幾年的吳巖峰加入瑞星公司剛剛一年,剛加入了一個研究性質(zhì)的技術(shù)組。在這里,他遇到了后來的開發(fā)合作伙伴陳俊豪。陳俊豪當(dāng)時還未大學(xué)畢業(yè),正在瑞星實(shí)習(xí),是一位極富編程天賦的80后。馬杰那時正處于在瑞星發(fā)展的快車道。幾個年輕人都對Windows底層軟件開發(fā)有著濃厚的興趣。
在他們的研究工作中,內(nèi)核調(diào)試器是一個必備的工具。但在實(shí)際使用時,他們發(fā)現(xiàn),現(xiàn)有的內(nèi)核調(diào)試器在某些功能方面仍需完善,操作的便利性也需要提升。出于功能改進(jìn)和將開發(fā)興趣轉(zhuǎn)變?yōu)檎鎸?shí)產(chǎn)品的簡單想法,他們決定一起開發(fā)一出由中國人打造的給世界人用的內(nèi)核調(diào)試器。
“做出中國的SoftIce”是當(dāng)時他們立下的激蕩著青春夢想的目標(biāo),同時吳巖峰和陳俊豪也在開發(fā)初期就明確了這一目標(biāo)背后的技術(shù)內(nèi)涵。他們希望仿效SoftIce的設(shè)計,開發(fā)出一款純圖形界面、且支持單機(jī)調(diào)試的內(nèi)核調(diào)試器。馬杰(前瑞星公司研發(fā)總經(jīng)理、安全寶創(chuàng)始人兼CEO)在回憶Syser Debugger的開發(fā)歷程時稱,只有還原到最初的時間場景之下,才能真正理解和體會Syser Debugger對于中國基礎(chǔ)軟件開發(fā)的獨(dú)特意義。
在產(chǎn)品開發(fā)剛剛起步的2003年,Windows的統(tǒng)治地位依然穩(wěn)固,參與Windows基礎(chǔ)軟件開發(fā)是許多程序員的終極夢想。不過在當(dāng)時,中國的開發(fā)者仍舊處在相對封閉的開發(fā)氛圍之中,與國外的交流有限,相關(guān)的開發(fā)經(jīng)驗(yàn)幾近于零,可供參考的資料也十分稀缺,而操作系統(tǒng)底層軟件的開發(fā)本身就擁有非常高的技術(shù)門檻。這些都決定了內(nèi)核調(diào)試器的開發(fā)是勇敢者才會挑戰(zhàn)的任務(wù)。
他們在三個月內(nèi)就完成了這款內(nèi)核調(diào)試器的原型設(shè)計。但要把這個簡陋的原型豐實(shí)起來,需要攻克諸多技術(shù)難題。“圖形界面開發(fā)”是擺在吳巖峰和陳俊豪面前的第一道難關(guān)。在當(dāng)時的條件下,這一產(chǎn)品設(shè)計目標(biāo)牽涉到復(fù)雜的底層技術(shù),以及繁雜的調(diào)試操作。在吳巖峰和陳俊豪之前,也曾有中國的軟件開發(fā)者嘗試進(jìn)行Windows內(nèi)核調(diào)試器的研發(fā),但大都是基于DOS環(huán)境進(jìn)行純字符界面的開發(fā)。清華大學(xué)碩士劉濤濤所開發(fā)的TR工具軟件曾在DOS平臺聲名鵲起,但卻始終未能向圖形化界面成功轉(zhuǎn)型。
面對一個看上去有些“遙不可及”的目標(biāo),他們邁出了自己的腳步。屏幕上每一次的光標(biāo)閃現(xiàn)、每一個菜單的打開與關(guān)閉,還有每個滾動條的翻轉(zhuǎn),都要被折算成一行行復(fù)雜的代碼,還有一次次繁瑣的調(diào)試操作,這些全部要用業(yè)余時間完成。在圖形化界面開發(fā)陷入困局的階段,馬杰這位當(dāng)時瑞星技術(shù)開發(fā)團(tuán)隊(duì)的領(lǐng)導(dǎo)者開發(fā)出一個跨平臺的圖形庫,大大降低了圖形界面開發(fā)的復(fù)雜性。
在開發(fā)初期提供圖形庫支持后,馬杰退出了這款產(chǎn)品的研發(fā)。接下來的兩年時間內(nèi),吳巖峰和陳俊豪完成了余下的開發(fā)工作。他們按照功能對開發(fā)任務(wù)進(jìn)行了細(xì)分,最終于2006年以共享軟件的形式正式對外發(fā)布這款產(chǎn)品。正是因?yàn)轳R杰在項(xiàng)目早期的參與,讓這款產(chǎn)品在某種意義上擁有“兩個半”作者。這款Windows內(nèi)核調(diào)試器后來被命名為Syser Debugger。吳巖峰說,這款心血之作最終被冠以“Syser”之名,一方面是為了表達(dá)其系統(tǒng)級軟件的屬性,同時也是在向基礎(chǔ)軟件開發(fā)群體致敬。
時至今日,Syser Debugger的開發(fā)歷程對于它的創(chuàng)造者而言依然是如此激動人心。每當(dāng)回顧這段長達(dá)兩年多的開發(fā)經(jīng)歷,吳巖峰的腦海里總會閃現(xiàn)出鮮活的畫面。為了解決一個反復(fù)出現(xiàn)的藍(lán)屏故障,吳巖峰在兩個月的時間內(nèi)每天晚上都花費(fèi)至少兩個小時的時間調(diào)試代碼。經(jīng)過了一個環(huán)節(jié)接一個環(huán)節(jié)地排查,幾乎把所有的代碼都注釋掉,才最終確定故障是由于多個CPU相互競爭導(dǎo)致調(diào)用棧被沖掉所致。只是將兩條指令的順序相互調(diào)換之后,這個藍(lán)屏故障就被解決了,但是之前反反復(fù)復(fù)地排查讓吳巖峰多次想到了放棄。
持續(xù)不斷地開發(fā)與改進(jìn)后,Syser Debugger終于問世,至此吳巖峰和陳俊豪共編寫和調(diào)試了近30萬行代碼。或許是冥冥中自有安排,Syser Debugger在2006年正式發(fā)布與SoftIce退出市場的時間正好契合。Syser Debugger由此接棒SoftIce成為世界上唯一能夠在Windows平臺上單機(jī)調(diào)試驅(qū)動開發(fā)的系統(tǒng)級調(diào)試工具,同時它還是除微軟WinDbg外唯一至今仍在維護(hù)的Windows內(nèi)核調(diào)試器。
Syser Debugger的成功研發(fā)讓吳巖峰和陳俊豪躋身頂尖Windows基礎(chǔ)軟件開發(fā)者的行列。在2006年發(fā)布之后,這款內(nèi)核調(diào)試器在專業(yè)領(lǐng)域迅速贏得認(rèn)可。尤其是在國際市場,很多國外軟件開發(fā)商購買這一軟件的許可證,并成為其長期客戶。更加讓吳巖峰和陳俊豪發(fā)自內(nèi)心感到自豪的是,Syser Debugger得到了業(yè)內(nèi)頂級專家的認(rèn)可。《Windows Internals》(深入解析Windows操作系統(tǒng))是著名操作系統(tǒng)內(nèi)核專家Mark Russinovich和David Solomon所撰寫的闡述Windows操作系統(tǒng)原理的經(jīng)典著作。在這一著作第五版的“內(nèi)核調(diào)試”章節(jié)中,把Syser Debugger列為推薦的Windows內(nèi)核調(diào)試工具。這標(biāo)志著Syser Debugger真正躋身世界級工具軟件行列,對于中國的基礎(chǔ)軟件開發(fā)者而言,是一個莫大的鼓舞。
但由于內(nèi)核調(diào)試器的用戶群相對局限,Syser Debugger長期以來僅在一個相對狹小的領(lǐng)域被專業(yè)人士所熟知,在國內(nèi)市場的知名度僅限于安全圈。同時,這款明星產(chǎn)品給兩位作者所帶來的商業(yè)回報也并不豐厚。在完成Syser Debugger開發(fā)后,吳巖峰和陳俊豪也走上了完全不同的職業(yè)軌跡。
在2006年Syser Debugger發(fā)布之時,吳巖峰已經(jīng)離開瑞星公司,開始了一段短期創(chuàng)業(yè)的經(jīng)歷。隨后他先后輾轉(zhuǎn)Websense、盛大等公司,目前在阿里巴巴云OS部門從事軟件研發(fā)工作。從2003年開始研發(fā)Syser Debugger至今,吳巖峰在十年間從一個“單打獨(dú)斗”的技術(shù)粉絲蛻變?yōu)橐晃粨碛胸S富軟件開發(fā)與管理經(jīng)驗(yàn)的資深軟件工程師。他坦言,做軟件開發(fā)的初心并未改變,而相比自己在十年前的選擇,今天的他更愿意做能夠惠及大眾的軟件,讓軟件技術(shù)服務(wù)更多的人。
另一位作者陳俊豪則在Syser Debugger開發(fā)期間從大學(xué)休學(xué),并且在離開瑞星公司后成為一個“宅”在家里的軟件開發(fā)者。這位80后至今仍過著每天打游戲、階段性在家中做些軟件開發(fā)工作的自由生活。從2008年起,Syser Debugger基本交由吳巖峰進(jìn)行維護(hù),陳俊豪則在維護(hù)著同樣是兩人合作開發(fā)的另一款多媒體格式轉(zhuǎn)換軟件。
從2006年發(fā)布至今,Syser Debugger一直處在維護(hù)之中。不過,這款能夠?qū)indows操作系統(tǒng)進(jìn)行中立分析的工具軟件也有自己的成長困惑。Syser Debugger在32位版本的Windows系統(tǒng)上運(yùn)行穩(wěn)定,但隨著64位版本W(wǎng)indows的流行,向64位Windows平臺的移植成為制約Syser Debugger發(fā)展的瓶頸。憑借吳巖峰的一己之力,無法完成向64位Windows平臺移植的龐大工程。除此之外,Syser Debugger還面臨著與Windows 8操作系統(tǒng)相互兼容的問題。
另一方面,長期以來Syser Debugger的付費(fèi)客戶主要來自國外,國內(nèi)的應(yīng)用狀況堪憂。吳巖峰說,除了軟件盜版這一常規(guī)問題,國內(nèi)用戶對Syser Debugger的使用方向更讓人失望。Syser Debugger最初的設(shè)計是為了幫助殺毒軟件廠商進(jìn)行軟件調(diào)試,解決系統(tǒng)兼容性問題,但在國內(nèi)卻被用于游戲外掛、流氓軟件的開發(fā)。這完全背離了吳巖峰和陳俊豪的產(chǎn)品研發(fā)初衷。
雖然技術(shù)理想在現(xiàn)實(shí)中顯得很骨感,但吳巖峰依然堅(jiān)信Syser Debugger是一款具有長久生命力的工具軟件。他相信,雖然被某些用戶用來釋放負(fù)能量,但Syser Debugger在專業(yè)領(lǐng)域服務(wù)專業(yè)人群的貢獻(xiàn)已經(jīng)得到證明。
作為Syser Debugger圖形界面開發(fā)進(jìn)程中重要的支持者,馬杰對這款產(chǎn)品有著深厚的感情。他認(rèn)為,在當(dāng)時技術(shù)難度高、且商業(yè)回報不大的情況下,吳巖峰和陳俊豪在產(chǎn)品開發(fā)過程中所表現(xiàn)出的智慧和勇氣,至今仍令人欽佩。相比當(dāng)前大量的軟件開發(fā)者熱衷于高商業(yè)價值的消費(fèi)類軟件開發(fā),吳巖峰和陳俊豪當(dāng)初的選擇顯得尤為可貴。
另外,結(jié)合自己多年的安全軟件領(lǐng)域從業(yè)經(jīng)驗(yàn),馬杰表示,時至今日,從信息安全的角度,重新回味和審視Syser Debugger的開發(fā)歷程都是非常有價值的。自主開發(fā)的內(nèi)核調(diào)試器符合國家層面的信息安全要求,同時其所具備的中立性也更加利于軟件開發(fā)的故障發(fā)現(xiàn)。此外,Syser Debugger的成功證明了中國人具備參與操作系統(tǒng)底層軟件開發(fā)的能力,應(yīng)該有更多的軟件開發(fā)者在這一領(lǐng)域展開嘗試。
目前,馬杰組建了一支年輕的技術(shù)團(tuán)隊(duì),開啟Syser Debugger向64位Windows平臺的移植進(jìn)程。馬杰希望,用新鮮的技術(shù)構(gòu)想與熱情,為Syser Debugger這款世界級產(chǎn)品注入新的活力。作為一款Windows平臺的內(nèi)核調(diào)試器,Syser Debugger能不能完成這次關(guān)鍵的轉(zhuǎn)型?或許只有重新尋回當(dāng)初的激蕩的情感與無畏的勇氣,才會真正找到答案。