财新传媒
位置:博客 > 纪中展 > 致青春,基础软件开发的中国故事

致青春,基础软件开发的中国故事

题记:

2003年,正是互联网风起云涌,人人哥伦布事事蒙查查的时代,几个年轻人怀揣大梦想但做着看似没有巨大商业回报的基础软件开发研究,他们打破常规发明创造自主开发出Windows内核调试器Syser Debugger,他们用笨功夫和慢功夫编写了30万行代码,在人类的基础软件开发史上留下永恒记忆。

十年后,这群已经不是那么年轻的年轻人筹划用新鲜的技术构想为Syser Debugger这款世界级产品注入新的生命力,这些举动或许是为了找回当初的梦想,用这样的举动来完成他们的致青春。

对于软件开发者而言,内核调试器是帮助他们洞悉Windows底层源代码,查看Windows内核的一种非常有效的手段。同时,它们还能够协助开发者对其所开发的应用程序进行内核调试,以确保应用程序或相关的设备驱动程序与Windows能够实现源代码级的兼容。

内核调试器在基础开发的作用很大,但内核调试器本身的开发是一项相当挑战软件开发者智慧的工作。在Windows平台,除了微软自身所提供的调试工具WinDBG外,一直以来市场上并没有更为方便的同类产品出现。这由于内核调试器的产品研发具有较高的技术门槛,且使用者相对窄众,缺乏通用软件的巨大市场空间和商业回报,所以很少有软件供应商进行此项产品的投入与开发。

Compuware的SoftIce曾经是内核调试器中最富盛名的产品。SoftIce最早由Numega公司开发,后因收购被纳入Compuware旗下。相比微软出品的WinDBG,SoftIce最大的改进体现在图形化界面和单机调试两方面。这些改进为软件开发者的内核调试操作提供了极大的便利性。不过,在发布了针对Windows 2000的内核调试器版本后,伴随着Compuware在商业世界的由盛转衰,SoftIce这款明星产品也开始陨落。这款世界上曾经最出色的Windows内核调试器从2006年起就处于长期不更新的状态。

SoftIce在那个年代所缔造的辉煌激励着当时的中国开发者。吴岩峰、陈俊豪、马杰是需要被记住的。这几位当年供职瑞星公司的年轻软件工程师,用业余时间成功开发出了图形界面内核调试器Syser Debugger,在这个“基础中的基础”领域做出自己名流千古的产品,真正参与到Windows基础软件开发中。

Syser Debugger,这是目前除微软的WinDbg外唯一仍在维护的Windows内核调试器。它的研发构想萌发于2003年。当时,大学毕业在北京闯荡了几年的吴岩峰加入瑞星公司刚刚一年,刚加入了一个研究性质的技术组。在这里,他遇到了后来的开发合作伙伴陈俊豪。陈俊豪当时还未大学毕业,正在瑞星实习,是一位极富编程天赋的80后。马杰那时正处于在瑞星发展的快车道。几个年轻人都对Windows底层软件开发有着浓厚的兴趣。

在他们的研究工作中,内核调试器是一个必备的工具。但在实际使用时,他们发现,现有的内核调试器在某些功能方面仍需完善,操作的便利性也需要提升。出于功能改进和将开发兴趣转变为真实产品的简单想法,他们决定一起开发一出由中国人打造的给世界人用的内核调试器。

“做出中国的SoftIce”是当时他们立下的激荡着青春梦想的目标,同时吴岩峰和陈俊豪也在开发初期就明确了这一目标背后的技术内涵。他们希望仿效SoftIce的设计,开发出一款纯图形界面、且支持单机调试的内核调试器。马杰(前瑞星公司研发总经理、安全宝创始人兼CEO)在回忆Syser Debugger的开发历程时称,只有还原到最初的时间场景之下,才能真正理解和体会Syser Debugger对于中国基础软件开发的独特意义。

