关键词: GNUC 开源 红帽
1987年6月初,Richard Stallman宣布推出GNU C编译器1.0版,那是截至那一天为止,我生命中最激动人心和最紧张不安的日子。经过1985年初次阅读和愉快编写Emacs代码之后,经过1986年的阅读和愉快编写GDB代码之后,1987年2月我怀着迫切的心情参加了由Stallman于德克萨斯州奥斯汀的MCC举办的为期一周的系列讲座。白天,当我开始理解Stallman的技术设计的深度、理解他的实施方法的魅力以及为我保护两个方面而不是通过GPL由我提供保护的方法时,我对Stallman以及GNU计划越来越欣赏。夜晚,当Stallman趁讲座间隙尤其是当一天结束时忙里偷闲地编写尚未准备好披露的计划时,我的好奇心也越来越强。
到二月份那一周的周末,秘密展现在我眼前:他在编写一种C编译程序,当时正处于最后阶段,他在完善优化程序。那年我22岁,仍然怀着有一天我可能编写出 “美国历史上伟大的编译程序”的梦想。对于有机会亲眼看到像Stallman这样大师做这样的事情,我感到兴奋不已,并且害怕如果Stallman创造出第一种这样的伟大程序,我可能永远不会再创造出值得认可的程序。当Stallman到20年前的今天(大概)宣布推出1.0版时,我做出一个决定:与他合作,我可以和他一争高下,或者也可以编织一个新的梦想。我下载了GCC 1.0版,开始长达十年之久的协作(那时,由于RSI,我不再将编程作为我的主要工作)。
GCC 1.0版是我人生的一个分水岭。第一天我只是专心学习它如何运作——句法分析程序、词法分析程序、中间码编制程序、优化程序以及与机器有关的汇编输出程序。我打印了所有文件(用了非常大量的纸),然后把它们堆放在我的超大的餐桌上,从我所在的中间位置能够看到其他任何一个表面。我拿出在学习集成电路设计的工艺与技术时使用的彩色铅笔(红色用于polycilicon、绿色用于n扩散、蓝色用于金属、黄色用于n井、黑色用于via和contact),并赋予这些颜色新的意义,以便跟踪数据、代码以及与编译程序有关的其他关系。经过五昼夜的学习,我取得了极大的成功,不再需要这些文件——突然之间数据结构和基本组织变得再清晰不过了。我把铅笔丢到一边,开始极度渴望编写GCC。
声明:LUPA开源社区刊登此文只为传递信息,并不表示赞同或者反对。