在产品开发刚刚起步的2003年,Windows的统治地位依然稳固,参与Windows基础软件开发是许多程序员的终极梦想。不过在当时,中国的开发者仍旧处在相对封闭的开发氛围之中,与国外的交流有限,相关的开发经验几近于零,可供参考的资料也十分稀缺,而操作系统底层软件的开发本身就拥有非常高的技术门槛。这些都决定了内核调试器的开发是勇敢者才会挑战的任务。

他们在三个月内就完成了这款内核调试器的原型设计。但要把这个简陋的原型丰实起来,需要攻克诸多技术难题。“图形界面开发”是摆在吴岩峰和陈俊豪面前的第一道难关。在当时的条件下,这一产品设计目标牵涉到复杂的底层技术,以及繁杂的调试操作。在吴岩峰和陈俊豪之前,也曾有中国的软件开发者尝试进行Windows内核调试器的研发,但大都是基于DOS环境进行纯字符界面的开发。清华大学硕士刘涛涛所开发的TR工具软件曾在DOS平台声名鹊起,但却始终未能向图形化界面成功转型。

面对一个看上去有些“遥不可及”的目标,他们迈出了自己的脚步。屏幕上每一次的光标闪现、每一个菜单的打开与关闭,还有每个滚动条的翻转,都要被折算成一行行复杂的代码,还有一次次繁琐的调试操作,这些全部要用业余时间完成。在图形化界面开发陷入困局的阶段,马杰这位当时瑞星技术开发团队的领导者开发出一个跨平台的图形库,大大降低了图形界面开发的复杂性。

在开发初期提供图形库支持后,马杰退出了这款产品的研发。接下来的两年时间内,吴岩峰和陈俊豪完成了余下的开发工作。他们按照功能对开发任务进行了细分,最终于2006年以共享软件的形式正式对外发布这款产品。正是因为马杰在项目早期的参与,让这款产品在某种意义上拥有“两个半”作者。这款Windows内核调试器后来被命名为Syser Debugger。吴岩峰说,这款心血之作最终被冠以“Syser”之名,一方面是为了表达其系统级软件的属性,同时也是在向基础软件开发群体致敬。

时至今日,Syser Debugger的开发历程对于它的创造者而言依然是如此激动人心。每当回顾这段长达两年多的开发经历,吴岩峰的脑海里总会闪现出鲜活的画面。为了解决一个反复出现的蓝屏故障,吴岩峰在两个月的时间内每天晚上都花费至少两个小时的时间调试代码。经过了一个环节接一个环节地排查,几乎把所有的代码都注释掉,才最终确定故障是由于多个CPU相互竞争导致调用栈被冲掉所致。只是将两条指令的顺序相互调换之后,这个蓝屏故障就被解决了,但是之前反反复复地排查让吴岩峰多次想到了放弃。

持续不断地开发与改进后,Syser Debugger终于问世,至此吴岩峰和陈俊豪共编写和调试了近30万行代码。或许是冥冥中自有安排,Syser Debugger在2006年正式发布与SoftIce退出市场的时间正好契合。Syser Debugger由此接棒SoftIce成为世界上唯一能够在Windows平台上单机调试驱动开发的系统级调试工具,同时它还是除微软WinDbg外唯一至今仍在维护的Windows内核调试器。

Syser Debugger的成功研发让吴岩峰和陈俊豪跻身顶尖Windows基础软件开发者的行列。在2006年发布之后,这款内核调试器在专业领域迅速赢得认可。尤其是在国际市场,很多国外软件开发商购买这一软件的许可证,并成为其长期客户。更加让吴岩峰和陈俊豪发自内心感到自豪的是,Syser Debugger得到了业内顶级专家的认可。《Windows Internals》(深入解析Windows操作系统)是著名操作系统内核专家Mark Russinovich和David Solomon所撰写的阐述Windows操作系统原理的经典著作。在这一著作第五版的“内核调试”章节中,把Syser Debugger列为推荐的Windows内核调试工具。这标志着Syser Debugger真正跻身世界级工具软件行列,对于中国的基础软件开发者而言,是一个莫大的鼓舞。

但由于内核调试器的用户群相对局限,Syser Debugger长期以来仅在一个相对狭小的领域被专业人士所熟知,在国内市场的知名度仅限于安全圈。同时,这款明星产品给两位作者所带来的商业回报也并不丰厚。在完成Syser Debugger开发后,吴岩峰和陈俊豪也走上了完全不同的职业轨迹。

在2006年Syser Debugger发布之时,吴岩峰已经离开瑞星公司,开始了一段短期创业的经历。随后他先后辗转Websense、盛大等公司,目前在阿里巴巴云OS部门从事软件研发工作。从2003年开始研发Syser Debugger至今,吴岩峰在十年间从一个“单打独斗”的技术粉丝蜕变为一位拥有丰富软件开发与管理经验的资深软件工程师。他坦言,做软件开发的初心并未改变,而相比自己在十年前的选择,今天的他更愿意做能够惠及大众的软件,让软件技术服务更多的人。

另一位作者陈俊豪则在Syser Debugger开发期间从大学休学,并且在离开瑞星公司后成为一个“宅”在家里的软件开发者。这位80后至今仍过着每天打游戏、阶段性在家中做些软件开发工作的自由生活。从2008年起,Syser Debugger基本交由吴岩峰进行维护,陈俊豪则在维护着同样是两人合作开发的另一款多媒体格式转换软件。

从2006年发布至今,Syser Debugger一直处在维护之中。不过,这款能够对Windows操作系统进行中立分析的工具软件也有自己的成长困惑。Syser Debugger在32位版本的Windows系统上运行稳定,但随着64位版本Windows的流行,向64位Windows平台的移植成为制约Syser Debugger发展的瓶颈。凭借吴岩峰的一己之力,无法完成向64位Windows平台移植的庞大工程。除此之外,Syser Debugger还面临着与Windows 8操作系统相互兼容的问题。

另一方面,长期以来Syser Debugger的付费客户主要来自国外,国内的应用状况堪忧。吴岩峰说,除了软件盗版这一常规问题,国内用户对Syser Debugger的使用方向更让人失望。Syser Debugger最初的设计是为了帮助杀毒软件厂商进行软件调试,解决系统兼容性问题,但在国内却被用于游戏外挂、流氓软件的开发。这完全背离了吴岩峰和陈俊豪的产品研发初衷。

虽然技术理想在现实中显得很骨感,但吴岩峰依然坚信Syser Debugger是一款具有长久生命力的工具软件。他相信,虽然被某些用户用来释放负能量,但Syser Debugger在专业领域服务专业人群的贡献已经得到证明。

作为Syser Debugger图形界面开发进程中重要的支持者,马杰对这款产品有着深厚的感情。他认为,在当时技术难度高、且商业回报不大的情况下,吴岩峰和陈俊豪在产品开发过程中所表现出的智慧和勇气,至今仍令人钦佩。相比当前大量的软件开发者热衷于高商业价值的消费类软件开发,吴岩峰和陈俊豪当初的选择显得尤为可贵。

另外,结合自己多年的安全软件领域从业经验,马杰表示,时至今日,从信息安全的角度,重新回味和审视Syser Debugger的开发历程都是非常有价值的。自主开发的内核调试器符合国家层面的信息安全要求,同时其所具备的中立性也更加利于软件开发的故障发现。此外,Syser Debugger的成功证明了中国人具备参与操作系统底层软件开发的能力,应该有更多的软件开发者在这一领域展开尝试。

目前,马杰组建了一支年轻的技术团队,开启Syser Debugger向64位Windows平台的移植进程。马杰希望,用新鲜的技术构想与热情,为Syser Debugger这款世界级产品注入新的活力。作为一款Windows平台的内核调试器,Syser Debugger能不能完成这次关键的转型?或许只有重新寻回当初的激荡的情感与无畏的勇气,才会真正找到答案。



推荐 0