﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-milkyway的窝-文章分类-授人以渔</title><link>http://www.cppblog.com/milkyway/category/3373.html</link><description>最初想法的诞生地</description><language>zh-cn</language><lastBuildDate>Mon, 13 Apr 2009 13:47:31 GMT</lastBuildDate><pubDate>Mon, 13 Apr 2009 13:47:31 GMT</pubDate><ttl>60</ttl><item><title>嵌入式系统调试方法和注意事项</title><link>http://www.cppblog.com/milkyway/articles/79818.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 13 Apr 2009 12:51:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/79818.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/79818.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/79818.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/79818.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/79818.html</trackback:ping><description><![CDATA[摘自 <a href="http://blog.csdn.net/broadview2006/archive/2009/02/25/3935987.aspx">http://blog.csdn.net/broadview2006/archive/2009/02/25/3935987.aspx</a><br><br>------讲述了硬件调试/软件调试/综合调试.&nbsp; 并通过几个例子总结归纳了几点调试方法和注意事项. 不错!<br><br>嵌入式系统开发过程实际上就是一个调试诊断的过程，而且调试诊断将一直伴随着一个产品的终身，即使是最成熟的产品也偶尔会出现这样或那样的问题，这都需要开发人员去诊断、排查。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 嵌入式系统的调试包括硬件调试、软件调试以及综合调试。硬件调试一般是指系统刚开发出来时上电前后的检查，包括：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）上电前检查电源和地是否短路，目视检查是否有虚焊、漏焊；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）上电后检查时钟线上的频率和波形、幅度是否正常，各电源电压是否稳定正常，各芯片温度是否正常，各指示灯是否正常。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;软件调试一般是指保证硬件一切正常的情况下验证程序执行的时序是否正确，逻辑和结果是否与设计要求相符，能否满足功能和性能要求等。软件调试的方法有很多，包括：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）用指示灯跟踪调试；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）用串口打印调试；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3）用简单的调试器进行汇编代码级调试；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4）用比较高端的调试器进行源代码级调试；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5）用仿真器进行硬件仿真。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上述单纯的硬件调试或软件调试都是相对比较简单的，困难的是综合调试。下面我先举一些自己在工作中曾经碰到的疑难问题，然后再从中归纳出一些一般的调试方法和注意事项。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例 1：我们自主设计制作的PPC860（Motorola）网络引擎平台的调试已接近尾声，同一批生产的4块板子都通过了全部软件测试，于是又去焊了第二批，可是在第二批板子中有1块板子的FEC不能正常工作，我们几个软件和硬件工程师使用了各种手段，重新看了多遍芯片手册，还是没找出原因，于是把板子发回工厂重新焊接BGA，可是回来问题还是照样存在，没办法最后打算将这块板子当作个样处理，把板子上的芯片都焊下来。按常理来说这种做法很符合逻辑，因为元器件都是一样的，板子也是一批的，那就可能是这块板子的某个地方焊接不好，但又不好查，反复重新焊接可能会把主板焊坏。后来有人从PPC860芯片上用放大镜都要睁大眼睛才能看清的字符上（据说我国第一代国产高端处理器芯片&#8220;寒心&#8221;就是某&#8220;科学家&#8221;将&#8220;摩托&#8221;同一类型芯片上的这些字母磨掉后刻上&#8220;寒心一号&#8221;摇身一变造出来的！！！）发现这块板子的CPU版本号是&#8220;D4&#8221;，而其他板子的CPU版本号是&#8220;D3&#8221;，可芯片手册上并没有这两个版本之间的比较说明，从网上找到PPC860的勘误手册，发现在PPC860TZP50D4版本中，ECNTRL寄存器增加了一个叫FEC_PIN_MUX的位（bit2）来控制FEC各管脚的复用功能，如果要使用FEC就必须将该位设置为1，所以要在FEC的相关程序中加上ECNTRL |= 0x00000004语句行。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例2：当我调试业余自制的MC68VZ328板子时，电路板硬件检查没有问题，用Code warrior通过串口往flash中烧制编译好的uClinux程序也一切正常，但是重新上电，发现串口没有任何数据，用万用表检查（当时自己没有示波器等&#8220;先进设备&#8221;）也没查出结果，然后每天上下班把这块板子放在包里，没事就拿出来瞪大眼睛看看，看着也不免窝火，但有一天却发现一个标着电阻符号的地方却焊上了电容，回到家把电阻换上去再上电，串口一下就打印出uClinux的启动信息，呵，那滋味，比喝了蜂蜜都甜，当然当时也是因为没有太多经验，如果这问题放现在，估计一天内肯定解决掉。另外在初次调试自制的S3C4510开发板时，就是不能从串口输出字符，费了半天时间才发现把串口电平转换芯片 max3232cse的第6脚上的旦电容极性焊反了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例3：在调试SB1250嵌入式服务器主板时，由于使用的是DDR1代内存条，数据线和时钟线上串并联的去耦电容电阻相当多，第一批焊回来的板子几乎没有一块能够顺利进入CFE（BIOS）菜单界面的，检查时钟波形和电源与借用的 DEMO板相比都很好，我把主板上DDR DIM槽周围的那些去耦电阻电容都全部用烙铁重新过一遍锡，嘿嘿，还真管用，这种方法屡试不爽，而且在后面调试PCI和HT总线时使用这招也很有用，可能是因为SB1250系统是高频电路，对焊接要求比较高，稍微有一点漏焊或者虚焊都不行，我是这样认为的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例4：在一个使用实时时钟芯片 SD2000的应用系统中，经常会出现读出的时间被复位到 &#8220;2000年1月1日&#8221;的情况，我用自己编写的测试程序经过多次测试发现，按照SD2000芯片手册中的时序进行连续读写确实会经常出现复位现象，好像是芯片错把读写时序当成了复位操作时序，而且每次必出，所以我感觉到芯片本身应该有Bug，于是告诉同事可能是芯片本身有问题，让他跟厂家联系，但因为这个芯片在老产品中用了比较长的时间，所以同事不太认同我的看法，但还是与SD2000厂家取得了联系，厂家经过两天专门强化测试后通知我们&#8220;SD2000本身确实有Bug，可能因为干扰导致芯片复位到2000年1月1日&#8221;。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例5：在用PNX1700（DSP）处理器设计成的音视频开发平台上，常会出现CVBS输出黑白图像（应该是彩色）或颜色不正常现象，于是先详细阅读CVBS输出芯片AVS3169的手册，然后用示波器测量3169芯片的时钟管脚，在测量的过程中经常会出现颜色恢复正常的现象，再做多次测试发现这种现象是由于将场同步VSYNC信号与相邻的数据线Data7短路造成的，再测试发现将VSYNC与其他数据线（Data[0:6]）任一根短接一下都可以恢复正常，再用视频时钟信号CLK与数据线短接一下有时也能恢复正常，但有时也不能恢复，所以怀疑是视频场同步信号有问题。顺着这根线索查了一下AVS3169的VSYNC信号与PNX1700的连接方式，发现在用CVBS输出时，PNX1700上与AVS3169的VSYNC信号相连的引脚是输出QVCP_VSYNC信号，检查VO输出模式设置没有问题，再查QVCP的设置，看哪个寄存器能控制QVCP_SYNC信号，发现在QVCP_CONTROL(0x10e020)寄存器中有对HSYNC和VSYNC的控制，用命令在线修改了直接相关的该寄存器中4个位的值，但没有任何效果，再在整个PNX1700芯片手册中查找关键字VSYNC，发现在398页有对QVCP VSYNC设置要求的描述：该寄存器的bit1(Master)要求设成1，即从模式，而我们现在是设成0，即主模式，我把该位改成1后屏幕出现黑屏，没有任何显示，再把这位恢复到0，竟然出现了颜色，屡试不爽，仔细研究这个寄存器的bit1和bit0分别是控制屏幕时钟发生器（STG）工作模式（主/ 从）和STG的复位，分析觉得在系统上电后对QVCP初始化之前先把QVCP的STG置成从模式并且复位STG，然后再用原有的初始化程序，这样应该可以解决视频信号的时钟和数据不同步问题，所以在主程序中初始化QVCP之前加入MMIO(0x10e020) = 0x20050006行，测试果然不再出现上述问题，问题解决；并顺势延伸一下，以前用SAA7105做CVBS输出时偶尔也会出现屏幕顶部显示不正常问题应该与这个问题一样，所以用上述相同的方法修改程序后对SAA7105 CVBS输出进行强化测试（每8秒钟重新启动一次，强化测试3天），结果没有再出现显示不正常现象；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例6：同样是PNX1700音视频开发平台上遇到的问题，VGA输出时OSD菜单会抖动，最先想到的方法是把OSD的scaler改用QVCP来做而不是MBS来做，这样在1500上会减轻 OSD抖动现象，几乎不出，但在1700上测试效果还是很不好，抖动仍然很厉害，后来安排同事将1500种DDR时钟的工作频率从166MHz提高到 200MHz，并告诉他需要改哪个模块的哪几个寄存器，这时正好是用VGA做视频输出（一般情况是用CVBS做视频输出，但因为此时正在跟踪VGA中 OSD抖动问题，所以用了VGA输出模式）来调DDR工作频率的，在同事修改DDR寄存器过程中我却发现OSD怎么不抖了，仔细研究同时修改过的寄存器相关位的定义，发现在DDR模块中有两个寄存器与DDR仲裁相关，一个是ARB_HRT_WINDOW（0x65184，DDR仲裁硬件实时窗口），另一个是ARB_CPU_WINDOW（0x65188，DDR仲裁CPU窗口），将这两个寄存器分别设置成ARB_HRT_WINDOW = 0xffff及ARB_CPU_WINDOW = 0x0就不会出现OSD抖动，因为在这种设置情况下DDR对DMA的占有权高于CPU对DDR的拥有权，DDR可以抢断CPU，原来的设置使CPU可以抢断DDR占有DMA。其实在发现问题VGA中的OSD抖动问题之初我也找过与memory相关的寄存器设置，因为根据以前经验和习惯思维，DDR配置寄存器只是负责DDR部分，而memory与CPU之间关系的寄存器应该在系统寄存器中，所以没有去查找DDR配置寄存器，可是在这一例子中却偏偏在DDR配置寄存器中。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从上述几个例子中我们可以总结归纳以下几点调试方法和注意事项：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1）加深理解法：加深理解包括加深对硬件和软件的理解，加深对硬件的理解主要是详细阅读相关的芯片数据手册，而加深对软件的理解是因为现在开发嵌入式系统并不是所有程序都需要自己编写，很多都是已经做好的，直接从网上获取或者采购获得，但这些软件不一定是完全针对我们自己的目标板的，所以在使用过程中经常会发现一些问题，特别是底层软件，而一旦出现问题，开发人员首先必须了解出现问题的代码。只有建立在对相关硬件和软件深入理解的基础上才可能做出更符合实际的判断，才可能更好地解决问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）比较法：比较的方法有很多，比如将同样的软件放在两个类似但不相同的硬件平台上运行比较现象；将两个不同版本的软件放在同一个硬件平台上运行比较现象；将相同的软件放到相同批次但不同的两个硬件平台上运行比较现象。对于一些不是很隐蔽的问题通过比较法通常能得到不错的效果。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3）分解法：当碰到分析起来比较复杂、可能有很多因素的问题时，可以把问题分成解几个小问题来测试诊断，比如编写几个单独的小测试程序对各种可能因素进行排查测试，根据这些测试结果再进行科学判断。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4）软硬件结合法：这种方法是需要一定灵感和悟性的。比如上面的例5，在测试过程中，可以在不破坏硬件的前提下临时改变一下硬件的状态（比如该例中将数据线和时钟线短路），看问题现象会不会有所变化，如果有，那么多做类似试验找出变化规律和关键因素，然后再进行分析解决。在底层软件开发中，对于时序要求严格的硬件模块的软件编程要特别注意，一旦程序的时序出了问题，而这部分软件已经与其他系统软件融合到一起，那么这种软件让别人去检查是很难查出问题的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5）诊断、排故要建立在大量实验的基础之上，要多动手，不能光知道臆想，不愿实际操作，还美其名曰&#8220;善于思考和分析&#8221;。嵌入式系统开发是一门实践性很强的科学，需要在实践中总结出事物客观规律，从而更好地认识和利用它们，让它们更好地按我们的意图工作。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6）嵌入式系统开发调试要求开发人员有严谨细致的工作态度，决不放过调试过程中发现的任何一点蛛丝马迹，因为它很可能就是打开潘多拉宝盒的钥匙。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7）要有实事求是的工作作风，要有敢于怀疑一切的精神和勇气，我们理当尊重权威和前人的科技成果，但当出现矛盾时我们更应该相信实验结果，这样科学才会进步。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8）要勇于挑战自我，抛开习惯性思维和成见，拓宽思路，多角度分析问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9）嵌入式系统开发特别是底层软件和操作系统内核开发因为需要同时跟软件和硬件打交道，所以是一件比较艰苦的工作，很有挑战性。即使我们各方面都做得非常好，考虑得非常细致周全，目标系统仍然可能跟我们开一些小小的玩笑，我们经常会碰到一个非常小的问题困扰我们几天甚至几周的时间，这期间我们可能茶饭不思、夜不能寐，因此嵌入式系统底层软件开发人员不但要有平和的心态，且具备一定的耐心和毅力，还要有勇于克服一切困难的勇气和信心！只要我们做得足够好，那么可能解决一个具体疑难的过程带有一定偶然性，但我们终将排除所有阻碍！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 所以说，嵌入式系统调试过程就是一个更加深入了解我们的目标系统以及系统中的每个单元模块特性的过程，就是一个锻炼我们的逻辑思维和分析推理能力的过程，就是一个开拓思路、向习惯思维和权威挑战的过程，就是一个培养严谨细致的工作态度和实事求是工作作风的过程，就是一个锻炼我们耐力和毅力的过程，最终是一个学习进步的过程！<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 嵌入式系统调试诊断能力的提升是一个长期实践、积累、提高的过程！
<p>&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本文节选自王洪辉老师的《<a href="http://www.broadview.com.cn/07919"><font color=#336699>嵌入式系统Linux内核开发实战指南（ARM平台）</font></a>》一书。</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/79818.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2009-04-13 20:51 <a href="http://www.cppblog.com/milkyway/articles/79818.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嵌入式系统硬件设计流程</title><link>http://www.cppblog.com/milkyway/articles/79817.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 13 Apr 2009 12:48:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/79817.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/79817.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/79817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/79817.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/79817.html</trackback:ping><description><![CDATA[摘自 <a href="http://blog.csdn.net/broadview2006/archive/2009/02/27/3941407.aspx">http://blog.csdn.net/broadview2006/archive/2009/02/27/3941407.aspx</a><br><br>1）详细理解设计需求，从需求中整理出电路功能模块和性能指标要求。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2）根据功能和性能需求制定总体设计方案，对CPU进行选型，CPU选型有以下几点要求：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a）性价比高；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b）容易开发：体现在硬件调试工具种类多，参考设计多，软件资源丰富，成功案例多；<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c）可扩展性好。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3）针对已经选定的CPU芯片，选择一个与我们需求比较接近的成功参考设计，一般CPU生产商或他们的合作方都会对每款CPU芯片做若干款开发板进行验证，比如AMCC的PPC440EP就有yosemite和bamboo两款开发版。厂家最后公开给用户的参考设计图虽说不是产品级的东西，也应该是经过严格验证的，否则将会影响到他们的芯片推广应用。纵然参考设计的外围电路有可推敲的地方，CPU本身的管脚连接使用方法也绝对是值得我们信赖的，当然如果万一出现多个参考设计某些管脚连接方式不同的情况，我们可以细读CPU芯片手册和勘误表，或者找厂商确认。另外在设计之前，最好能外借或者购买一块选定的参考板进行软件验证，如果软件验证没有问题，那么硬件参考设计也是可以信赖的。但要注意一点，现在很多CPU都有若干种启动模式，我们要自己选一种最适合的启动模式，或者做成兼容设计。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4）根据需求对外设功能模块进行元器件选型，元器件选型应该遵守以下原则：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a）普遍性原则：所选的元器件要是被广泛使用验证过的，尽量少使用冷门、偏门芯片，减少开发风险。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b）高性价比原则：在功能、性能、使用率都相近的情况下，尽量选择价格比较好的元器件，降低成本。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c）采购方便原则：尽量选择容易买到、供货周期短的元器件。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d）持续发展原则：尽量选择在可预见的时间内不会停产的元器件。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e）可替代原则：尽量选择pin to pin兼容芯片品牌比较多的元器件。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f）向上兼容原则：尽量选择以前老产品用过的元器件。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g）资源节约原则：尽量用上元器件的全部功能和管脚。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5）对选定的CPU参考设计原理图外围电路进行修改。修改时对于每个功能模块都要找至少3个相同外围芯片的成功参考设计，如果找到的参考设计连接方法都是完全一样的，那么基本可以放心参照设计，但即使只有一个参考设计与其他的不一样，也不能简单地按少数服从多数的原则，而是要细读芯片数据手册，深入理解那些管脚含义，多方讨论，联系芯片厂技术支持，最终确定科学、正确的连接方式，如果仍有疑义，可以做兼容设计。这是整个原理图设计过程中最关键的部分，我们必须做到以下几点：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a）对于每个功能模块要尽量找到更多的成功参考设计，越难的应该越多，成功的参考设计是&#8220;前人&#8221;的经验和财富，我们理当借鉴吸收，站在&#8220;前人&#8221;的肩膀上，也就提高了自己的起点。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b）要多向权威请教、学习，但不能迷信权威，因为人人都有认知误差，很难保证对哪怕是自己最了解的事物总能做出最科学的理解和判断，开发人员一定要在广泛调查、学习和讨论的基础上做出最科学正确的决定。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c）如果是参考已有的老产品设计，设计中要留意老产品有哪些遗留问题，这些遗留问题与硬件哪些功能模块相关，在设计这些相关模块时要更加注意推敲，不能机械照抄原来设计，比如我们老产品中的IDE经常出问题，经过仔细斟酌，广泛讨论和参考其他成功设计，发现我们的IDE接口有两个管脚连线方式确实不规范。还有，针对FGPI通道丢失视频同步信号的问题，可以在硬件设计中引出硬件同步信号管脚，以便进一步验证，更好发现问题的本质。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6）硬件原理图设计还应该遵守一些基本原则，这些基本原则要贯彻到整个设计过程，虽然成功的参考设计中也体现了这些原则，但因为是&#8220;拼&#8221;出来的原理图，所以我们还要随时根据这些原则来设计审查原理图，这些原则包括：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a）数字电源和模拟电源分割。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b）数字地和模拟地分割，单点接地，数字地可以直接接机壳地（大地），机壳必须接地，以保护用护人身安全。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c）保证系统各模块资源不能冲突，例如：同一I2C总线上的设备地址不能相同等。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d）阅读系统中所有芯片的手册（一般是设计参考手册），看它们未用的输入管脚是否需要做外部处理，是要上拉、下拉，还是悬空，如果需要上拉或下拉，则一定要做相应处理，否则可能引起芯片内部振荡，导致芯片不能正常工作。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e）在不增加硬件设计难度的情况下尽量保证软件开发方便，或者以较小的硬件设计难度来换取更多方便、可靠、高效的软件设计，这点需要硬件设计人员懂得底层软件开发调试，要求较高。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; f）功耗问题，设计时尽量降低功耗。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g）产品散热问题，可以在功耗和发热较大的芯片增加散热片或风扇，产品机箱也要考虑这个问题，不能把机箱做成保温盒，电路板对&#8220;温室&#8221;是感冒的。还要考虑产品的安放位置，最好是放在空间比较大，空气流动畅通的位置，有利于热量散发出去。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7）硬件原理图设计完成之后，设计人员应该按照以上步骤和要求首先进行自审，自审后要有95%以上的把握和信心，然后再提交给他人审核，其他审核人员同样按照以上要求对原理图进行严格审查，如发现问题要及时进行讨论分析，分析解决过程同样遵循以上原则和步骤。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8）只要开发和审核人员都能够严格按照以上要求进行电路设计和审查，我们就有理由相信，所有硬件开发人员设计出的电路板第一版成功率都会很高的，所以我提出以下几点：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a）设计人员自身应该保证原理图的正确性和可靠性，要做到设计即是审核，严格自审，不要把希望寄托在审核人员身上，设计出现的任何问题应由设计人员自己承担，其他审核人员不负连带责任。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b）其他审核人员虽然不承担连带责任，也应该按照以上要求进行严格审查，一旦设计出现问题，同样反映了审核人员的水平、作风和态度。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c）普通原理图设计，包括老产品升级修改，原则上要求原理图一版成功，最多两版封板，超过两版将进行绩效处罚。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d）对于功能复杂，疑点较多的全新设计，原则上要求原理图两版内成功，最多三版封板，超过三版要进行绩效处罚。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e）原理图封板标准为：电路板没有任何原理性飞线和其他处理点。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9）制定上述规范的目的和出发点是为了培养硬件开发人员严谨、务实的工作作风和严肃、认真的工作态度，增强他们的责任感和使命感，提高工作效率和开发成功率，保证产品质量。希望年轻的硬件开发人员能在磨练中迅速成长起来。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于复杂的PCB板设计，如高频多层板一般都请专人布线，因为复杂的PCB板涉及电磁兼容和电磁干扰方面的问题，这是一门高深的学问，除了一些基本的注意事项外还有一些特殊的防护措施，比如设计时使用一些专门的电磁兼容芯片等，感兴趣的读者可以看一些电磁理论方面的书籍。<br>
<p><br>本文节选自王洪辉老师的<span style="FONT-SIZE: small"><font size=2>《</font></span>嵌入式系统Linux内核开发实战指南(ARM平台)<span style="FONT-SIZE: small"><font size=2>》</font></span>一书。</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/79817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2009-04-13 20:48 <a href="http://www.cppblog.com/milkyway/articles/79817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>两会期间福建的老领导们看望福建代表团全体代表</title><link>http://www.cppblog.com/milkyway/articles/75923.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 08 Mar 2009 11:58:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/75923.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/75923.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/75923.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/75923.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/75923.html</trackback:ping><description><![CDATA[---此处老领导指现担任政治局委员以上职务的，在福建当过省长或书记的<br><br>1.&nbsp;&nbsp; 贾庆林&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;１９８５—１９８６年　福建省委常委、副书记
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９８６—１９８８年　福建省委副书记兼省委组织部部长
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９８８—１９９０年　福建省委副书记兼省委党校校长、省直机关工委书记
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９９０—１９９１年　福建省委副书记、代省长
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９９１—１９９３年　福建省委副书记、省长
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９９３—１９９４年　福建省委书记、省长
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９９４—１９９６年　福建省委书记、省人大常委会主任 </p>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5日下午，中共中央政治局常委、全国政协主席贾庆林来到北京广西大厦的福建代表团驻地，亲切看望出席十一届全国人大二次会议的福建代表团全体代表.....<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 省委书记、省人大常委会主任、福建代表团团长卢展工说，贾庆林主席是福建的老领导，在福建工作了12年，为福建的发展作出了重要贡献。我们现在就是在贾庆林主席等老领导打下的基础上进一步前进的。贾庆林主席对福建发展、海西建设始终关心支持。贾庆林主席对进一步做好今年福建的各项工作充满期望，我们一定不负众望，把福建的工作做得更好，让中央放心，让人民满意。<br><br><br>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 习近平<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; １９８５—１９８８年　福建省厦门市委常委、副市长<br><br>　　１９８８—１９９０年　福建省宁德地委书记<br><br>　　１９９０—１９９３年　福建省福州市委书记、市人大常委会主任<br><br>　　１９９３—１９９５年　福建省委常委，福州市委书记、市人大常委会主任<br><br>　　１９９５—１９９６年　福建省委副书记，福州市委书记、市人大常委会主任<br><br>　　１９９６—１９９９年　福建省委副书记<br><br>　　１９９９—２０００年　福建省委副书记、代省长<br><br>　　２０００—２００２年　福建省委副书记、省长（１９９８—２００２年清华大学人文社会学院马克思主义理论与思想政治教育专业在职研究生班学习，获法学博士学位）<br><br>&nbsp;&nbsp;&nbsp;&nbsp; 6日上午，参加十一届全国人大二次会议的福建代表团在人民大会堂福建厅举行全体会议，审议政府工作报告。中共中央政治局常委、国家副主席习近平来到福建团，同代表们一起审议报告......<br>&nbsp;&nbsp;&nbsp;&nbsp; 卢展工说，习近平副主席是福建的老领导，在福建工作了17年。福建改革开放30年的历程，习近平副主席参与了其中的17年，为福建的改革开放作出了很大贡献，为福建今天的发展打下了良好的基础，而且我们现在做的很多工作，也是历届省委、省政府工作思路的延续深化。卢展工说，习近平副主席对如何审议好政府工作报告，在新的历史条件下如何更好地推动福建工作提出了具体要求，我们一定要认真学习贯彻，按照中央的部署，把福建的各项工作做好，把海西两个先行区建设好，以实际行动来回报党中央、国务院对福建的期望，回报习近平副主席对福建广大干部群众的关心。 <br><br><br>3.&nbsp; 贺国强&nbsp;&nbsp;&nbsp; １９９６年１０月至１９９７年４月　中共福建省委副书记、副省长、代省长。
<p>&nbsp;&nbsp;&nbsp;&nbsp;１９９７年４月至１９９９年６月　中共福建省委副书记、省长。 </p>
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3日，北京广西大厦福建代表团驻地暖意融融。中共中央政治局常委、中纪委书记贺国强来到这里，看望参加十一届全国人大二次会议的福建代表团全体代表......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 省委书记、省人大常委会主任卢展工说，贺国强书记是福建的老领导，对福建的发展作出了很大的贡献。离开福建后，仍然十分关心支持我省各项建设。贺国强书记对福建有很深的感情，每年都来看望福建的代表，从不同角度对福建的工作给予肯定和指导。福建的发展能形成今天的良好局面，是在历届省委、省政府工作的基础上，一届又一届领导同志和广大干部群众共同努力的结果。我们将认真贯彻落实中央作出的一系列重大决策部署，发挥福建优势，结合福建实际，大力推进海峡西岸经济区建设，坚定信心、迎难而上，以实际行动为我省新的发展打下良好基础，不辜负党中央对我们的期望，不辜负贺国强书记对我们的关怀。<br><br><br>4.&nbsp;&nbsp;&nbsp;王兆国&nbsp;&nbsp; &nbsp;１９８７—１９９０年　福建省委副书记、代省长、省长<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3日下午，中共中央政治局委员、全国人大常委会副委员长、全国总工会主席王兆国专程来到北京广西大厦福建代表团驻地，看望参加十一届全国人大二次会议的全体福建代表，与大家亲切交流......<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 省委书记、省人大常委会主任卢展工说，王兆国副委员长是福建的老领导，对福建有着深厚的感情。他在闽工作期间，与福建干部群众一起，艰苦奋斗，为福建的改革开放和现代化建设事业作出了很大的贡献，为今天的发展打下了坚实的基础。离开福建后，他始终关心关注、大力支持福建的发展，对此，我们铭记在心。卢展工说，我们一定要在党中央、国务院的领导下，按照王兆国副委员长的要求，围绕全局、围绕保持经济持续较快发展这个首要任务，忠诚履职、示范表率，确保大会圆满成功；继续努力，扎实工作，把福建工作做好，把海西两个先行区建设好，不辜负中央对福建的期望。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.cppblog.com/milkyway/aggbug/75923.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2009-03-08 19:58 <a href="http://www.cppblog.com/milkyway/articles/75923.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>docx文件是什么？如何打开后缀名.docx格式的word2007文件？</title><link>http://www.cppblog.com/milkyway/articles/62527.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 22 Sep 2008 12:58:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/62527.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/62527.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/62527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/62527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/62527.html</trackback:ping><description><![CDATA[<p>来自&nbsp; <a href="http://ensoft.yo2.cn/tip/docx-document-is-what-how-to-open-the-suffix-name-docx-format-word2007-document.html">http://ensoft.yo2.cn/tip/docx-document-is-what-how-to-open-the-suffix-name-docx-format-word2007-document.html</a><br><br></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最新版本word2007文件后缀名为.docx，docx文件是基于XML语言的压缩文件格式，因为现在大家的办公软件一般 为office2003，所以碰到docx格式文件的时候就会打不开，打开的话也是乱码，那么如何才能在不安装Office2007的前提下打 开.docx后缀的文件呢？</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打开docx文件方法之一：微软官方网站上已经提供Office2003打开word2007版本.docx文件的补丁O2007Cnv.exe，大小为27.5M，链接地址为：<a href="http://download.microsoft.com/download/6/9/E/69EA942D-4636-4350-A526-0BFD9771A12A/O2007Cnv.exe"><font color=#0033ff><u>http://download.microsoft.com/download/6/9/E/69EA942D-4636-4350-A526-0BFD9771A12A/O2007Cnv.exe</u></font></a>，安装完并重启计算机后，便可以识别出docx、docm格式的Word2007文档，后缀名为pptx、pptm、potx、potm、ppsx、ppsm格式的PowerPoint2007文档，以及扩展名为xlsb、xlsx、xlsm、xltx、xltm格式的Excel2007文档。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打开docx文件方法之二：Office基于XML的压缩文件格式取代了现在的办公软件默 认文件格式，在传统的文件名后缀名后面添加了字母x，就像.docx取代了doc文件、.xlsx取代了xls文件、.pptx取代了ppt格式 等，.docx事实上就是一个ZIP压缩文件，所以她占用的存储空间将会更小。如果你只想查看一个docx文件的内容，又不想安装office2007转 换补丁，可以先将.docx文件的扩展名改为.zip，然后用压缩软件解压此文件，将会产生名为&#8220;word&amp;&#8221;的文件夹，里面会有一个 document.xml文件，用浏览器打开此文件，你便可以轻松查看这个用word2003无法正常打开的.docx文件了。</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/62527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-22 20:58 <a href="http://www.cppblog.com/milkyway/articles/62527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在计算机领域做研究的一些想法</title><link>http://www.cppblog.com/milkyway/articles/61832.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 14 Sep 2008 17:46:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/61832.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/61832.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/61832.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/61832.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/61832.html</trackback:ping><description><![CDATA[<p>来自 <a href="http://hi.baidu.com/zombie1985/blog/item/9a2bcbf5d2c97320bc310924.html">http://hi.baidu.com/zombie1985/blog/item/9a2bcbf5d2c97320bc310924.html</a><br><br></p>
<p># 前言 #</p>
<p>1. 讨论一下计算机领域的牛圈和&#8216;带头大哥&#8217;；</p>
<p>2. 讨论一下科研方法；</p>
<p>3. 讨论一下计算机领域的学术论文（会议、期刊）；</p>
<p><wbr></wbr></p>
<p># 第一章 #</p>
<p>计算机的大牛90%以上都在美国，所以只讲讲美国的CS。别的国家没什么太大的参考意义（英国、法国、匈牙利、日本、香港、新加坡、大陆、加拿大），不过 还是说两句：第一句是，美国以外的地方CS和美国有差距，主要是没钱；第二句是，搞科研也讲&#8216;近亲繁殖&#8217;，美国以外的其他地方很明显&#8216;人手不够&#8217;。没钱的 问题看大陆就知道，高性能计算、硬件、网络。。统统没办法干。当年人家Stanford跑一个粒子加速器就几百万美金，中国哪个高校有这资金。人手问题也 很明显，像Stanford的Dan同学，以前在Cololado Boulder，后来不也被挖走了？像以前呆在加拿大一个人闷做研究的Han Jiawei老大，不也被UIUC挖走了？为什么呢。说白了还是资源。Han Jiawei 02年被UIUC从加拿大的SFU拎到UIUC，转年就成了IEEE的FELLOW。为什么。说白了就是&#8216;近亲繁殖&#8217;。直到现在美国相当数量的大学（就不 说全部了）都非常认可同行的推荐。学校要各个同行评分，发paper也是同行review，nominate也要同行，甚至PhD的 application也相当依赖reference letter。另外呢，就是这些资源相当丰富的地方容易产&#8216;奶牛&#8217;。当年吴健雄也才第九名考进的中央大学，可是人家一跑美国去就成了实验物理大牛，还当了 美国协会的会长。物以类聚，人以群分。你说90%的老大都在美国，你呆在印度做CS，有啥意思。不管是Science还是Engineering，还得靠 inspiration。Inspiration靠什么？显然是要以Group为研究的基本单位，像Dan Jurafsky和Jiawei Han那样的人毕竟是少数。最好不还是被几个牛棚给挖走了？这玩意真没办法，是趋势。不说废话了，来扯美国的CS。</p>
<p><wbr></wbr></p>
<p>美国CS首当其冲的就是&#8220;五大牛棚&#8221;：MIT，Stanford，Berkeley，UIUC，和CMU。其他的牛校像 Washington，Princeton，Cornell，Wisconsin等等都是非常不错的，只不过可能光芒还不够。而且还有很重要的一点，就是 这些学校的faculty好多都是&#8216;五大牛棚&#8217;出来的，自然地位也就低一些。尤其是Princeton和Cornell这类学校（其他还包括 JHU，Maryland，Duke，甚至综合排名非常靠后的Amhest），好多Professor都是牛棚混出来然后过来独当一面的。特殊点的就是 Washington和Wisconsin，还有诸如Caltech这类学校，他们的Alumni也出过不少人才。</p>
<p><wbr></wbr></p>
<p>首先是MIT。我脑子里（或者说几乎所有工科学生的脑子里）可能下意识地定死了MIT是工科最牛查查的学校。甚至我一直认为（至今仍然），MIT的脑袋都 是畸形，整个MIT不是牛棚，而是一个ZOO。MIT简直就是发了战争财。开始做雷达，整的它的无线电啊，EE什么的巨牛无比。然后就是冷战，国防部投了 好多美金做乱七八糟的东西。CSAIL还没有合并的时候，MIT的计算机实验室叫AI实验室。就是这个实验室，早期做了很多开拓性的工作。主要是冷战的时 候（90年代以前），美国国防部投资了无数的资金，狂搞AI的项目。很多学校在那个时候得到了很大的发展，譬如Texas Austin，譬如UMass Amherst，他们的CS系便是那个时代的产物。可是后来AI的投入没有打到预期的产出，糟蹋了好多国防部美好的愿景，项目一个接一个的流产，大师也一 个接一个的归隐。看看MIT那些早年毕业的大牛（50-60年代左右），基本都有深厚的物理背景，这就意味着他们不仅数学知识扎实，而且具有深厚的电子电 气的背景。这些&#8220;牛群&#8221;在冷战后奔向各个其他的institution，自然就成了领军人物。好多人说，MIT虽然没有做什么牛哄哄的东西，可是任何一个 人都可以证明，其他institution都是他在学术上的孙子的孙子。Orz. （麻教主千秋万代，一统江湖！！ o(&#8745;_&#8745;)o...）事实上的确，比较一下MIT的PHD毕业生，在学术上是其他学校无法超越的。至少去年我在港中文&#8216;打杂工&#8217;的时候，我们组的&#8216;带头 大哥&#8217;Professor Helen M. Meng就是在MIT拿的BS,MS和PHD；然后中大做Vision的老大Professor Xiaoou Tang，也是MIT的PHD。这两人明显带有MIT培养出来的严谨风格，而且学术嗅觉非常之好。记得我给Helen做presentation的时候， 她问过我好些问题，都是一语中的的。而且她还鼓励我做Vision和Speech的数据融合，事实证明也是很好的思路。Helen在MIT是 Stephanie和Victor的学生，Stephanie又和我们剑桥的Steve有很好的合作项目和官方渠道（例如CAM-MIT）。这两个组一直 都在联合做Spoken Language Dialog System的项目。又一次雄伟而彪悍无比地证明了我说的&#8216;近亲繁殖&#8217;理论。。。娃哈哈~ MIT的老师我只接触过CSAIL的老大Professor Victor Zue，语音组的老大Professor Stephanie和Vision组的几个Professor。首先感觉是都很NICE，说话都很客气。尤其是Victor，记得去年在上海参加MIT面 试的时候和Victor聊天，他老是笑呵呵的，想来脾气应该很好。虽然去年没有去成MIT的Vision组，可是总能感觉到MIT那种技术的金属质感给我 带来的吸引和震撼。希望今年能去MIT念Stephanie的PHD啊~~ Bless...</p>
<p><wbr></wbr></p>
<p>然后扯一下Stanford。其实我原来对Stanford感觉蛮好的（现在感觉也不错），我在LA认识的朋友也应该是最多的（最多又是 Stanford，然后才是Berkeley，UCLA和Caltech。SYF小朋友啊~ 嗯，我在Stanford最好的几个朋友之一了。SYF，看到这个帖子给师傅留个Message哈。嘿嘿）。可是因为种种原因，以前就压根没有打算过去斯 坦福念书（主要是MWJ小朋友不让我去。我又乖又听话，所以就没申请了）。Stanford给我的感觉就是超级大，而且几乎没有什么软肋。历数美国诸多 CS高校中，唯一能在AI方面和MIT抗衡的就数斯坦福了。而MIT现在AI仿佛有走下坡路的趋势，而斯坦福倚其地理优势和财政强势，迅速崛起。 Sorry，不应该是崛起，是第二波浪潮~~ 斯坦福的AI，诸如视觉，语音和自然语言，机器人等等，都有大牛撑腰。然后在体系结构和数据库方面又依赖硅谷的强大应用平台，有着得天独厚的发展资源。 AI作为CS的灵魂，斯坦福已经有了；体系结构和数据库这些应用背景很强的领域，硅谷也给斯坦福与生俱来的优势。当然，那帮学生也不是省油的灯，好多 PHD没念完就跑了。什么GOOGLE啊，YAHOO啊，通通都迅速崛起了。另一方面也反应了斯坦福的学生商业头脑很好，很灵活，不像书呆子（譬如 MIT，譬如Caltech。哈哈）。真没什么说的，牛哄哄的。对了，补充一点，斯坦福坐拥硅谷的土地，真是巨有钱啊。。。望尘莫及。</p>
<p><wbr></wbr></p>
<p>第三头大牛要数Berkeley。好多人和我讨论，和我争辩，到底是Berkeley厉害还是MIT厉害。我觉得没什么好比较的。因为每个学校发展的方向 都不太一样，CS和CS没法比，可以比的只是某个组，譬如MIT的AI就比Berkeley的好，Berkeley的网络就比MIT好。Berkeley 的传统优势就是网络，操作系统等等。早期Berkeley的CS毕业生好多去各个高校当教授，大多也做的是网络和操作系统这一块的东西。现在 Berkeley的AI也发展了起来，诸如图形图像，语音语言都有了很大的发展。Berkeley作为公立学校的老大，收费低，又地处LA，开个什么国际 会议啊，养个老啊，都挺好的。UC系统又联系广泛，而且Berkeley还和诸如Stanford，UCLA和Caltech这样的牛校贴得这么近，不做 点东西出来真是对不起这地理位置。想想我本科毕业的学校&#8216;西北工业大学&#8217;，其实计算机在中西部应该是最强的，在全国我觉得某些领域也能在前五（譬如计算机 应用）。可是相比起同是国防科工委的北航，就没有了地理优势。西安显然没有北京有钱，地理位置显然没有北京好，而且显然也没有清华北大这样的学校和他交 流，甚至连北邮北理北工大这样的学校在西安都没有。哦，对了，有个西电。Sorry，西电也是巨牛无比的。我甚至觉得在很多领域西电比西工大牛多了。记得 我在CUHK的时候，看过几篇文章都是西电的老师和港中文的老师一起写的（譬如那篇影响我很大的Xiaou文章，就是和西电的老大一起写的）。然而，西工 大的老师是和蔼可亲的。以前给予我诸多帮助的WQ老师，ZYN老师我感觉在学术上都是可以独树一帜的人。事实上也的确给了我很多启发和思考的灵感。当然还 有我们更加和蔼可亲的XL老师。真是又是老师又是朋友。想起在清华-港中文做RA的那段日子，的确教会了我很多东西。北航的老师我只和LW校长聊过天。 LW老师做的好像是软件理论，也是英国毕业的（好像是爱丁堡）。虽然LW老师都是校长了，可是那时候和我聊天一点都没有什么架子（5年前了），和蔼可亲的 很。哎，大凡大牛都是和蔼可亲型的啊。扯着这么远，无非就是要说Berkeley有多么好的地理优势，把UC其他几个学校远远抛在了脑后（至少CS是这 样）。譬如UCSD，譬如UCI，甚至UCLA也远不及Berkeley。去年我给UCSD的Alon做presentation，人家好像才40岁，就 已经是IEEE的FELLOW了，这样下去怎么得了。Alon虽然是做Information Theory的，但是却为我的project提了一个非常好的建议，取得了很大的突破。这才让我感觉到IEEE Fellow的威力。我那时就想，要是Alon也跑到berkeley去，那该有多猛啊。。。。（插播广告：英语语法）'Had Professor Alon joined Berkeley, he would have already made far greater contribution to the information industry.' EAP没白来。。o(&#8745;_&#8745;)o...哈哈~ Berkeley的教授我就不认识几个，不过有几位朋友在那，传说没有Stanford漂亮。呵呵~</p>
<p><wbr></wbr></p>
<p>第四头大牛是UIUC。我对UIUC的印象最开始来自高我几级的SZ。SZ和我一样都是做OI出身，然后保送到了清华。据说在清华学习十分猛，老是系里前 5名，后来又考了老高的GT，结果就去UIUC了。我当时十分郁闷，因为我那时候不是很清楚UIUC在CS领域里是个什么地位。我说怎么这么好一孩子不去 Stanford和Berkeley，非跑到&#8216;玉米地&#8217;去了？不过这以后UIUC这个名字我就记下来了，这是第一印象。然后一个比较深刻的印象就是 Jiawei han。我当年读Jiawei Han的书时，他还在加拿大。我也纳闷，我说怎么写了这么牛哄哄的书的人，倒喜欢做武林蒙面大侠了？莫非又是一&#8216;隐藏关卡的BOSS'？没想到Han老爷 子02年的时候果真就被UIUC挖走了。这时候我才念起UIUC的好，觉得实属牛棚一个了。以前那些虚幻的带有主观臆断的想法通通成了幼稚的偏见。 UIUC是干嘛的？回答其实很明确，如果说MIT是为AI而生的话，UIUC就是为硬件和超级计算机而生的。It is UIUC that 当年改良了计算机中的晶体管、集成电路和ALU的好多东西。Intel和AMD，还有早期做chip的Motorola等等，我想都大多受惠于UICU的 faculty。自然，这些老faculty拿这些技术继续做硬件和超级计算机便有如鱼得水之势了。所以，包括硬件逻辑电路设计、计算机算术、机器结构和 数值分析领域，UIUC都是独执牛耳的领军人物。UIUC的CS相来比较扎实，生源和师资都非常好，自然声誉也很高。尤其是硬件。早期的超级计算机大多出 自UIUC之手，譬如ILLIAC的1、2、3、4代以及后来的一些超级计算机，都是这一领域的大手笔。UIUC的这些理论和工业成果和成功，对并行计算 机的发展历程做出了不可磨灭的贡献。UIUC的老教授David Kuck就是并行处理的先驱，原来是NASA第一部超级计算机的首席设计师。属于在并行处理这个领域挖了一个坑然后等着后人来&#8217;建设社会主义美好家园式&#8216; 的人物。UIUC早期的发展有很多历史佐证，譬如美国国家超级计算及应用中心(NCSA)在UICU的建立，譬如Marc Andreessen在UIUC读本科大四的时候在NCSA主持编写的Mosaic。无一不是一个又一个翔实的历史介绍。可惜，后来（85年-2000年 左右），UIUC的硬件学术队伍老化，没有形成良好的学术梯队，硬件队伍失去了很多元老级的人物，新的professor呢，又无心做这些东西，大多又开 始弄软件去了。把UIUC的传统和家业整个换了个门面。不过，正式由于这个原因，UIUC的CS系以拥有众多充满活力的世界级青年学者。例如Josep Torrellas (其弟子有在Cornell ECE，Georgia Tech CS任教的)，Klara Nahrstedt (其弟子有在Cornell ECE，Purdue CS，Toronto ECE任教的)，还有稍老一些的Gerald DeJong (其弟子有在UW-Madison，UT-Austin任教的)等等。前几年刚被Duke挖走的Herbert Edelsbrunner，由于对计算几何的根本性贡献，1991年拿了个Waterman Award，成为历史上第一位获此殊荣的计算机科学家。UIUC的校友也有很多有名的，譬如写了Mosaic并成立了netscape的marc Andreessen，譬如David Kuck的学生陈世卿(Steve Chen)，譬如Lotus Notes的老大Ray Ozzie等等。UIUC CS 的学生毕业后去学术界的不少，Stanford，Princeton，Cornell，UT-Austin。。。都有UIUC的博士挑大梁。在U Michigan CS和UCLA CS，UIUC CS出身的教授更随处可见。在仅有的18名华裔ACM Fellow中，就有6名是UIUC的。另外一个不得不讲得人当然是我们可亲可爱的&#8216;刘爷爷&#8217;。当年我拿到&#8216;蒋震海外研究生奖学金&#8217;的时候，还是刘爷爷给 我面试的，还要我背唐诗宋词。吓得我当时很紧张，竟然把沁园春雪给背错了几句，刘爷爷还很机敏地当即纠正了我的错误。哎，仍然记忆犹新啊。刘爷爷的确是个 非常（N次幂，N &gt; 3）的人，至少一点架子都没有，和蔼可亲得很。连我当年去MIT的推荐信也是刘爷爷亲手执笔的。可恨的是当年没有申Princeton，要不然panel 一看是刘爷爷的亲笔推荐信，肯定就把我给收了。。。哈哈哈~ Professor C.L.Liu是属于桃李满天下的那种人。在国内最有名的当然要数Professor Andrew Yao了，人家在哈佛念完物理就跑到UIUC去念计算机了，当年的导师就是我们可爱的&#8216;刘爷爷&#8217;。后来姚老大成了世界上第一位拿过图灵奖的华人，当然，现 在还是唯一一人。可以想象，当时我和图灵奖的导师聊天的时候有多紧张。。。可惜本人实在愚钝，在CS领域也毫无建树，刘爷爷把Victor从美国请过来给 我面试去MIT我最后都没有如他老爷子的愿，跑到剑桥这地方天天骑自行车看康河来了。。。哎~ 真是惭愧。另外关于UIUC不得不说当然是他的发展&#8216;现象&#8217;。为什么说是&#8216;现象&#8217;呢？因为UIUC是有名的&#8216;玉米地&#8217;，常年面临加州等地名校的&#8220;挖人&#8221;威 胁。尽管不少教授在成名以后离开，UIUC计算机系仍然凭借着为中青年人才的成长营造最好氛围，在小地方办成了世界一流的研究重镇。我想，UIUC可能是 惟一几个不靠地理位置发财的CS牛棚吧。这个&#8216;现象&#8217;值得很多学校借鉴，譬如西工大，西电，譬如中科大等等。</p>
<p><wbr></wbr></p>
<p>最后呢，当然是牛哄哄的CMU了。事实上，CMU的CS应该比UIUC要稍微好一些。因为CMU貌似就只有一个CS在撑门面，所以它的CS硕大无比，几乎 没有弱项。尤其厉害的是它的vision和robotics，当然还有software。CMU的Robotics实在是名气太响了，&#8216;附送&#8217;的 Vision也沾了很大的光，导致CMU在AI领域的大哥地位也无人能撼。我的本科学校去年就走了一个师兄去CMU，貌似就是做ROBOTICS的。什么 FIFA CUP之类的足球机器人啦，CMU最喜欢招这些人了。其实我当年准备去CMU的VISION组的，可惜我当年实在是迷恋MIT，就没有申请CMU，现在想 起来，如果当年能去CMU也是个不错的选择。对了，我一位很好的朋友现在就在CMU。可爱的CX小朋友。这哥们是少年班的天才，在CMU跟随图灵奖大师做 &#8216;玄学&#8217;（他自己如是说的），哈哈哈。CX绝对属于天才型的，几十位图灵奖的逸闻趣事他都知道。引用我们JK同学的话叫&#8216;简直太神奇了&#8217;。我们漂亮的JK 小同学如今在MIT做EE，所以高智商夸赞高智商总是很有分量。CX做事很踏实，也很有目的性，他就只跟图灵奖做理论计算机的研究。当时把我佩服得直咂 舌。不过，现在终于如愿以偿了，人家以后可是图灵奖的弟子啊。。。哎~~ 和我的Professor Steve Young不是一个级别的。可爱的Steve，您啥时候也拿个图灵奖让俺们沾沾光啊。CX同学，过几年回西安的时候记得再吃饭聚一聚~（看到这个给我留言 哈）。CMU不仅Robotics好，Software也是技术一流。据说现在微软招得最多的软件开发员工都是CMU毕业的。某种程度上说，CMU的老大 们挣了我们不少钱。哼哼~ 另据CX小朋友介绍，CMU的CS系实在是过于庞大了。。。巨多教授。哥们，这还真够挤的~~ 好了，牛棚都介绍完了。都是我印象中的东西，肯定有很多不准确的数据和理解。不过应该大致差不多。够了~</p>
<p><wbr></wbr></p>
<p># 第二章 #</p>
<p><wbr></wbr>我思考后的结果告诉我，其实做科研的步骤，或者说写科技文献的步骤，不是很复杂（当年我做了4年的数模果真没白费，哈）。我总结了一下，大概就一下几点：</p>
<p>1.Introduction</p>
<p>选好一个学术方向后，对此方向上的已有成果进行阅读，分析，分类, 搞清楚已解决的问题是什么，现存的难点是什么，热点是什么, 写出综述报告。其实就是literature review啦。在CUHK LAB的时候，XL老师和Helen老师老是和我提这个词，我已经比较熟悉了。另外呢，刚入门的人应该看看Journal上的东西，毕竟那是沉淀了之后的东西。然后才可以慢慢看看conference的东西练内功。</p>
<p>2. Problem formulation</p>
<p>把所要研究的具有实际工程背景的学术问题进行描述，并转化成数学问题。数学一直都是最强有力的描述工具，当然，也是最正统的科学工具。</p>
<p>3. Main contributions</p>
<p>找到适当的数学工具，给出上述问题的理论上的解决方案，得到理论上的结果, 并用定理的形式进行阐述。还是数学，科学家和工程师只相信数学和事实。</p>
<p>4. Simulations or experiments</p>
<p>通过计算机仿真或实验研究进行上述理论成果的验证。CS，计算机科学与技术，首先是科学，是理论；可是最后终归要转化成实际的产品，不像做Pure mathematics的人，整天只要YY就可以了。。。-_-</p>
<p>5. Conclusions</p>
<p>给出一般性的结论，以及需要进一步研究的问题。有头有尾的事情。一次不可能把问题都解决好，总有可以瞻望的地方，可以改进的嘎吱角落弯。</p>
<p><wbr></wbr></p>
<p><wbr></wbr># 第三章 #</p>
<p>哎，扯期刊和会议。其实这是最没意思的东西了。想当年，我刚了解SCI和EI，整天琢磨着怎么在线看Nature和Science等等。其实，CS里面根 本不是这么回事。CS是一个日新月异的领域，各种技术都在以不可预测的速度在发展和变化。这和基础科学有着太大的不同了。所以，什么物理化学生物一个实验 做好多年，最后发到Nature和Science上面，真正上conference上发表的东西其实没有什么特别大的价值，都是只言片语，远远没有期刊的 威力来得大。所以无聊的美国人加菲猫同学（哈哈~ Garfield有一个多好记的名字），弄了个SCI来做索引。弄了个IF把整个学术界搞得乌烟瘴气，尤其是大陆还有亚洲一些国家，整天就想着弄几篇高 IF的牛paper。可是，CS压根就不是这个形式。CS的publication最大特点在于：极度重视会议，而期刊则通常只用来做re- publication。大部分期刊文章都是会议论文的扩展版，首发就在期刊上的相对较少。也正因为如此，计算机期刊的影响因子都低到惊人的程度，顶级刊 物往往也只有1到2左右—-被引的通常都是会议版论文，而不是很久以后才出版的期刊版。因此，要讨论计算机科学的publication，首先就压根和 IF无关。另外一个现象就是CS的会议规模都很有限，有时候只登十来篇甚至三四篇论文，有的还是季刊或双月刊。很多好的会议每年只录用三四十篇甚至二十篇 左右的论文。所以，CS的几乎每个领域都有好几种顶级刊物和好几个顶级会议。</p>
<p><wbr></wbr></p>
<p>最牛哄哄的当然是&#8216;Journal of the ACM(JACM)&#8217;了，ACM的官方学刊。可是，这个鸟刊只刊登那些对计算机科学有长远影响的论文，因此其不可避免地具有理论歧视。事实上确实如此：尽 管JACM征稿范围包括了计算机的绝大部分领域，然而其刊登的论文大部分都是算法、复杂度、图论、组合数学等纯粹理论的东西，其它领域的论文要想进入则难 如登天。这让我想到了两件事情：一件是meritocracy；一件是GRE填空里面的一道讲专家如何鄙视layman的题目。哎~ 罢了。另外一个就是&#8216;Communications of the ACM (CACM)&#8217;了。从某种意义上来说，CACM比JACM要像Nature/Science很多。JACM上登的全是长篇大论，满纸的定义、定理和证明， 别说一般读者没法看，就连很相近的领域的专家都未必能看懂。而CACM则是magazine，既登高水平的学术论文和综述，也登各种科普性质的文章和新 闻。即便是论文，CACM也要求文章必须通俗易懂，不追求数学上的严格证明，而追求易于理解的直觉描述。在十几二十年前，CACM的文章几乎都是经典。但 最近几年，由于CACM进一步通俗化，其学术质量稍有下降。</p>
<p><wbr></wbr></p>
<p>除了ACM老大的东西外，就是IEEE的了。&#8216;IEEE Transaction on Computers&#8217;是IEEE在计算机方面最好的刊物。但由于IEEE的特点，其更注重computer engineering而非computer science。换句话说，IEEE Transaction on Computers主要登载systems, architecture, hardware等领域的东西，尽管它的范围已经比大部分刊物要广泛。就刊物的质量而言，ACM Transactions系列总体来讲都高于IEEE Transactions系列，不过也不可一概而论。大部分ACM Transactions都是本领域最好的刊物或最好的刊物之一。大部分IEEE Transactions都是本领域很好的刊物，但也有最好的或者一般的。然而，非ACM/IEEE的刊物中，也有好的甚至最好的。例如，SIAM Journal on Computing被认为是理论方面最好的期刊之一。CS方面的会议论文事实上起着比刊物论文更大的作用。大部分会议都是每年一次，偶尔也有隔年一次的。 正规的会议论文需要经过2-4个甚至更多个审稿人的双向或单向匿名评审，并且所有被接收的论文会被结集正式出版。大部分ACM的会议都是本领域顶级的或很 好的会议。大部分IEEE的会议都是本领域很好的会议，但也有顶级的或者一般的。会议的档次通常可以通过论文录用率表现出来。顶级会议通常在20%左右或 更低，有时能达到10%左右。我所知道的最低的录用率为7%。很好的会议通常在30%左右。达到40%以上时，会议的名声就很一般了。60%以上的会议通 常很难受到尊敬。但也有例外。大名鼎鼎的STOC(ACM Symposium on Theory of Computing)录用率就达到30%以上，但它毫无疑问是理论方面最好的会议。造成这样的情形，主要是因为理论方面的工作者不多，而大部分人对 STOC又有一种又敬又怕的心理。</p>
<p><wbr></wbr></p>
<p>下面列一些CS的顶级会议和期刊，有些是网上查到的，有些是某些人用SCI的IF排序做出来的：</p>
<p><strong>Computer Vision</strong></p>
<p>Conf.:</p>
<p><wbr></wbr>Best:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>ICCV, Inter. Conf. on Computer Vision</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>CVPR, Inter. Conf. on Computer Vision and Pattern Recognition</p>
<p><wbr></wbr>Good:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ECCV, Euro. Conf. on Comp. Vision</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ICIP, Inter. Conf. on Image Processing</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ICPR, Inter. Conf. on Pattern Recognition</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ACCV, Asia Conf. on Comp. Vision</p>
<p>Jour.:</p>
<p><wbr></wbr>Best:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>PAMI, IEEE Trans. on Patt. Analysis and Machine Intelligence</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IJCV, Inter. Jour. on Comp. Vision</p>
<p><wbr></wbr>Good:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>CVIU, Computer Vision and Image Understanding PR, Pattern Reco.</p>
<p><strong>Network</strong></p>
<p>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ACM/SigCOMM</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ACM Special Interest Group of Communication</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ACM/SigMetric Info Com Globe Com</p>
<p>Jour.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ToN (ACM/IEEE Transaction on Network)</p>
<p><strong>A.I.</strong></p>
<p>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>AAAI: American Association for Artificial Intelligence</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ACM/SigIR IJCAI: International Joint Conference on Artificial Intelligence</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>NIPS: Neural Information Processing Systems</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ICML: International Conference on Machine Learning</p>
<p>Jour.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>Machine Learning</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>NEURAL COMPUTATION</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ARTIFICIAL INTELLIGENCE</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>PAMI</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IEEE TRANSACTIONS ON FUZZY SYSTEMS</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IEEE TRANSACTIONS ON NEURAL NETWORKS</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>AI MAGAZINE</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>NEURAL NETWORKS</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>PATTERN RECOGNITION</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IMAGE AND VISION COMPUTING</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>APPLIED INTELLIGENCE</p>
<p><strong>OS,System</strong></p>
<p><wbr></wbr>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>SOSP: The ACM Symposium on Operating Systems Principles</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>OSDI: USENIX Symposium on Operating Systems Design and Implementation</p>
<p><strong>Database</strong></p>
<p>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ACM SIGMOD</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>VLDB:International Conference on Very Large Data Bases</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ICDE:International Conference on Data Engineering</p>
<p>Security</p>
<p><wbr></wbr>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IEEE Security and Privacy</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>CCS: ACM Computer and Communications Security NDSS (Network and Distributed Systems Security)</p>
<p>Web</p>
<p><wbr></wbr>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>WWW(International World Wide Web Conference)</p>
<p><strong>Theory</strong></p>
<p><wbr></wbr>Conf.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>STOC FOCS EDA Conf.: Best: DAC: IEEE/ACM Design Automation Conference</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ICCAD: IEEE International Conference on Computer Aided Design</p>
<p><wbr></wbr>Good:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ISCAS: IEEE International Symposium on Circuits And Systems</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ISPD: IEEE International Symposium on Physical Design</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ICCD: IEEE International Conference on Computer Design</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ASP-DAC: European Design Automation Conference</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>E-DAC: Asia and South Pacific Design Automation Conference</p>
<p><strong>Graphics</strong></p>
<p><wbr></wbr>Conf.:</p>
<p><wbr></wbr><wbr></wbr>Best:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>Siggraph: ACM SigGraph</p>
<p><wbr></wbr>Good:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>Euro Graph Jour.: IEEE(ACM) Trans. on Graphics</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>IEEE Trans. on Visualization and Computer Graphics</p>
<p><strong>CAD</strong></p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>Jour.: CAD CAGD</p>
<p><strong>SE</strong></p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>conf.: ICSE The International Conference on Software Engineering</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>FSE The Foundations of Software Engineering Conferences</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>ICASE IEEE International Conference on Automated Software Engineering</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>COMPSAC International Computer Software and Applications Conferences</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr>ESEC The European Software Engineering Conferences</p>
<p><wbr></wbr>Jour.:</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>SEN ACM SIGSOFT Software Engineering Notes</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>TSE IEEE Transactions on Software Engineering</p>
<p><wbr></wbr><wbr></wbr><wbr></wbr><wbr></wbr>ASE Automated Software Engineering SPE Software-Practice and Experience ########################</p>
<p>呼呼呼~~ 终于写完了。弄了我1、2个小时~~ FT~ 以上言论大多为个人关于CS的一些不成熟想法，并不代表本台观点。通俗一点说就是：&#8216;纯属扯淡&#8217;。不要当真。25岁以下的儿童须在女朋友的指导下完成阅读。钦此。 By Xi Tan. 2007.10.6 于英国剑桥大学三一学院 绿野猪楼 R10 ~ :-)</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/61832.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-15 01:46 <a href="http://www.cppblog.com/milkyway/articles/61832.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从软件工程师到IT猎头：我的一点经历和感触</title><link>http://www.cppblog.com/milkyway/articles/61643.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Thu, 11 Sep 2008 16:39:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/61643.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/61643.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/61643.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/61643.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/61643.html</trackback:ping><description><![CDATA[<p>Origin: <a href="http://hi.baidu.com/%BB%98%D7%D3%D6%E0/blog/item/d8dda6df9eaa405ecdbf1a67.html">http://hi.baidu.com/%BB%98%D7%D3%D6%E0/blog/item/d8dda6df9eaa405ecdbf1a67.html</a><br><br>在做完三年的通信软件工程师之后，因为不想在技术这条路上继续走下去，但又不想到处出差，吃喝应酬，在一个朋友的推荐下做了猎头，猎头在很多人的眼里是个神秘的职业，可能很多朋友都不知道自己怎么就突然被猎头找到了，然后经过很专业的寒暄跟客气之后，就开始职位介绍，如果这年头，您正不打算换工作，而且又很忙，收到这样的电话可能还真烦的不得了，但如果您目前正有换工作的打算，此时听到猎头的电话，一般都会很客气的躲开您的老板，好好的跟猎头沟通一番。 <br>　　 <br>　　首先说一下，猎头行业是单方面收费的，绝对不向个人收取费用，仅仅收取公司费用。一般人可能会问，为什么那些公司招人不去专门的招聘网站发布消息，偏偏要拿钱来给猎头公司让他们帮忙寻找候选人，其实这很简单，在网站发布消息同样是要收费的，这样公司也许会收取大量简历，但是有利用价值的简历很少，尤其对于那些很高级的职位，你见过有几个manager，或者GE的角色 去上 51job，或者中华英才网的，而且很多公司比较优秀的人才很可能跳槽的动机都不是很强，只有在碰到非常有吸引力的职位时，他们才会考虑一下，另外有些职位很难理解，并不是简单的一些编程经验，他们需要很多额外的附加条件需要猎头去理解。 <br>　　所以猎头的工作简要的可以描述成：寻找合适的人才并过滤简历，在某些时候，甚至我们还需要跟候选人进行第一论电话面试。 <br>　　 <br>　　猎头公司的客户一般都是些外企和国内的名企，当然也有一些小公司，不过就一个猎头公司的发展来看，更愿意去做那些知名企业的case，首先他们有跟猎头合作寻找人才的意识，也比较付得起钱，猎头公司也喜欢跟这些大公司建立长期合作关系。比如像Cisco,EMC，盛大，微软这些公司都是我们公司的长期客户。 <br>　　关于猎头公司的操作收费管理，我这里不想说太多，我这里想说一下大公司的recuit的机制。 <br>　　当客户给我们一个职位的时候，我们首先分析这个职位，需要到什么公司去挖人，像那些国际知名的大企业的职位，一般我们都不会从小公司去找人，像这些大公司，一般都很拽的，我们推上去的简历，不出名的公司他们连简历看都不看的，即使经验再匹配职位。他们宁愿offer一个贵点的同等竞争对手的人才，也不会Offer一个差一点的公司出来的。 <br>　　另外就是一个职位的匹配度问题，这些大公司特别注重经验，因为他们要根据你曾经工作过的年限来定level，这是给你offer多少钱的一个标准，一般来说，这些大公司的业内薪水的标准都差不多，一般新公司给你offer，会参考你上个公司的的薪水，做一个 20％－40％的涨幅，一般涨幅到50％都是很难的。 <br>　　我目前做的主要是技术方面的职位，包括开发，测试，mananger的职位，所以对这方面了解还是有些经验，我现在列举一下我作过的一些公司情况： <br>　　Cisco（上海思科）这个公司比较拽，不过最近亚太区的业务扩张很快，着两年狂招人，估计把alcatel,lucent的人都挖的差不多了，当然Huawei，ZTE也是他们的对手，不过huawei，ZTE的人英语相对比较差，所以过英语这关相对不是很容易，而且huawei的股票也能留住不少人，ZTE的人都慵懒的国企感觉，猎头公司也不是很喜欢找，Cisco当然也很喜欢英特尔，IBM级别差不多类型的人才，总之最Prefer的还是有外企大公司背景的，思科的工程师是分好几个level的，12，8，6，4根据你的工作年限来定，当然薪水级别不同，思科的薪水整体还是不错的，当然这也要看你的能力和背景，所以你不能主观的去评判说，听说思科薪水也一般般，这种之类的话。 <br>　　在软件方面，思科的职位多半都是嵌入式开发的职位，多半的系统都是Linux，QNX，不像huawei,ZTE，alcatel都是用vxworks的，另外就是很strong的C/C++能力，一般juion和senior的软件职位基本就是上层应用软件和底层驱动这两种。 <br>　　EMC，存储业的老大，大家对这个公司可能了解不是很多，不过一提那个史上最牛的女秘书肯定都知道了。EMC的业务其实在硬件比较多，近今年软件需求也扩张很快，目前在上海的五角场那边就是EMC的软件开发中心，EMC很喜欢要英特尔，marvell，oracle，IBM，HP这类公司的人才，薪水也很高，而且四金个人那部分也由公司代交，拿到手的确实比较多，也是很不错的公司。对于软件职位的要求，他们也多半是要求strong experience in Linux C/C++,OS kernel 是非常perfer，偶尔有些windows方面的要求，因为他们主要是网络存储方面的，所以偏底层的软件职位还是更多。 <br>　　Intel，英特尔在上海的软件研发中心人很多，目前都在紫竹那一块，intel网罗的也都是中国最优秀的计算机人才，英特尔的工程师一般知识都很全面，公司的业务也很全面，芯片半导体，无线网络设备，多媒体，纯软件方面的比如complier，middleware等等，他们的系统平台也多半是Linux，有些是Wince,C/C++的经验。intel是个很好的公司，加班也不多，这是技术型的公司，在里面你能找到很多大牛，硕士工作个5，6年一般你如果不是太差，都有个30w左右的年薪。 <br>　　 <br>　　Marvell，这个半导体公司这几年简直发展太快了，收购了intel的一个偏硬件部门还有UT的一个无线芯片部门，顺便提一下，marvell的创始人是一个印尼华裔和一个上海姑娘，强人啊，真给中国人长脸，里面的业务大家可以去他们网站查询，主要涉及存储，通信芯片这方面的业务，软件方面的职位也多是要求Linux C/C++，对kernel比较了解。 <br>　　MicroSoft，如果以上的几个公司都offer不起你的话，请你到微软来试试，目前微软在上海的研发中心多半的业务还是集中在MSN这方面，估计还有些外围的业务，很核心的产品国内目前没有开发，他们对候选人十分挑剔，想给microsoft找个合适的manager，不给他们推荐3，40个大公司的候选人简直不太可能。不过很多人对微软目前在国内的业务不是很感兴趣，所以找合适的人对他们来说就更难了。 <br>　　其他很多有名的公司我就不多说了，比如AMD，HP，IBM,freescale,apple，sybase,等等,local的还有盛大，google，等等。。各有各的风格和企业文化。 <br>　　 <br>　　所以可见，通信，半导体行业的各类人才，软件方面主要focus再Linux ,Kernel,C/C++，如果您足够优秀，有垮平台的开发经验更加好。硬件方面就是集中在ASIC设计，IC设计等等比较抢手，还有一个最重要的，要想进入这些大外企，英语是非常重要的，一般他们所有的面试80％都是英文面试。 <br>　　 <br>　　作为一个有点愤青的猎头，从这些跨国企业选人才的标准我不禁感叹万千。 <br>　　1.这些大公司会把国内那些最优秀的人才选走，然后给予比较高薪的待遇，当然这待遇跟国外的工程师比起来，成本已经低了很多，这也是他们为什么大都把研发中心签到中国来的原因，当然，大多数工程师还是做不到核心的技术，多半也是一些外围的东西，但是成熟的外企制度和优厚的待遇让他们不可能再去考虑local的公司，而即使自己创业，因为你接触的核心东西并不是很多，所以也很难有什么创业的发展前景，比如芯片半导体这个领域。 <br>　　2.外语，让人感觉很痛心的就是，这些老外到中国来选人才，却要求一个东方人会很流利的英语，这是为什么？就是因为人家比你强啊，大家也不止一次看到国，一个满嘴操着英语的人可以到中国来混吃混和，甚至我们更多中国人还客气的跟他们讲英文，以为是个学英语的好机会，而这是我们的领土啊，这里都是说中国话的，到你们的土地上说英文我没什么好讲，但是来到我们的土地，请你们老外要学点中文，中文可比英文有意境多了。可事实并不是这样，大多数人甚至都恨不得忘记自己的母语，满嘴中文夹着英文，哎，有时候，我真感叹，这是不是一种高科技和平年代的侵略方式呢？ <br>　　其实大家想想，外企真的给我们中国带来了什么？除了解决了很多人的就业，确实也提高了很多人的生活水平，可真正的核心技术还是老外控制，即使进了外企，也很难进入一个很高的职位，公司的利润大都还是被欧美带走，GDP留给中国了，说白了，人家利用的还是你的廉价又廉价的劳动力。 <br>　　3.反思当代中国大学教育，很多老师，教授其实根本不知道当前社会上需要什么样的人才，单就中国大学的教育来讲，真的是很失败的，教学内容的更新完全落后于技术的更新。 <br>　　 <br>　　4.职业发展，我常常听很多做了3，4年的候选人说，我不想做技术了，我已经做project leader，不要给我推荐Engineer的职位，其实这种想法也只有在中国人的工程师里出现，对于这种很牛的技术型公司，PL并不是一个position,大多数是由比较senior的engineer担任，manager才是一个position，像intel，思科,emc这种技术型的公司，职业发展都是分两路走，一种是走技术路线，一种是都管理路线，并不是说技术的就比管理的薪水或级别低，他们的level是彼此独立的，薪水一样有很大提升空间的，但即使是manager的职位也要保持非常深厚的技术功底，但也许不如technical lead 关心的那么细节和深入。 <br>　　国内很多毕业生的想法就是，做几年技术，做个leader，就可以不用再弄那些枯燥无聊的coding了，只要管管人，协调一下，就好像解放了一样，这也就是很多国内的公司为什么无法作出最好的技术，保留住最好人才的原因。 <br>　　让喜欢技术的人继续研究技术，有管理能力的人从事管理。这才是人才分配的最好方式，当然，中国的用人制度跟从小到大的教育都是密不可分的，想解决这些问题必须治标又治本。 <br>　　 <br>　　5.说的有点多了，大家有什么要交流，请加我 msn: zis_an@hotmail.com <br>　　顺便也打打广告，目前有Cisco 的Linux C底层开发的Embedded sw egr职位，以及EMC的软硬件测试类Sr.egr，manager的各类职位，还有其他一些公司，如果有意向请大家联系我. <br>　　 <br>　　msn: zis_an@hotmail.com(也是email) <br>　　电话: 021-61645509</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/61643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-12 00:39 <a href="http://www.cppblog.com/milkyway/articles/61643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>44本计算机科学类的经典书</title><link>http://www.cppblog.com/milkyway/articles/61038.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Fri, 05 Sep 2008 11:31:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/61038.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/61038.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/61038.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/61038.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/61038.html</trackback:ping><description><![CDATA[<p>来自<a href="http://bbs.pfan.cn/post-259063.html">http://bbs.pfan.cn/post-259063.html</a><br><br>1.<a href="http://www.shubulo.com/viewthread.php?tid=31350" target=_blank><u><font color=#0000ff>The&nbsp;Art&nbsp;of&nbsp;Computer&nbsp;Programming</font></u></a><br>　　Author:&nbsp;Donald.E.Knuth<br>　　Web&nbsp;site:&nbsp;<a href="http://www-cs-faculty.stanford.edu/~knuth/taocp.html" target=_blank><u><font color=#0000ff>http://www-cs-faculty.stanford.edu/~knuth/taocp.html</font></u></a><br>　　Book&nbsp;Info:&nbsp;这部书被誉为20世纪最重要的20部著作之一,与Einstein的&lt;&lt;相对论&gt;&gt;并列,是计算机科学<br>领域的权威著作.全书共分7卷,目前已经出版了3卷,被誉为"计算机程序设计理论的荷马史诗","可与牛顿的<br>&lt;&lt;自然科学的数学原理&gt;&gt;媲美的巨著".作者数学方面的功底造就了本书严谨的风格,虽然本书不是用当今流<br>行的程序设计语言描述的,但这丝毫不损伤它"程序设计史诗"的地位.道理很简单,它内涵的设计思想是永远<br>不会过时的.The&nbsp;Art&nbsp;of&nbsp;Computer&nbsp;Programming&nbsp;原计划要出七册,但目前只完成了三册.该书有日文,俄文,<br>西班牙文等许多国的版本.其中,中文版由国防大学出版社发行.<br>　　Book&nbsp;Reviews:&nbsp;<br>　　无数的读者都在谈论Knuth的书所带来的深远影响.科学家惊叹于分析逻辑之透彻严谨,而普通的编程人<br>员也已成功地将书中所列方案运用到他们的日常问题中.所有的人都非常赞赏Knuth在这套书中所表现的精确<br>与风趣,并为其明确性与涉及面之广而感到欣喜.<br>　　我无法向你表达这套书在学习和创造性方面所带给我的兴奋与激动,我已经将它们带入了我的生活,就像<br>我的汽车,饭馆,工作,家庭&#8230;&#8230;无所不在.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----Charles&nbsp;Long<br>　　无论你的背景怎样,如果你正在进行复杂的计算机编程,你就应该阅读本套书中的每本书,来补充你的专<br>业知识.<br>　　当一个问题难以解决,而必须使用Knuth的这套书来解决时,总是一件令人愉快的事情.我发现在计算机方<br>面使用它们会有惊人的效果.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----Jonathan&nbsp;Laventhol<br>　　如果你认为你是一名真正优秀的程序员&#8230;&#8230;读Knuth的&lt;&lt;计算机程序设计艺术&gt;&gt;,如果你能读懂整套书的<br>话,请给我发一份你的简历.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----Bill&nbsp;Gates<br>　　The&nbsp;Art&nbsp;of&nbsp;Computer&nbsp;Programming,&nbsp;Volume&nbsp;1:&nbsp;Fundamental&nbsp;Algorithms&nbsp;(3rd&nbsp;Edition)<br>　　Author:&nbsp;Donald.E.Knuth<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;卷1为基础运算法则,该书以基本的编程概念和技术为开始,然后讲述信息结构--计算机内信<br>息的表示法,数据元素间的结构关系以及处理它们的有效方法.主要应用于模拟,数字方法,符号计算,软件和<br>系统设计.许多简单和重要的运算法则和技术已添加到前一版本中,精确的初步计算部分已经修改,以适应当<br>前趋势.<br>　　The&nbsp;Art&nbsp;of&nbsp;Computer&nbsp;Programming,&nbsp;Volume&nbsp;2:&nbsp;Seminumerical&nbsp;Algorithms&nbsp;(3rd&nbsp;Edition)<br>　　Author:&nbsp;Donald.E.Knuth<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;第2卷对半数值算法领域做了全面介绍,分"随机数"和"算术"两章.本卷总结了主要算法范例<br>及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系.第3版中特别值得注意的是<br>Knuth对随机数生成程序的重新处理和对形式幂级数计算的讨论.<br>　　The&nbsp;Art&nbsp;of&nbsp;Computer&nbsp;Programming,&nbsp;Volume&nbsp;3:&nbsp;Sorting&nbsp;and&nbsp;Searching&nbsp;(2nd&nbsp;Edition)<br>　　Author:&nbsp;Donald&nbsp;E.Knuth<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;卷3为分拣和搜索,这是本书的第1个修订版,它是对计算机分拣和搜索的一流技术的最全面<br>的研究,它扩展了卷1中数据结构的处理方法,将大小数据库以及内存和外部存储都包含在内.本书包括对计算<br>机方法仔细检查的选择方案,和其效率的大量分析.本书该版的独特之处在于优化了的分拣,以及对通用散列<br>法和排列法的新的理论论述.<br>　　作者简介:<br>　　Donald.E.Knuth(唐纳德.E.克努特,中文名高德纳)是算法和程序设计技术的先驱者,是计算机排版系统<br>TeX和METAFONT的发明者,他因这些成就和大量创造性的影响深远的著作(19部书和160篇论文)而誉满全球,在<br>计算机科学领域享有崇高的威望,是计算机科学界公认的大宗师.作为斯坦福大学计算机程序设计艺术的荣誉<br>退休教授,他当前正全神贯注于完成其关于计算机科学的史诗性的七卷集.这一伟大工程在1962年他还是加利<br>福尼亚理工学院的研究生时就开始了.Knuth教授获得了许多奖项和荣誉,包括美国计算机协会图灵奖(ACM&nbsp;<br>Turing&nbsp;Award),美国前总统卡特授予的科学金奖(Medal&nbsp;of&nbsp;Science),美国数学学会斯蒂尔奖(AMS&nbsp;Steele&nbsp;<br>Prize),以及1996年11月由于发明先进技术荣获的极受尊重的京都奖(KyotoPrize).现与其妻Jill生活于斯坦<br>福校园内.<br>　　Donald.E.Knuth人生最辉煌的时刻在斯坦福大学计算机系渡过,获得了美国计算机协会图灵奖,成为本领<br>域内当之无愧的泰斗.<br><br>英文原版下载<br><a href="http://www.shubulo.com/redirect.php?tid=34754" target=_blank><u><font color=#0000ff>http://www.shubulo.com/redirect.php?tid=34754</font></u></a><br><br>----------------------------------------------------------------<br>2.<a href="http://www.shubulo.com/thread-31351-1-2.html" target=_blank><u><font color=#0000ff>Introduction&nbsp;to&nbsp;Algorithms</font></u></a><br>　　Author:Thomas&nbsp;H.Cormen&nbsp;,Charles&nbsp;E.Leiserson&nbsp;,Ronald&nbsp;L.Rivest&nbsp;,Clifford&nbsp;Stein&nbsp;<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;简称为CLRS的&lt;&lt;算法导论&gt;&gt;,被称作"计算机算法的圣经".<br>　　本书的主要作者来自麻省理工大学计算机,作者之一Ronald&nbsp;L.Rivest&nbsp;由于其在公开秘钥密码算法RSA上<br>的贡献获得了图灵奖,目前是算法的标准教材,美国许多名校的计算机系都使用它,国内有些院校也将本书作<br>为算法课程的教材.另外许多专业人员也经常引用它.由于TAOCP只出版了3卷,CLRS比较起前者来则显得内容<br>更为全面,基本包含了所有的经典算法.本书程序全部由伪代码实现,这更增添了本书的通用性,使得利用各种<br>程序设计语言的程序员都可以作为参考.语言方面通俗,很适合作为算法教材和自学算法之用.国内的很多作<br>品名为数据结构,从本书中断章取义,把数据结构与算法混为一谈,搞得作者自己都迷迷糊糊.这也是我不十分<br>愿意向大家推荐国内作品的原因.你会发现现在基本上所有的数据结构与算法书籍都会将本书作为参考文献<br>之一,更可以说明一个问题,本书是作为读者进行算法学习的最佳选择.作为本书的补充内容,我愿意向大家推<br>荐下面的学习资料:你可以通过这个地址找到本书的所有练习答案:<a href="http://www.itu.dk/people/beetle/" target=_blank><u><font color=#0000ff>http://www.itu.dk/people/beetle/</font></u></a>&nbsp;.为<br>了更好的学习本书中的内容,最好的指导当然是来自作者本身讲述本书的课程,读者们可以通过<br><a href="http://18.89.1.101/sma/5503fall2001/index5503fall2001.html" target=_blank><u><font color=#0000ff>http://18.89.1.101/sma/5503fall2001/index5503fall2001.html</font></u></a>获得课程的录像.<br><br>中文版<br>&nbsp;<a href="http://www.shubulo.com/thread-31351-1-1.html" target=_blank><u><font color=#0000ff>http://www.shubulo.com/thread-31351-1-1.html</font></u></a><br>习题及答案<br><a href="http://www.shubulo.com/thread-33989-1-1.html" target=_blank><u><font color=#0000ff>http://www.shubulo.com/thread-33989-1-1.html</font></u></a><br><br>----------------------------------------------------------------<br>3.<a href="http://www.shubulo.com/viewthread.php?tid=35026" target=_blank><u><font color=#0000ff>Data&nbsp;Structure&nbsp;&amp;&nbsp;Algorithm&nbsp;Analysis&nbsp;in&nbsp;C</font></u></a>&nbsp;(Second&nbsp;Edition)<br>　　Author:Mark&nbsp;Allen&nbsp;Weiss<br>　　Published:September&nbsp;1996<br>　　Web&nbsp;site:<a href="http://www.cs.fiu.edu/~weiss/" target=_blank><u><font color=#0000ff>http://www.cs.fiu.edu/~weiss/</font></u></a><br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark&nbsp;Allen&nbsp;Weiss在数据结构和算法<br>分析方面卓有建树.他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教<br>材.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>4.<a href="http://www.shubulo.com/thread-31378-1-1.html" target=_blank><u><font color=#0000ff>Concrete&nbsp;Mathematics&nbsp;A&nbsp;Foundation&nbsp;for&nbsp;Computer&nbsp;Science(Second&nbsp;Edition)</font></u></a><br>中文版<br><a href="http://www.shubulo.com/thread-33994-1-1.html" target=_blank><u><font color=#0000ff>http://www.shubulo.com/thread-33994-1-1.html</font></u></a><br>　　Author:Donald.E.Knuth&amp;Ronald&nbsp;L.Graham<br>　　Web&nbsp;site:&nbsp;<a href="http://www-cs-faculty.stanford.edu/~knuth/gkp.html" target=_blank><u><font color=#0000ff>http://www-cs-faculty.stanford.edu/~knuth/gkp.html</font></u></a><br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;很令人兴奋的就是这本书的主要作者正是泰斗Donald.E.Knuth以及他的同事Ronald&nbsp;<br>L.Graham.书稿是他们在1970年的时候在计算机系教授研究生本门课程的基础上整理出来的教材.内容上是<br>Knuth的巨著TAOCP第一部的扩展,有些比TAOCP中谈及地又深入了许多.重点放在高级计算机程序设计话题以<br>及算法分析上,涉及了计算机科学领域内几乎所有可能遇到的数学知识.具体数学是离散数学和连续数学的综<br>合,书中这点做得极为出色,介绍的内容涉及到书中许多经典问题的解答比目前广泛流传的解法更易懂.对于<br>提高大家的计算数学修养有很大帮助.之所以TAOCP有的时候读者们读不懂就是因为计算数学基础不是十分扎<br>实,但以我个人经验,若能对本书中内容有一个比较好的理解,会给你阅读如TAOCP这样的旷世巨著带来很大的<br>方便.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>5.<a href="http://www.shubulo.com/viewthread.php?tid=31887" target=_blank><u><font color=#0000ff>Discrete&nbsp;Mathematics&nbsp;and&nbsp;Its&nbsp;Applications,Fourth&nbsp;Edition</font></u></a><br>习题<br><a href="http://www.shubulo.com/viewthread.php?tid=33130" target=_blank><u><font color=#0000ff>http://www.shubulo.com/viewthread.php?tid=33130</font></u></a><br>　　Author:Kenneth&nbsp;H.Rosen<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书的价值已经被全世界几百所大学所证实,作为离散数学领域的经典教材,全世界几乎所<br>有知名的院校都曾经使用本书作为教材.以我个人观点看来,这本书可以称之为离散数学百科.书中不但介绍<br>了离散数学的理论和方法,还有丰富的历史资料和相关学习网站资源.更为令人激动的便是这本书少有的将离<br>散数学理论与应用结合得如此的好.你可以看到离散数学理论在逻辑电路,程序设计,商业和互联网等诸多领<br>域的应用实例.本书的英文版(第五版)当中更增添了相当多的数学和计算机科学家的传记,是计算机科学历史<br>不可多得的参考资料.作为教材这本书配有相当数量的练习.每一章后面还有一组课题,把学生已经学到的计<br>算和离散数学的内容结合在一起进行训练.这本书也是我个人在学习离散数学时读的唯一的英文教材,实为一<br>本值得推荐的好书.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>6.<a href="http://www.shubulo.com/viewthread.php?tid=29171" target=_blank><u><font color=#0000ff>The&nbsp;C&nbsp;Programming&nbsp;Language</font></u></a>&nbsp;2nd&nbsp;Edition<br>英文版<br><a href="http://www.shubulo.com/viewthread.php?tid=17067" target=_blank><u><font color=#0000ff>http://www.shubulo.com/viewthread.php?tid=17067</font></u></a><br>习题及答案<br><a href="http://www.shubulo.com/viewthread.php?tid=30825" target=_blank><u><font color=#0000ff>http://www.shubulo.com/viewthread.php?tid=30825</font></u></a><br>　　Author:Brian&nbsp;W.Kernighan&nbsp;and&nbsp;Dennis&nbsp;M.Ritchie<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Published:&nbsp;1988.<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;Brian&nbsp;W.Kernighan和Dennis&nbsp;M.Ritchie的传世之作.千千万万程序员和编程爱好者的圣经,<br>每一页都是价值连城的秘诀.不管你从哪一页信手翻起,最终你都会发现自己已经深陷其中而不能自拔.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>7.<a href="http://www.shubulo.com/viewthread.php?tid=33101" target=_blank><u><font color=#0000ff>The&nbsp;C++&nbsp;Programming&nbsp;Language</font></u></a>　　Author:Bjarne&nbsp;Stroustrap<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;由C++之父亲手执笔的&lt;&lt;The&nbsp;C++&nbsp;Programming&nbsp;Language&gt;&gt;是每个程序员心目中不可动摇的<br>指南-----尽管官方标准还是ISO颁布的另一份文档,由ISO/IEC&nbsp;JTC1/SC22/WG21出版.TCPL是除了C++标准文<br>献之外最权威的C++参考手册.和大多数人的看法不大一样,我认为Bjarne的文字语言并不逊色于他所创建的<br>程序语言,至少我喜欢这种学院气息浓厚的作品.本书对C++语言的描述轮廓鲜明,直截了当.它从C++语言创建<br>者的角度来观察C++,这是任何别的作者和书籍做不到的----没有任何人比Bjarne自己更清楚该怎么来使用<br>C++.<br>　　这是一本严肃的著作,以中,高级C++开发人员为目标读者.如果你是一名有经验的C++程序员,需要了解更<br>加本质的C++知识,本书正是为你而写.它不是那种让你看了会不断窃喜的小书,需要用心体会,反复咀嚼.在阅<br>读过程中,请特别留心Bjarne先生强调了什么,又对什么一语带过.我个人比较喜欢这本书的第四部分"使用<br>C++做设计",这样的内容在类似的程序设计语言书籍中很难看到----我甚至认为Bjarne应该将这部分独立出<br>来单独写一本书.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>8.<a href="http://www.shubulo.com/viewthread.php?tid=35562" target=_blank><u><font color=#0000ff>The&nbsp;Design&nbsp;and&nbsp;Evolution&nbsp;of&nbsp;C++</font></u></a><br>　　Author:&nbsp;Bjarne&nbsp;Stroustrup<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;D&amp;E是一本关于C++语言设计原理,设计决策和设计哲学的专著.它清晰地回答了C++为什么会<br>成为今天这个样子而没有变成另外一种语言.作为C++语言的创建者,Bjarne淋漓尽致地展示了他独到而深刻<br>的见解.除了广受赞誉的语言特性外,Bjarne没有回避那些引起争议的甚至被拒绝的C++特性,他一一给出了逻<br>辑严密,令人信服的解释.内容涵盖C++的史前时代,带类的C,C++的设计规则,标准化,库,内存管理,多重继承,<br>模板等,对包括异常机制,运行时类型信息和名字空间在内的重要的新特性都分别进行了深入探讨.每一名C++<br>程序员都应该可以从Bjarne的阐释中加深对手中这门语言的认识.这本书知识浓缩,信息量极大,请不要错过<br>Bjarne每一句看似漫不经意的话.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>9.<a href="http://www.shubulo.com/viewthread.php?tid=32982" target=_blank><u><font color=#0000ff>Accelerated&nbsp;C++:&nbsp;Practical&nbsp;Programming&nbsp;by&nbsp;Example</font></u></a><br>　　Author:&nbsp;Andrew&nbsp;Koenig,&nbsp;Barbara&nbsp;E.Moo<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional<br>　　Published:&nbsp;January&nbsp;15,&nbsp;2000<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;和市面上大多数C++教程不同,本书不是从"C++中的C"开始讲解,而是始于地道的C++特性.从<br>一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件所依赖的基础概念.另外,和<br>其他C++教材不同的是,这本书以实例拉动语言和标准库的讲解,对后两者的讲解是为了给实例程序提供支持,<br>而不是像绝大多数C++教材那样,例子只是用作演示语言特性和标准库用法的辅助工具.<br>　　作者在C++领域的编程实践,教育培训以及技术写作方面都是世界一流水准.我喜欢这种大量使用标准库<br>和C++语言原生特性的清新的写作风格.在这本教材面前,几乎迄今为止的所有C++教材都黯然失色或显得过时<br>.尽管这本教材也许对于国内的高校教育来说有些前卫,不过我仍然极力向我的同行们推荐.顺带一提,在<br>Bjarne和我最近的一封通信里,他这样评价本书:对于有经验的程序员学习C++而言,这本书可能是世界上最好<br>的一本.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>10.<a href="http://www.shubulo.com/viewthread.php?tid=30085" target=_blank><u><font color=#0000ff>C++&nbsp;Gotchas:&nbsp;Avoiding&nbsp;Common&nbsp;Problems&nbsp;in&nbsp;Coding&nbsp;and&nbsp;Design</font></u></a>　　Author:&nbsp;Stephen&nbsp;C.Dewhurst<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;1st&nbsp;edition&nbsp;(November&nbsp;26,&nbsp;2002)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;Stephen的理论素养和实践经验注定这是一本值得一读的好书.Stephen曾经是贝尔实验室中<br>第一批C++使用者.他已经使用C++成功解决了包括编译器,证券交易,电子商务以及嵌入式系统等领域中的问<br>题.本书汇集了作者来自开发一线的99条编程真知灼见,洞悉它们,你可以避免几乎所有常见的C++设计和编程<br>问题.<br>　　我甚至认为,对于C++编程菜鸟而言,阅读这本书会比阅读Scott和Herb的书更能轻松而立竿见影地获得更<br>大的提高.我个人很喜欢这本书的写作风格----Stephen的许多观点看似极端却无可辩驳.当然了,这种自信(<br>以及冷幽默)来自于作者深厚的技术素养,而非自大的偏执.<br><br>11.<a href="http://www.shubulo.com/thread-17071-1-1.html" target=_blank>C++&nbsp;Primer&nbsp;3rd</a><br>　　Author:&nbsp;Stanley&nbsp;B.Lippman<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;这本书的名字多少有点让人误解.尽管作者声称这本书是为C++新手而写,但无论是它的厚度<br>还是讲解的深度都暴露了似乎并非如此.也许说它是一本"从入门到精通"的C++教程会更合适一些.我个人认<br>为它并不适合完全不懂C++的初学者----在阅读这本书之前,你至少应该先有那么一点C或C++的背景知识,或<br>者至少要具有一些其他语言的编程经验.<br>　　尽管这本书省略了一些高级C++特性的讨论,但仍然可以称得上是迄今为止最全面的C++学习教程.事实上<br>,如果一名C++初学者能够扎扎实实地读完本书并对照&lt;&lt;C++&nbsp;Primer&nbsp;Answer&nbsp;Book&gt;&gt;完成全部习题的话,他的<br>水平肯定可以进入职业C++程序员的行列.我个人认为,即使你已经拥有了TCPL,这本书依然有拥有的价值,因<br>为在许多方面它比TCPL来得更详细,更易懂.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>12.<a href="http://www.shubulo.com/viewthread.php?tid=31907" target=_blank>Essential&nbsp;C++</a><br>　　Author:&nbsp;Stanley&nbsp;B.Lippman<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;可以不太严格地认为这本书是&lt;&lt;C++&nbsp;Primer&gt;&gt;的精简版.本书一一讲述了C++中最具代表性<br>的主题,包括过程式编程,泛型编程,基于对象编程,面向对象编程,模板编程以及异常处理等.Stanley将门槛<br>调低到"具有其他语言程序设计经验"的C++新手所能接受的最基本的层次,使他们能够迅速开始使用C++编程<br>而又免于阅读&lt;&lt;C++&nbsp;Primer&gt;&gt;那样的大部头.它以实例引导学习,力图使读者在最短的时间内把握C++的精粹.<br>　　也许换一个人来概述C++编程范型(paradigm)的方方面面需要好几百页才能说清楚,但这本小书不可思议<br>地做到了这一点.我个人非常喜欢这种满是技术,简明扼要并且"有话好好说"的书.这本书同样具有一个明显<br>的风格:所有程序例子全部采用标准库组件,让人耳目一新.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>13.<a href="http://www.shubulo.com/viewthread.php?tid=17065" target=_blank>Effective&nbsp;C++:&nbsp;50&nbsp;Specific&nbsp;Ways&nbsp;to&nbsp;Improve&nbsp;Your&nbsp;Programs&nbsp;and&nbsp;Design&nbsp;(2nd&nbsp;Edition)</a><br>　　More&nbsp;Effective&nbsp;C++:&nbsp;35&nbsp;New&nbsp;Ways&nbsp;to&nbsp;Improve&nbsp;Your&nbsp;Programs&nbsp;and&nbsp;Designs<br>　　Author:&nbsp;Scott&nbsp;Meyers<br>　　Publisher:Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Amazon.com<br>　　Book&nbsp;Info:&nbsp;先养成良好的C++设计习惯,这是Scott&nbsp;Meyers的&lt;&lt;Effective&nbsp;C++&gt;&gt;和&lt;&lt;More&nbsp;Effective&nbsp;<br>C++&gt;&gt;带给我们的无穷好处,这两本书是真正的经典,作者对C++的纯熟,使得语言的风格读起来简直是如饴甘<br>甜,就像他站在你对面讲课.如果你已经深刻地理解了&lt;&lt;Effective&nbsp;C++&gt;&gt;和&lt;&lt;More&nbsp;Effective&nbsp;C++&gt;&gt;,那你可<br>以发现,你在众人中已经是鸡群之鹤.<br>　　如果说&lt;&lt;Effective&nbsp;C++&gt;&gt;主要讨论C++中一些相对基础的概念和技巧的话,那么&lt;&lt;More&nbsp;Effective&nbsp;<br>C++&gt;&gt;则着重探讨了包括异常处理在内的一系列高级技术.与前者相比,后者具有两大主要区别:其一,它包含<br>很多时新的标准C++的内容;第二,它讨论的主题倾向于"战略化"而非"战术化",并且讨论得更深入,更彻底.尤<br>其是对虚析构函数,智能指针,引用计数以及代理类(proxy&nbsp;classe)等技术和模式论述的深入程度,让人很难<br>想象是出现于这样的一本小书之中.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>14.<a href="http://www.shubulo.com/viewthread.php?tid=35086" target=_blank>Exceptional&nbsp;C++:&nbsp;47&nbsp;Engineering&nbsp;Puzzles,&nbsp;Programming&nbsp;Problems,&nbsp;and&nbsp;Solutions</a><br>　　　More&nbsp;Exceptional&nbsp;C++:&nbsp;40&nbsp;New&nbsp;Engineering&nbsp;Puzzles,&nbsp;Programming&nbsp;Problems,&nbsp;and&nbsp;Solutions<br>　　Author:&nbsp;Herb&nbsp;Sutter<br>　　Book&nbsp;Info:&nbsp;你自认为是一名C++语言专家吗?读一读ISO&nbsp;C++标准委员会秘书长的这两本书再回答.在这<br>两本书中,Herb采用了"问答"的方式指导你学习C++语言特性.对于每一个专题,Herb首先合理地设想出你的疑<br>问和困惑,接着又猜测出你十有八九是错误的解答,然后给你以指点并提出最佳解决方案,最后还归纳出解决<br>类似问题的普适性原则.<br>　　这两本书是典型的深究C++语言细节的著作,很薄,但内容密集,远远超过Scott的那两本书,读起来很费脑<br>筋----我个人认为它们要比Scott的书难懂得多.若要研习这薄薄的两本书所包含的知识,至少需要花费数月<br>的时间!(在Scott的荐序中,他坦陈不止一次陷入GotW问题的陷阱,你应该知道这意味着什么)对于语言细节的<br>深究有什么好处呢?尽管在大多数情况下,我们不必关心C++代码幕后的动作,然而当我们不得不关心时,这两<br>本书可以为我们提供很好的线索,因为它们揭示了C++语言中微妙而又至关重要的东西.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>15.<a href="http://www.shubulo.com/viewthread.php?tid=17066" target=_blank>Modern&nbsp;C++&nbsp;Design:&nbsp;Generic&nbsp;Programming&nbsp;and&nbsp;Design&nbsp;Patterns&nbsp;Applied</a><br>　　Author:&nbsp;Andrei&nbsp;Alexandrescu<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;你自认为是C++模板编程高手吗?请看过这本书再回答.这是一本出自天才之手令人敬畏的杰<br>作.泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限.<br>　　这本书共分为两大部分,第一部分讨论了Loki程序库采用的基础技术以及一些高级语言特性,包括基于策<br>略的类设计,模板局部特化,编译期断言,Typelist以及小型对象分配技术等.第二部分则着重介绍了Loki中的<br>重要组件和泛型模式技术,包括泛化仿函数(Generalization&nbsp;Functor),单件(Singleton),智能指针,对象工<br>厂(Object&nbsp;Factory),抽象工厂(Abstract&nbsp;Factory),访问者(Visitor)以及多方法(Multimethods)等.每一种<br>技术都让人大开眼界,叹为观止.<br><br>&nbsp;<br><br>----------------------------------------------------------------------------------<br>16.<a href="http://www.shubulo.com/viewthread.php?tid=34257" target=_blank>C++&nbsp;Templates:&nbsp;The&nbsp;Complete&nbsp;Guide</a><br>　　Author:&nbsp;David&nbsp;Vandevoorde,&nbsp;Nicolai&nbsp;M.Josuttis<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;有一种老套的赞美一本书的手法,大致是"没有看过这本书,你就怎么怎么地",这里面往往夸<br>张的成分居多.不过,倘若说"没有看过&lt;&lt;C++&nbsp;Templates:&nbsp;The&nbsp;Complete&nbsp;Guide&gt;&gt;,你就不可能精通C++模板编<br>程",那么这个论断对于世界上绝大多数C++程序员来说是成立的.这本书填补了C++模板书籍领域由来已久的<br>空白.此前,上有&lt;&lt;Modern&nbsp;C++&nbsp;Design&gt;&gt;这样的专注于模板高级编程技术和泛型模式的著作,下有&lt;&lt;The&nbsp;C++&nbsp;<br>Standard&nbsp;Library&gt;&gt;这样的针对特定模板框架和组件的使用指南.然而,假如对模板机制缺乏深入的理解,你<br>就很难"上下"自如.鉴于此,我向每一位渴望透彻理解C++模板技术的朋友推荐这本书.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>17.<a href="http://www.shubulo.com/redirect.php?tid=34229" target=_blank>The&nbsp;C++&nbsp;Standard&nbsp;Library:&nbsp;A&nbsp;Tutorial&nbsp;and&nbsp;Reference</a><br>　　Author:&nbsp;Nicolai&nbsp;M.&nbsp;Josuttis<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;1st&nbsp;edition&nbsp;(August&nbsp;12,&nbsp;1999)<br>　　Amazon&nbsp;Reviews:&nbsp;<br>[<a href="http://www.amazon.com/exec/obidos/tg/detail/-/0201379260/002-5778374-2660009?v=glance" target=_blank>http://www.amazon.com/exec/obidos/tg/detail/-/0201379260/002-5778374-2660009?v=glance</a>]Amazon.<br>com[/URL]<br>　　Book&nbsp;Info:&nbsp;这是一本百科全书式的C++标准库著作,是一本需要一再查阅的参考大全.它在完备性,细致<br>性以及精确性方面都是无与伦比的.本书详细介绍了每一标准库组件的规格和用法,内容涵盖包括流和本地化<br>在内的整个标准库而不仅仅是STL.正如本书副标题所示,它首先适合作为教程阅读,尔后又可用作参考手册.<br>　　浅显易懂的写作风格使得这本书非常易读.如果你希望学习标准库的用法并尽可能地发挥其潜能,那你必<br>须拥有这本书.正如网络上所言,这本书不仅仅应该摆在你的书橱中,更应该放到你的电脑桌上.我向每一位职<br>业C++程序员强烈推荐.<br>----------------------------------------------------------------<br>18.<a href="http://www.shubulo.com/viewthread.php?tid=17065" target=_blank>Effective&nbsp;C++:&nbsp;50&nbsp;Specific&nbsp;Ways&nbsp;to&nbsp;Improve&nbsp;Your&nbsp;Programs&nbsp;and&nbsp;Design&nbsp;(2nd&nbsp;Edition)</a>　　Author:&nbsp;Scott&nbsp;Meyers<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;2&nbsp;edition&nbsp;(September&nbsp;2,&nbsp;1997)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;<br>　　Effective&nbsp;STL:&nbsp;50&nbsp;Specific&nbsp;Ways&nbsp;to&nbsp;Improve&nbsp;Your&nbsp;Use&nbsp;of&nbsp;the&nbsp;Standard&nbsp;Template&nbsp;Library<br>　　Author:&nbsp;Scott&nbsp;Meyers<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;1st&nbsp;edition&nbsp;(June&nbsp;6,&nbsp;2001)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;读完Scott&nbsp;的&lt;&lt;Effective&nbsp;C++&gt;&gt;和&lt;&lt;More&nbsp;Effective&nbsp;C++&gt;&gt;的中译本之后,我一直期待这<br>本书的中文版.我从潘爱民先生的个人主页上了解到,他和他的合作伙伴似乎早已完成了这本书的翻译工作,<br>可惜至今市面上仍不得见.幸运的是,我们可以看到它的原版.<br>本书是使用STL的程序员必读之作.在这本书中,Scott向我们讲述STL容器和算法的工作机制以及如何以最佳<br>方式使用它们.和Scott的其他作品一样,这本书的写作风格清晰,精确,具有极佳的可读性.看过这本书以后,<br>我想你也许会和我以及其他C++程序员一样产生这样的想法:Scott什么时候会写出一本"More&nbsp;Effective&nbsp;<br>STL"？<br>&nbsp;<br>----------------------------------------------------------------<br>19.<a href="http://www.shubulo.com/viewthread.php?tid=32" target=_blank>Thinking&nbsp;in&nbsp;C++,&nbsp;Volume&nbsp;1:&nbsp;Introduction&nbsp;to&nbsp;Standard&nbsp;C++&nbsp;(2nd&nbsp;Edition)</a>　　Author:&nbsp;Bruce&nbsp;Eckel<br>　　Publisher:&nbsp;Prentice&nbsp;Hall;&nbsp;2nd&nbsp;edition&nbsp;(April&nbsp;15,&nbsp;2000)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;&lt;&lt;Thinking&nbsp;in&nbsp;C++&gt;&gt;的第1版于1996年荣获"软件研发"杂志评选的图书震撼大奖.最新推出<br>的第2版对内容进行了大幅改写和调整,以反映C++标准化带来的影响以及近几年面向对象领域最新研究和实<br>践成果."输入输入流","多重继承","异常处理"和"运行时类型识别"等高级主题连同C++标准化以后增加的一<br>些内容则被放入第二卷中.Bruce是一名经验丰富的C++讲师和顾问,其培训和写作经验都是世界一流水准,他<br>的作品比那些"玩票"的技术人员写的东西更能吸引读者.事实上,在同类图书中,对于大多数读者而言,这本书<br>的可读性要超过TCPL和&lt;&lt;C++&nbsp;Primer&gt;&gt;.<br>　　Thinking&nbsp;in&nbsp;C++,&nbsp;Volume&nbsp;2:&nbsp;Practical&nbsp;Programming&nbsp;(Second&nbsp;Edition)<br>　　Author:&nbsp;Bruce&nbsp;Eckel<br>　　Publisher:&nbsp;Prentice&nbsp;Hall;&nbsp;2nd&nbsp;edition&nbsp;(November&nbsp;1,&nbsp;2003)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>20.&nbsp;&nbsp;<a href="http://www.shubulo.com/viewthread.php?tid=17070" target=_blank>Ruminations&nbsp;on&nbsp;C++:&nbsp;A&nbsp;Decade&nbsp;of&nbsp;Programming&nbsp;Insight&nbsp;and&nbsp;Experience</a><br>　　Author:&nbsp;Andrew&nbsp;Koenig,&nbsp;Barbara&nbsp;E.&nbsp;Moo,&nbsp;Barbara&nbsp;E.&nbsp;(Editor)&nbsp;Moo<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;1st&nbsp;edition&nbsp;(August&nbsp;7,&nbsp;1996)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;Andrew是世界上屈指可数的C++专家.这是一本关于C++编程思想和程序设计技术而非语言细<br>节的著作.如果你已经具有一定的基础,这本书将教你在进行C++编程时应该怎样思考,应该如何表达解决方案<br>.整本书技术表达透彻,文字通俗易懂.Bjarne这样评价这本书:本书遍布"C++是什么,C++能够做什么"的真知<br>灼见.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>21.<a href="http://www.shubulo.com/viewthread.php?tid=30138" target=_blank>Design&nbsp;Patterns:&nbsp;Elements&nbsp;of&nbsp;Reusable&nbsp;Object-Oriented&nbsp;software</a>　　Author:&nbsp;Erich&nbsp;Gamma<br>　　Publisher:&nbsp;Addison&nbsp;Wesley&nbsp;Longman;&nbsp;(1998<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;设计可复用的面向对象的软件,你需要掌握设计模式.本书并非专为C++程序员而写,但它采<br>用了C++(以及Smalltalk)作为主要示例语言,C++程序员尤其易于从中受益.四位作者都是国际公认的面向对<br>象软件领域专家,他们将面向对象软件的设计经验作为设计模式详细记录下来.这本书影响是如此深远,以至<br>于四位作者以及本书都被昵称为GoF(Gang&nbsp;of&nbsp;Four).本书学院气息浓厚,行文风格严谨简洁,虽然它不如某些<br>讲解模式的书籍易读,但真正要精准地理解设计模式,本书是终极权威.学习设计模式,这本书需要一而再,再<br>而三的咀嚼.顺带一句:请将设计模式化作开拓思维的钥匙,切莫成为封闭思维的枷锁.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>22.Efficient&nbsp;C++:&nbsp;Performance&nbsp;Programming&nbsp;Techniques<br>　　Author:&nbsp;Dov&nbsp;Bulka,&nbsp;David&nbsp;Mayhew<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;这本超薄小书聚焦于高性能C++应用程序开发.两位作者都是IBM软件专家,都工作于对性能<br>要求极高的系统构建领域,本书是他们的经验之谈.也有人不喜欢这本书,因为它花了不少的篇幅讲述和C++无<br>关的东西,我却恰恰因为这一点而对这本书产生好感,正是这些东西让我开阔了眼界.<br><br>&nbsp;<br><br>----------------------------------------------------------------------------------<br>23.Inside&nbsp;the&nbsp;C++&nbsp;Object&nbsp;Model<br>　　Author:&nbsp;Stanley&nbsp;B.Lippman<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Pub&nbsp;Co<br>　　Published:&nbsp;May&nbsp;3,&nbsp;1996<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;从编译器的角度观察C++可以使你知其然并知其所以然.本书探讨了大量的C++面向对象程序<br>设计的底层运作机制,包括构造函数,函数,临时对象,继承,虚拟,模板的实例化,异常处理,运行期类型识别等<br>,另外还介绍了一些在实现C++对象模型过程中做出的权衡折衷.喜欢刨根问底的C++程序员可以从中了解了无<br>数的编译器解释源代码的细节,以及记忆体分配的细节..<br><br>&nbsp;<br><br>----------------------------------------------------------------------------------<br>24.The&nbsp;Art&nbsp;of&nbsp;Assembly&nbsp;Language<br>　　Author:&nbsp;Randall&nbsp;Hyde<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言<br>编程的各种基础知识和编程技巧,内容涉及到数据表示,存储器管理,各种数据类型,过程,与汇编语言相关的<br>体系结构,控制结构,文件,宏指令,位处理指令,字符串指令,MMX指令,类和对象,以及混合语言编程等,尤其是<br>在高级汇编语言(HLA)方面,该书给予了细致深入的讲解.对于有意学习X86汇编语言编程的程序员来说,这是<br>一本难得的好书.<br>　　本书的作者Randall&nbsp;Hyde在大学中教授汇编语言十多年,并且开发了好几个商用软件,具有丰富的汇编语<br>言开发经验.该书的英文电子版受到了成千上万的网站和高级程序员的高度评价,已经成为了高级汇编语言编<br>程方面的一本经典之作.虽然该书的出版时间不长,但在Amazon上为该书作出评价的人很多,而且几乎所有的<br>人都给予5星的评价,可见其内容之好.可以相信,随着时间的推移,它在程序员中的影响会越来越大.<br>----------------------------------------------------------------<br>25.The&nbsp;Design&nbsp;and&nbsp;Implementation&nbsp;of&nbsp;the&nbsp;4.4BSD&nbsp;Operating&nbsp;System<br>　　Auther:&nbsp;<br>　　Marshall&nbsp;Kirk&nbsp;McKusick,&nbsp;Consultant<br>　　Keith&nbsp;Bostic,&nbsp;Berkeley&nbsp;Software&nbsp;Design,&nbsp;Inc.<br>　　Michael&nbsp;J.Karels,&nbsp;Berkeley&nbsp;Software&nbsp;Design,&nbsp;Inc.<br>　　John&nbsp;S.Quarterman,&nbsp;Texas&nbsp;Internet&nbsp;Consulting<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Publishing&nbsp;Company<br>　　Published:&nbsp;04/30/1996<br>　　Book&nbsp;Info:&nbsp;是第一本完整描述伯克利最新版本4.4BSD设计和实现的权威性著作.书中介绍了4.4BSD的内<br>部结构和实现4.4BSD的系统功能中所用的概念,数据结构和算法.书中着重对4.4BSD&nbsp;和&nbsp;AT&amp;T&nbsp;System&nbsp;V&nbsp;UNIX&nbsp;<br>版本的不同处作了较详细的描述,并对其设计思想及背景作了清晰的阐述.该书对研究,开发和使用&nbsp;UNIX&nbsp;系<br>统,特别是4.4BSD&nbsp;UNIX&nbsp;实现中的一些新技术,新特点.有很大的参考价值.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>26.John&nbsp;Lions:Lions&#8217;Commentary&nbsp;on&nbsp;UNIX&nbsp;6th&nbsp;Edition&nbsp;with&nbsp;Source&nbsp;Code<br>　　Author:&nbsp;John&nbsp;Lions<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;在20世纪70年代和80年代这一时期,莱昂的几册&lt;&lt;源代码分析&gt;&gt;,曾是人们争相传看的UNIX<br>系统的"地下出版物".我们今天来审视这一著作,尽管其中的代码已属过时,但其注释者所作的大部分注释,依<br>然完美如初.要想学习操作系统原理,就必须阅读和理解源代码.莱昂的工作,使我们中间的大多数人都能达到<br>这一步.<br>　　Book&nbsp;Reviews:&nbsp;<br>　　本书中的材料确定是有点过时了,其内容不包括图形,网络以及1975年后出现的新事物.即使在1979年的<br>编译中也不再使用的线性搜索,基本数据结构和C代码还保留在本书的源代码中,而该代码面向的计算机非常<br>简单,只比存储器稍稍多一些.从中你会发现有很多粗糙之处.但是在代码中你也可以观察到其基本结构,该结<br>构沿用了很长时间,而且能够包容在计算环境中发生的巨大变化.在莱昂的分析中,你可以觉察到新鲜的,经常<br>提出问题的立场,其中的很多词语和思想都很适宜于教育和学习.莱昂非常清楚地赞赏他阅读的UNIX源代码,<br>但又立即指出其不足之处.他帮助他的学生理解蕴含在源代码中的很多思想和主题,也坦率地说明他对该代码<br>某些部分感到的困惑之处.此处重印的文献已经教育了一代人,它是计算机界中复印数量最多的一本书稿.将<br>此公开记录在案是件大好事.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----丹尼斯.M&nbsp;.里奇<br>　　最后我还想提及的是:现在,得到最广泛传播的一份地下计算机科学文献已经可以自由地使用了.我对<br>1977年中的那一天仍然是记忆犹新,那时我接到邮寄来的此书的第一份草稿,开始时我对此书并无很多期望,<br>但是最后却是逐字逐句进行了仔细阅读.20年之后,此书依旧是对一个实际操作系统工作的最好分析说明.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----肯?汤姆森<br>　　(汤姆森和里奇因为开发和实现UNIX操作系统而共同获得1983年ACM美国计算机协会图灵奖).<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>27.Operating&nbsp;Systems:&nbsp;Design&nbsp;and&nbsp;Implementation&nbsp;(Second&nbsp;Edition)<br>　　Author:&nbsp;Andrew&nbsp;S.Tanenbaum,&nbsp;Albert&nbsp;S.Woodhull<br>　　Publisher:&nbsp;Prentice&nbsp;Hall;&nbsp;2nd&nbsp;edition&nbsp;(January&nbsp;15,&nbsp;1997)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书是一本理论结合实践的杰出教材.作者不仅介绍了所有基本原理,如:进程,进程间通信,<br>输入/输出,虚拟存储,文件系统及系统安全,也介绍了线程概念,同时又详尽地讨论了MINIX系统(一种UNIX兼<br>容系统),使学生不仅能学到原理,还能通过使用MINIX来了解如何将这些原理应用到真实的操作系统中.作者<br>更新了所有原理性材料以反映该领域的新进展.基于POSIX的MINIX系统经修订后可运行在基于奔腾(Pentium)<br>的计算机上.MINIX代码可用于Ethernet和TCP/IP联网环境.每本书均附光盘,内含MINIX全部源码和可运行各<br>种计算机上的两个模拟程序.每章后均附思考题.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>28.Modern&nbsp;Operating&nbsp;Systems&nbsp;(2nd&nbsp;Edition)<br>　　Author:&nbsp;Andrew&nbsp;Tanenbaum<br>　　Publisher:&nbsp;Prentice&nbsp;Hall<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;对于软件开发专家以及计算机专业的学生来说,&lt;&lt;现代操作系统&gt;&gt;给出了操作系统设计一个<br>概念上的全面见解,包括Unix/Linux和Windows&nbsp;2000的详细个案研究.本书共分两部分,第一部分详尽讲述了<br>传统操作系统知识,包括进程,存储器管理,文件系统,I/O设备管理,死锁等内容;第二部分主要介绍了分布式<br>操作系统,包括层次协议,远程过程调用,互斥操作,分布式文件系统等专题.为加深概念的理解,本书还详细介<br>绍了四个操作系统,包括两个传统的系统UNIX和MS-DOS;两个分布式系统Amoeba和Mach.此外还简要介绍了<br>NFS,AFS,ISIS等其他几个系统.本书体系完整,内容丰富,叙述清晰,是大学计算机及相关专业学生不可多得的<br>教科书,对于从事计算机管理,开发,系统分析等职业的专业人员也是优秀的参考书.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>29.Operating&nbsp;System&nbsp;Concepts<br>　　Author:&nbsp;Abraham&nbsp;Silberschatz,&nbsp;Greg&nbsp;Gagne,&nbsp;Peter&nbsp;Baer&nbsp;Galvin<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书是计算机类专业操作系统课程的一本经典教材,自第一版问世以来,经历了近20年的锤<br>炼,被认为是该课程教材的一本"圣经".它对操作系统的概念和基本原理给出了清晰的阐述.本书所涉及的基<br>本概念和算法均基于当前商用操作系统,并在非特定操作系统的通用环境中展开讲解.书中介绍了大量与流行<br>操作系统相关的实现技术,包括Solaris2,Linux,Windows&nbsp;NT,Windows&nbsp;2000,OS/2和Apple&nbsp;Macintosh操作系<br>统.此版包括了线程,Windows&nbsp;2000的新章节,并新增了客户/服务器<br>模型和网络文件系统,嵌入式操作系统,实时操作系统,分布式操作系统等.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>30.Running&nbsp;MS-DOS<br>　　Author:&nbsp;Van&nbsp;Wolverton&nbsp;<br>　　Published:&nbsp;18&nbsp;November&nbsp;1993<br>　　Book&nbsp;Info:&nbsp;MS-DOS&nbsp;上的清晰工作!<br>　　经过10年无数次竞争,&lt;&lt;Running&nbsp;MS-DOS&gt;&gt;仍是被其它&nbsp;MS-DOS&nbsp;奉为标准的书.Van&nbsp;Wolverton&nbsp;的实际的<br>写作风格,上百张屏幕演示,使得&lt;&lt;Running&nbsp;MS-DOS&gt;&gt;成为任何时候的DOS指南畅销书.再没有哪个计算机书从<br>读者和评论家那里获得过这么多的赞扬.<br>　　这本新的,10&nbsp;周年纪念版本,包括关于&nbsp;MS-DOS&nbsp;6.2&nbsp;最新版本的重要的信息.如果您仅仅只是买了一台&nbsp;<br>PC&nbsp;机,或者只是升级到了一个新版本,&lt;&lt;Running&nbsp;MS-DOS&gt;&gt;应当成为您的第一个信息源.&lt;&lt;Running&nbsp;MS-DOS&gt;&gt;<br>实际上是由3本书合成的,包括:<br>　　MS-DOS&nbsp;介绍,以及如何同您的计算机硬件相协调<br>　　一个关于了解和使用&nbsp;MS-DOS&nbsp;的完整制导<br>　　一个命令手册,里面有定义,例子和表格,帮您快速寻找信息!<br><br>----------------------------------------------------------------<br>31.Advanced&nbsp;Programming&nbsp;in&nbsp;the&nbsp;UNIX?&nbsp;Environment<br>　　Author:&nbsp;Richard&nbsp;W.Stevens,&nbsp;Stephen&nbsp;A.Rago<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;与大多数其他操作系统类似,Unix对运行其上的程序提供了大量服务,此外,本书与其他Unix<br>编程书籍不同的是,本书除了讲述Unix系统的编程接口----即系统调用接口和由标准C函数库提供的大量函数<br>之外,还通过许多例子和基本原理对Unix编程环境做了更深入的解释和剖析,如怎样创建数据库,页面描述语<br>言的打印机驱动程序,现代拨号程序以及代理进程,处理机间通信,伪终端程序等.本书作者是Unix研究领域的<br>专家,而本书更被誉为是该领域的圣经宝典,相信每一位读者都会在学习本书的过程中体会到它的价值所在.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>32.Unix&nbsp;Network&nbsp;Programming<br>　<br>　　Unix&nbsp;Network&nbsp;Programming,&nbsp;Volume.1:&nbsp;The&nbsp;Sockets&nbsp;Networking&nbsp;API,&nbsp;Third&nbsp;Edition<br>　　Author:&nbsp;W.Richard&nbsp;Stevens,&nbsp;Bill&nbsp;Fenner,&nbsp;Andrew&nbsp;M.Rudoff,&nbsp;Richard&nbsp;W.Stevens<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;这是一本利用应用编程接口(API)编写法对计算机网络进行通信的网络编程的教程.所用的<br>API有两类:&nbsp;基于BerkeleyUNIX操作系统的"Berkeley"套接字和基于AT&amp;T开发的X&nbsp;Open传输接口XTI.本书分<br>四大部分:Ⅰ.引论和TCP/IP;Ⅱ.基本套接字(Sockets);Ⅲ.高级套接字;Ⅳ.XTI&nbsp;X/Open传输接口.四个附录:&nbsp;<br>A.IPv4,IPv6,ICMPv4和ICMPv6;B.虚拟网络;C.调试技术;D.一些关键源代码.全书内容全面,实用性强,是一本<br>极好的参考书.<br>　　UNIX&nbsp;Network&nbsp;Programming,&nbsp;Volume&nbsp;2:&nbsp;Interprocess&nbsp;Communications&nbsp;(2nd&nbsp;Edition)<br>　　Author:&nbsp;W.Richard&nbsp;Stevens<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;一种良好的进程间通信(IPC)形式是复杂精致的UNIX程序性能之关键.本书全面深入地介绍<br>了各种进程间通信形式,包括消息传递,同步,共享内存及远程调用(RPC).作者从介绍IPC的基础及其所要解决<br>的问题开始,逐步引导读者学习如何使System&nbsp;V&nbsp;IPC和新的Posix标准两者都达到极至.书中Pthread的内容有<br>较大的扩充,所附的许多例子反映多个线程而不是多个进程.读者通过本书将能掌握各种现行的IPC技术,其中<br>有:管道和FIFO;Posix和System&nbsp;V消息队列;互斥锁和条件变量;读写锁;记录上锁;Posix和System&nbsp;V信号灯<br>;Posix和System&nbsp;V共享内存;Solaris门和Sun&nbsp;RPC;IPC技术的性能测量.本书内容详尽且具有权威性,几乎每<br>章都有精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,本书也可作为网络研究和开发人<br>员的自学教材和参考书.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>33.<a href="http://www.shubulo.com/viewthread.php?tid=32803" target=_blank>TCP/IP&nbsp;Illustrated</a><br>　<br>　　Web&nbsp;site:&nbsp;<a href="http://www.kohala.com/start/" target=_blank>http://www.kohala.com/start/</a><br>　　TCP/IP&nbsp;Illustrated,Volume&nbsp;1:The&nbsp;Protocols<br>　　Author:&nbsp;W.Richard&nbsp;Stevens<br>　　Publisher:&nbsp;Addison-Wesley<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;&lt;&lt;TCP/IP详解,卷1:协议&gt;&gt;是一本完整而详细的TCP/IP协议指南.描述了属于每一层的各个<br>协议以及它们如何在不同操作系统中运行.作者用Lawrence&nbsp;Berkeley实验室的tcpdump程序来捕获不同操作<br>系统和TCP/IP实现之间传输的不同分组.对tcpdump输出的研究可以帮助理解不同协议如何工作.本书适合作<br>为计算机专业学生学习网络的教材和教师参考书.也适用于研究网络的技术人员.<br>　　TCP/IP&nbsp;Illustrated,Volume&nbsp;2:The&nbsp;Implementation<br>　　Author:&nbsp;Gary&nbsp;R.Wright,&nbsp;W.Richard&nbsp;Stevens<br>　　Publisher:&nbsp;Addison-Wesley<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书完整而详细地介绍了TCP/IP协议是如何实现的.书中给出了约500个图例,15,000行实际<br>操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现.本书不仅说明了插口API和协议族的关系以及主机<br>实现与路由器实现的差别.还介绍了4.4BSD-Lite版的新的特点,如多播,长肥管道支持,窗口缩放,时间戳选项<br>以及其他主题等等.读者阅读本书时,应当具备卷1中阐述的关于TCP/IP的基本知识.本书适用于希望理解<br>TCP/TP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员.<br>　　TCP/IP&nbsp;Illstrated,Volume&nbsp;3:TCP&nbsp;for&nbsp;Transactions,HTTP,NNTP,and&nbsp;the&nbsp;UNIX&nbsp;Domain&nbsp;Protocols<br>　　Author:&nbsp;W.Richard&nbsp;Stevens<br>　　Publisher:&nbsp;Addison-Wesley<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书是&lt;&lt;TCP/IP详解系列&gt;&gt;的延续.主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展<br>,使客户-服务器事务更快,更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进<br>程之间通信的一种手段.当客户与服务器进程在同一台主机上时,UNIX域协议通常要比TCP/IP快一倍.本书同<br>样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序.本书适用于希望理解TCP/IP如何工作的<br>人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员.<br>　　作者简介:<br>　　Gary&nbsp;R.Wright&nbsp;研究TCP/IP多年.他是Connix公司的董事长,这个公司的基地在康涅狄格州,它提供<br>Internet接入和咨询服务.W.Richard&nbsp;Stevens(1951-1999)是一位非常受人尊敬的专家,除了&lt;&lt;TCP/IP详解&gt;&gt;<br>三卷本外,他还有其他两部最为畅销的作品;&lt;&lt;UNIX环境高级编程&gt;&gt;和&lt;&lt;UNIX网络编程&gt;&gt;(两卷本).<br>&nbsp;<br>----------------------------------------------------------------<br>34.Routing&nbsp;TCP/IP<br>　<br>　　CCIE&nbsp;Professional&nbsp;Development:Routing&nbsp;TCP/IP&nbsp;Volume&nbsp;1<br>　　Author:&nbsp;Jeff&nbsp;Doyle<br>　　Publisher:&nbsp;Cisco&nbsp;Press;&nbsp;1st&nbsp;edition&nbsp;(July&nbsp;1,&nbsp;1998)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书是第一本详细而又完整地介绍互联网络内部网关路由选择协议(IGRP)的专业书籍,堪称<br>有关IGRP方面不可多得的经典之作.本书共分三个部分.第一部分主要介绍了网络和路由选择的基本知识,对<br>TCP/IP和静态,动态路由选择技术作了一个整体的回顾.第二部分是本书的精华,这一部分详细深入地讲述了<br>各种常用的内部网关路由选择协议,如静态路由,RIP,RIPv2,IGRP,EIGRP,OSPF,ISIS等,每一章除了对该协议<br>的实现机制和参数详尽阐述,使读者对协议的实现原理有一个清晰的理解外,还通过在实际网络环境中的实例<br>,详细地论述了该协议在Cisco路由器上的配置和故障处理方法,使读者获取大量解决实际问题的专业技能.第<br>三部分介绍了如缺省路由,路由过滤等多种有效的路由控制工具,用来创建和管理多个IP路由选择协议的协调<br>工作.本书不仅适合那些需要准备通过CCIE考试的考生,而且也适合任何需要完整理解TCP/IP内部路由选择协<br>议的网络设计和工程人员阅读.本书中对协议细节的讲解和对网络实例的探讨相信会让读者获益匪浅.<br>　　CCIE&nbsp;Professional&nbsp;Development&nbsp;Routing&nbsp;TCP/IP&nbsp;Volume&nbsp;2<br>　　Author:&nbsp;Jeff&nbsp;Doyle,&nbsp;Jennifer&nbsp;DeHaven&nbsp;Carroll<br>　　Publisher:&nbsp;Cisco&nbsp;Press;&nbsp;1st&nbsp;edition&nbsp;(April&nbsp;11,&nbsp;2001)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书深入系统地阐述了TCP/IP路由技术,内容包括几种重要的网络协议,如外部网关协议<br>(EGP),边界网关协议(BGP4),以及相应的高级IP路由技术与应用――网络地址转换,IP组播路由技术,IPv6技<br>术,路由器管理等.本书共分9个章节,首先介绍并讨论了主题内容的基本原理,接着是设计用来展示真实网络<br>环境中相关概念的一系列配置范例,最后提供给读者经实践验证过的故障排除方法以解决网络可能会出现的<br>问题.重点介绍了自治系统之间的路由选择策略以及诸如组播和IPv6等更具挑战性的路由选择和实施技术.<br>----------------------------------------------------------------<br>35.Data&nbsp;and&nbsp;Computer&nbsp;Communications,Seventh&nbsp;Edition<br>　　Author:&nbsp;William&nbsp;Stallings<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书是著名计算机专业作家&nbsp;William&nbsp;Stallings&nbsp;的经典著作之一,内容涉及最基本的数据<br>通信原理,各种类型的计算机网络及多种网络协议和应用.这一版对原有内容做了彻底的修订和重组,使新版<br>对通信各专题的阐述更全面,更清晰.同时,新版加强了无线通信和组网,吉比特以太网,区分服务,MPLS和<br>TCP/IP实现细节等内容.此外,本书还包括词汇表,参考文献,缩写词对照表.每章都附有习题和建议,以便读者<br>进一步阅读.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>36.Programming&nbsp;Pearls,&nbsp;2nd&nbsp;Edition<br>　　Author:&nbsp;Jon&nbsp;Bentley<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;2&nbsp;edition&nbsp;(September&nbsp;27,&nbsp;1999)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;如果让程序员们列出他们最喜欢的书籍,Jon&nbsp;Bentley的&lt;&lt;编程珠玑&gt;&gt;通常可以位于经典之<br>列.如同珍珠来自于曾经折磨牡蛎的沙粒,程序设计的珍珠也来自曾经折磨程序员的实际问题.Bentley的珍珠<br>建立在坚实的工程学基础上,在洞察力和创造力的王国中为那些恼人的问题提供了独特而巧妙的解决方案.通<br>过一些精心设计的有趣而且颇具指导意义的程序,本书对众多实用程序设计技巧及基本设计原则作了清晰而<br>机智的描述.因此,&lt;&lt;编程珠玑&gt;&gt;得到各个层次程序员的青睐并不让人感觉意外.<br>　　为了反映当今的程序设计方法和环境,Bentley在本书中彻底更新了第一版里的大多数素材.此外,他还新<br>增加了以下三个方面的内容:1.测试,调试和计时&nbsp;2.集合表示&nbsp;3.字符中问题<br>　　对原来的所有程序都重新进行了改写,并生成了等量的新代码.您可以从本书网站<br>([ur<a href="http://www.programmingpearls.com)[/url]获取所有程序的C或C++实现." target=_blank>www.programmingpearls.com)[/url]获取所有程序的C或C++实现.</a><br>　　Book&nbsp;Reviews:&nbsp;<br>　　&lt;&lt;编程珠玑&gt;&gt;第一版是我职业生涯早期阅读过的最有影响力的书籍之一,第一次从该书中学到的许多观<br>点很久以后仍然使我受益匪浅.Jon在第二版中对素材进行了大量更新,这些新例子的新鲜程度给我留下了深<br>刻的印象.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----Steve&nbsp;McConnell&nbsp;&lt;&lt;Code&nbsp;<br>Complete&gt;&gt;等多部畅销书作者<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>37.The&nbsp;Mythical&nbsp;Man-Month:&nbsp;Essays&nbsp;on&nbsp;Software&nbsp;Engineering,&nbsp;20th&nbsp;Anniversary&nbsp;Edition<br>　　Author:&nbsp;Frederick&nbsp;P,&nbsp;Brooks,Jr.<br>　　Publisher:&nbsp;Addison-Wesley&nbsp;Professional;&nbsp;1st&nbsp;edition&nbsp;(August&nbsp;2,&nbsp;1995)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;IBM大型电脑之父&nbsp;Fred&nbsp;Brooks&nbsp;二十余年开发经验的汇集,远谋深虑,字字珠玑.技术之巧与<br>人文之美的完美结合.本书自第一版以来,畅销二十余年不衰,是软件领域绝无仅有的必读经典.<br>　　作者简介:<br>　　Frederick&nbsp;P&nbsp;曾荣获美国计算机领域最具声望的图灵奖(A.M.Turing&nbsp;Award)桂冠.美国计算机协会(ACM)<br>称赞他"对计算机体系结构,操作系统和软件工程做出了里程碑式的贡献."<br>　　Brooks&nbsp;博士是北卡罗莱纳大学&nbsp;Kenan-Flagler&nbsp;商学院的计算机科学教授.他被认为是"IBM&nbsp;360系统之<br>父",曾担任了360系统的项目经理,以及360操作系统项目设计阶段的经理.凭借在上述项目中的杰出贡献<br>,Brooks博士以及Bob&nbsp;Evans和Erich&nbsp;Bloch在1985年荣获了美国国家技术奖(National&nbsp;Medal&nbsp;of&nbsp;<br>Technology).Brooks博士早期曾担任IBM&nbsp;公司Stretch和Harvest计算机的体系结构设计师.<br>　　Brooks&nbsp;博士创立了北卡罗莱纳大学的计算机科学系,并在1964～1984年期间担任系主任.他还曾任职于<br>美国国家科技局和国防科学技术委员会.他目前的教学和研究方向是计算机体系结构,分子模型绘图和虚拟环<br>境设计.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>38.The&nbsp;Pragmatic&nbsp;Programmer<br>　　Author:&nbsp;Andrew&nbsp;Hunt,David&nbsp;Thomas<br>　　Publisher:&nbsp;Addison&nbsp;Wesley<br>　　Published:&nbsp;November&nbsp;24,&nbsp;1999<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书直击编程阵地,穿过了日益增长的现代软件开发的规范和学术,对核心过程进行了审视<br>----该过程采取了供需结合的工作方式和令人欣喜的可维护代码.本书包含的内容从个人责任和职业发展到<br>保持代码的灵活性,使之易于改编和重用.<br>　　本书由各个相对独立的章节组成,其间不乏好玩的轶事,详细的实例和有趣的对话,描述了软件开发各个<br>方面的最好实践和主要缺陷.无论你是一个新入门的编码者,一个有经验的程序员,还是负责软件项目的经理,<br>通过每日学习这些课程,都会在个人生产力,准确率和工作满意度上有快速的增长.你所学到的技巧和开发习<br>惯和态度将为你在职业生涯中取得长期成功奠定基础.你将成为又一Pragmatic&nbsp;Programmer.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>39.The&nbsp;Art&nbsp;of&nbsp;UNIX&nbsp;programming<br>　　Author:&nbsp;Eric&nbsp;S.&nbsp;Raymond<br>　　Publisher:&nbsp;Addison&nbsp;Wesley<br>　　Published:&nbsp;October&nbsp;2,&nbsp;2003<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;荣获美国Software&nbsp;Development&nbsp;Productivity&nbsp;Award大奖作品!<br>　　本书是作者封笔30年后历时5年创作而成,是一部难得的软件工程方面的佳作.作者首次将哲学,设计模式<br>,工具,文化和传统结合在一起,使得UNIX成为世界上最好且最具创新意义的软件,并展示了如何将其拓展到<br>Linux和当今的开源(open-source)运动中:通过取自最主要的开源项目中的示例,作者向UNIX和Linux编程人<br>员展示了如何更巧妙地创建软件,使其更雅致,更灵巧,更具可重用性且具有更长的生命期<br>　　本书主要介绍了Unix系统领域中的设计和开发哲学,思想文化体系,原则与经验,由公认的Unix编程大师,<br>开源运动领袖人物之一Eric&nbsp;S.Raymond倾力多年写作而成.包括Unix设计者在内的多位领域专家也为本书贡<br>献了宝贵的内容.本书内容涉及社群文化,软件开发设计与实现,覆盖面广,内容深邃,完全展现了作者极其深<br>厚的经验积累和领域智慧.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>40.Peopleware:Productive&nbsp;Projects&nbsp;and&nbsp;Teams<br>　　Author:&nbsp;Tom&nbsp;DeMarco,&nbsp;Timothy&nbsp;Lister<br>　　Publisher:&nbsp;Dorset&nbsp;House&nbsp;Publishing&nbsp;Co<br>　　Published:&nbsp;February&nbsp;28,&nbsp;1999<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;Tom&nbsp;Demarco&nbsp;和Tim&nbsp;Lister&nbsp;的"Peopleware:Productive&nbsp;Projects&nbsp;and&nbsp;Teams"第一版于<br>1987&nbsp;年出版,专门讨论了软件开发和维护的团队管理问题,向传统的管理方法提出了挑战,推崇人本管理思想<br>,给予软件工人自由和信任.和&lt;&lt;人月神话&gt;&gt;一样,该书现在已经成为软件团队管理的经典之作.1995&nbsp;年<br>,Larry&nbsp;Constantine&nbsp;出版了一部题为"Constantine&nbsp;论人件"的论文集,扩大了"人件"概念,把那些使用软件<br>的人也包括进来.1999&nbsp;年2&nbsp;月,&lt;&lt;人件&gt;&gt;第二版出版,增补了8&nbsp;章新内容.这些增补的内容视角更加宽广,对比<br>较大型的组织中的团队如何运作进行了探索.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>41.Computer&nbsp;graphics&nbsp;C&nbsp;Version&nbsp;2nd&nbsp;ed<br>　　Author:&nbsp;Donald&nbsp;Heam,&nbsp;M.Pauline&nbsp;Baker<br>　　Publisher:&nbsp;Pearson&nbsp;US&nbsp;Imports&nbsp;&amp;&nbsp;PHIPEs<br>　　Published:&nbsp;May&nbsp;24,&nbsp;1996<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;这是计算机图形学领域的一部经典之作,作者Foley,van&nbsp;Dam等是国际图形学界的著名学者,<br>学术带头人,而且本书英文版自出版以来,一直是各国大学计算机图形学课程的主要教科书.本书是高等院校<br>计算机专业本科生,研究生计算机图形学课程的理想教材,是相关领域专业人员开展研究工作的优秀参考书.<br><br>----------------------------------------------------------------<br>42.Tricks&nbsp;of&nbsp;the&nbsp;3D&nbsp;Game&nbsp;Programming&nbsp;Gurus-Advanced&nbsp;3D&nbsp;Graphics&nbsp;and&nbsp;Rasterization<br>　　Author:&nbsp;Andre&nbsp;LaMothe<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书是著名游戏程序设计类书籍作者Andre&nbsp;LaMothe的畅销书.在书中随处可见许多有趣但<br>又有一定难度的源程序.作者循循善诱地从程序设计的角度介绍了在Windows环境下进行游戏开发所需的全部<br>知识,包括Win32编程以及DirectX中所有主要组件(包括DirectDraw,DirectSound,DirectInput和<br>DirectMusic).书中还用单独的章节详细讲授了2D图形学和光栅化技术,游戏算法,多线程编程,文本游戏和解<br>析,人工智能(包括模糊逻辑,神经网络和遗传算法),物理建模(完全碰撞反应,动量传递和正反向运动学)及实<br>时模拟等游戏程序开发中的关键技术.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>43.Compilers&nbsp;Principles,&nbsp;Techniques,&nbsp;and&nbsp;Tools<br>　　Author:&nbsp;Alfred&nbsp;V.&nbsp;Aho,&nbsp;Ravi&nbsp;Seth,&nbsp;Jeffrey&nbsp;D.&nbsp;Ullman<br>　　Publisher:&nbsp;Addison&nbsp;Wesley&nbsp;(January&nbsp;1,&nbsp;1986)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;本书另外一个响亮的名字就是龙书.原因是这本书的封面上有条红色的龙.里面讲解的核心<br>编译原理至今都没有变过,所以一直到今天,它的价值都非凡.这本书最大的特点就是一开始就通过一个实际<br>的小例子,把编译原理的大致内容罗列出来,让很多编译原理的初学者很快心里有了个底,也知道为什么会有<br>这些理论,怎么运用这些理论.而这一点是我感觉国内的教材缺乏的东西,所以国内的教材都不是写给愿意自<br>学的读者,总之让人看了半天,却不知道里面的东西有什么用.<br><br>&nbsp;<br><br>----------------------------------------------------------------<br>44.Computer&nbsp;Systems&nbsp;A&nbsp;Programmer's&nbsp;Perspective<br>　　Author:&nbsp;Randal&nbsp;E.&nbsp;Bryant,&nbsp;David&nbsp;R.&nbsp;O'Hallaron<br>　　Publisher:&nbsp;Prentice&nbsp;Hall;&nbsp;1st&nbsp;edition&nbsp;(August&nbsp;13,&nbsp;2002)<br>　　Amazon&nbsp;Reviews:&nbsp;Amazon.com<br>　　Book&nbsp;Info:&nbsp;AMAZON五星图书,最伟大计算机科学教材之一<br>　　卡耐基梅隆大学计算机学院院长,IEEE和ACM双院士倾力推出<br>　　超过80所美国和世界一流大学计算机专业选用本书为教材<br>　　本书英文版久负盛名,被众多专业人士称为"最伟大的计算机教材"之一,著名的美国卡内基梅隆大学计算<br>机科学系一直将本书作为教材使用,程序员眼中的透彻讲述计算机系统的扛鼎之作.作者Randal&nbsp;E.&nbsp;Bryant是<br>卡耐基梅隆大学的计算机科学系主任,ACM和IEEE双院士(Fellow),其研究成果多次获得ACM和IEEE颁发的大奖<br>.本书共分十三章,分别介绍了信息的表示和处理,程序的机器级表示,处理器体系结构,存储器层次结构,静态<br>和动态链接,虚拟存储器,系统级I/O,网络编程和并发编程等精彩内容.其目的是解释计算机系统的所有本质<br>概念,并向读者展示这些概念是如何实际地影响应用程序的正确性,性能和实用性.与其他主要针对系统构造<br>人员的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的.本书为软件和硬件之间搭起了<br>一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度去理解一个程序及其行为的途径,这也填补了国内<br>计算机系统教学中的一个空白.本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次<br>型的计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚<br>拟存储器,到编译系统,到动态加载库,到最后的用户应用.本书提供了大量的例子和练习及部分答案.尤其值<br>得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解.<br>　　Book&nbsp;Reviews:&nbsp;<br>　　我坚信从程序员的角度来看计算机系统对教会学生计算机的内部结构非常有帮助.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----Kostas&nbsp;Daniilidis,宾夕法尼亚大学<br>　　这本书讲述事物的方法与众不同,但是和我想要的课程进行方式类似.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----John&nbsp;Greiner,Rice大学<br>　　这是一项出色的工作,是这一领域教学方法的一次革命.<br>　　　　　　　　　　　　　　　　　　　　　　　　　　　　　----Michael&nbsp;Scott,罗切斯特大学<br></p>
<img src ="http://www.cppblog.com/milkyway/aggbug/61038.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-09-05 19:31 <a href="http://www.cppblog.com/milkyway/articles/61038.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复旦44岁博士生猝死桌前 为搞学术5年未毕业</title><link>http://www.cppblog.com/milkyway/articles/47141.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 15 Apr 2008 10:13:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/47141.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/47141.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/47141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/47141.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/47141.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em"><strong>502室 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">3月5日下午，复旦大学国际关系和公共事务学院(以下简称国关学院)政治学博士郑明给大师兄李开学发了份电子邮件，这是当天上午国关学院老师顾莺转发过来的一份招聘信息，国家税务总局(扬州)党校次日会来复旦招人，顾莺特意在信里提醒博士生们，&#8220;请仔细看附件，待遇丰厚&#8221;。 </p>
<p style="TEXT-INDENT: 2em">
<p style="TEXT-INDENT: 2em">李开学比郑明早2年考入复旦国关学院，是政治学教授浦兴祖的弟子里年龄最大的一位。在这份邮件里，郑明告诉这位正在找工作的大师兄，如对这个单位有兴趣，记得第二天下午去谈谈；同时，受导师之托，他顺便提醒这位博士就读已经延期快2年的大师兄，要尽快和导师联系，因为博士论文预答辩已经预定在3月20日进行，而导师马上就要被复旦抽调去井冈山干部学院讲学一年。 </p>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">李开学住在复旦北区138号502室。从2003年9月考入复旦起，他已经在这个地方住了四年半，如果没有意外，通过这个月的论文预答辩以及随后的盲审和正式答辩，他将在3个月后拿到博士学位顺利毕业。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郑明是打不通李开学电话才转发这封邮件的，他们已经联系不上这位大师兄十多天了，这期间李开学的手机关机，宿舍电话没人接，但蹊跷的是，每天晚上能看到502室的灯始终亮着。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">直到当天深夜，郑明依然没有收到李开学对这封重要邮件的回复，晚上11点多，暗自有点发急的郑，和李开学的另外一位师弟郭湘一起去502室找他，从敲门到使劲打门，屋里始终悄无声息，门缝里依旧透出橘黄色的灯光。已经有不祥预感的郑明马上找到复旦北区宿舍管委会，一个叫罗健博的老师迅即找来保安打开门。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郑明回忆，门打开后，自己走在后面，师弟郭湘第一个冲进宿舍，见李开学坐在电脑椅上，背对着门，鼠标悬在桌缘，电脑还开着，李的头歪在一边，仿佛睡着了。性急的郭湘从后面拍了一下李的肩膀，嘴里边嚷着：&#8220;大师兄，好几天不见，干什么呢？&#8221;见李没反应，余顺手把他的头扶正，这才发现这个大师兄双目紧闭，脸色已经发黑。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">120和警方于3月6日凌晨先后赶到，警方的现场勘验笔录显示，这个44岁的博士生，被发现时已经死亡多时，&#8220;嘴角黑紫，尸斑呈暗红色，尸僵已缓解，头面部呈巨人观，角膜混浊，口鼻腔有红褐色液体流出至右面部(已干涸)，口唇粘膜青紫，呈皮革样化改变。&#8221; </p>
<p style="TEXT-INDENT: 2em"><strong>从元宵到清明 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">3月6日这一天，武汉<a href="http://weather.qq.com/preend.htm?dc211.htm" target=_blank><img alt=点击查看武汉及更多城市天气预报 src="http://img1.qq.com/weather/pics/5619/5619723.gif" border=0></a>某公司的法务助理谢芳正在起草一份法律函件。已经十余天没有丈夫消息的她，在心神不定中突然接到在武汉大学读研究生的堂弟李魁的电话，说她在复旦读博士的丈夫李开学病了，让她带上儿子赶紧一起去上海看看。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">李开学的两个妹妹此前已经从李魁那里得知真相，连夜从老家襄樊<a href="http://weather.qq.com/preend.htm?dc196.htm" target=_blank><img alt=点击查看襄樊及更多城市天气预报 src="http://img1.qq.com/weather/pics/5619/5619723.gif" border=0></a>乡下包了一辆车出发，与谢芳母子在武汉天河机场会合。在虹桥机场降落后的摆渡车上，李开学的小妹李咏笛强忍住泪水，悄悄和侄子李挽澜先打了预防针，&#8220;好孩子你是男子汉，要做好准备，你爸爸已经不在了。&#8221;李咏笛不敢告诉嫂子谢芳，担心她知道后在路上就撑不住了，&#8220;小哥李开学是嫂子的天，小哥出事了，就是嫂子的天塌了。&#8221; </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">李挽澜在华中师大读大一，这个19岁的孩子也怕妈妈知道，扑在姑姑怀里无声地抽泣。蒙在鼓里的谢芳，那天还特意换上了一件红毛衣和一条红裙子，想给病中的李开学带去点喜气和开心，&#8220;他喜欢我穿鲜艳点的颜色&#8221;。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">次日在宝兴殡仪馆里，看到已经面目全非的李开学遗体，始终不愿面对噩耗的谢芳瘫在地上。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">复旦保卫处交给谢芳一个塑料袋，里面是李开学留给她的最后几件遗物：一张复旦学生校园卡，一张建行龙卡，一个学生证，120元现金，一只已经磨损得毫无光泽的摩托罗拉M3888手机。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">警方现场勘察结论排除了他杀，但对死因和死亡时间没有做出结论。他的师弟郭湘说从现场看大家都觉得比较符合猝死的特征，李咏笛也觉得一向开朗乐观的小哥绝不会自杀。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郭湘肯定，从2月22日起李开学就再也没有下过学生公寓楼，因为事后检查他的学生校园卡，公寓门禁电脑显示，他最后进入这个学生公寓的时间是2月21日晚上8点31分。谢芳从电信公司调出的通话记录单也显示，李开学手机出现的最后一次有效通讯记录，恰是这天晚上9点43分40秒发出的一条短信。而李开学的常用邮箱也显示，信箱里最后一封已读邮件，是他在江苏泰州工作时的同事施劲华发来的问候信，2月21日后所有26封邮件都显示&#8220;未读&#8221;。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">那天正是元宵节，这所著名的大学刚刚开学。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">一位在复旦步行街吃饭时结识李开学的国关学院博士后刘守刚，事发后在博客里感叹&#8220;开学了，开学却不在了&#8221;。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郑明回忆，李开学参加了当天晚上的节日聚餐，这是他最后一次出现在师友当中。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">那天也是李开学最后一次和谢芳联系，他在短信里劝慰妻子，毕业了就一切都会好起来的。一周前，回家过春节返校的他和妻子在武汉分别，坐在火车上的李开学，穿着妻子买的黑色外套和深灰色羊毛衫。去世时他身上穿的也是这身衣服。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">502号公寓，包括一间公用客厅和A、B、C、D四间学生宿舍，按照李开学和复旦北区管委会签订的一份入住期为3年的协议，从2003年9月起，李开学就一直住在其中的A舍，谢芳曾经陪丈夫在这里住过一年，对这个房间极为熟悉。房间不大，左边靠墙是书架，右边是一张单人床，靠窗是放电脑的书桌，窗户朝南，往外可以看到对面的公寓宿舍和远处的光华楼。郭湘说，事实上从2007年7月后，整个502室里，就只剩下第二次博士延期的李开学一人独居。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">谢芳后悔4年前不该离开先生去武汉打工，&#8220;如果一直在他身边照顾他就好了&#8221;。她始终无法想象，从2月21日晚深夜和外界失去联系起，到3月5日深夜被发现去世，这13天里，丈夫李开学就是这样，在这个房间里的电脑面前一动不动地度过。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">从3月6日晚到清明节，谢芳在上海呆了整整一个月。这一个月里她的亲属和复旦校方反复协商，谈判处理善后事宜，双方在法医鉴定和责任归属问题上一度陷入僵局。谢芳则陷入痴痴的等待，始终不肯相信丈夫已经离去的她，打发儿子先回武汉上学，说自己&#8220;要等爸爸毕业后一起合影再回家&#8221;。 </p>
<p style="TEXT-INDENT: 2em"><strong><br><br>课题和论文 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2003年考入复旦的李开学，是政治学教授浦兴祖曾经带过的十名博士生之一，李和同一年考入复旦的曹绪飞，当初报考的是复旦另外两位博导，后被调整到浦兴祖门下，成为浦门弟子中的两名开山大弟子，一点区别是，李开学是脱产读博，而曹是在浦东区委工作的在职博士生。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">在去世半个月前的2008年春节，李开学曾发短信给导师浦兴祖拜年，浦对这个短信印象很深，因为李开学很少见地称他为&#8220;恩师&#8221;。浦兴祖回忆，他也很高兴地给李开学回短信，祝他在新的一年&#8220;顺利通过论文，满意解决就业&#8221;。短信里浦没忘加上一句，要求李开学在新学期初预答辩前，把写好的论文给他看看。 </p>
<p style="TEXT-INDENT: 2em">&nbsp;</p>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">浦兴祖和郑明回忆，李开学的博士论文题目是新疆生产建设兵团的研究，经过讨论最后定为相对准确一点的《超省级结构研究》。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">按照复旦的规定，博士论文要过五关，开题报告、中期考核、预答辩、论文盲审、答辩。浦兴祖的苦衷是，这个开山大弟子的论文，始终没能通过预答辩这一关。一直到李去世，四年半时间，他只看到过李提交的博士论文的一个章节，那还是在2007年3月的一次预答辩现场，这也是李开学唯一参加过的一次论文预答辩。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">李开学拿着这一章论文直接来到现场，表示要在预答辩通过后的一个月内拼一下，把后面的四章赶出来参加盲审。浦兴祖回忆，预答辩席上一位陈姓老师不同意，对李开学说，开学啊，还有两三个礼拜你怎么拼？要拼四章，你会把命拼掉的，你还是推迟吧。1年前这个后来被指称一语成谶的细节，也给担任现场记录秘书的郑明留下了极深的印象。回到座位后的李开学随后陷入短暂沉默，嘟囔了一句，&#8220;不让我试着冲一下，我还不如退学呢。&#8221;郑明很清晰地记得，听到这话他怕事情闹僵，赶紧扯了扯大师兄衣角。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">预答辩结束后，一位老师对浦兴祖说，今天有的同学本就不应该来参加答辩的。对这一隐晦的批评，浦兴祖有点恼火，他当场回应说：&#8220;又不是我要他来的，他自己只写了一章就跑到现场来了，我又不能说不要他参加。&#8221; </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郭湘说，今年65岁的浦兴祖，是大陆恢复政治学后第一批政治学者，却在复旦的博导资格评定上颇历坎坷，直到2003年1月才获最终资格认定，对此有几分敏感，当可理解。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">而李的懊丧也自有原因，这是他第三次折在预答辩这一关上。而此前的三年，他的相当部分时间，都在参与浦兴祖主持的国家九五社科重点课题《中华人民共和国政治制度史》，并担任第一卷副主编。这也是李开学出事后，网络上出现&#8220;复旦博士被逼死在书桌前&#8221;声音的主要原因。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">浦兴祖承认自李开学2003年考入复旦始，就已进入这个课题，另外两名博士生郑明、王芳也随后参与进来。浦兴祖一开始即对李开学提出要求，希望他把做课题和写论文结合起来进行研究，做到两不误。在得到家属授权进入李开学工作邮箱后，记者发现其往来邮件也显示，自进入复旦以来的3年时间，参与这个课题成为他的主要工作。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">浦门子弟会定期在浦兴祖家里聚会，称为&#8220;聊学&#8221;。2005年6月13日的一次&#8220;聊学&#8221;中，李开学阐明了其对1949-1956年阶段的《中国政治制度史》的写作框架。次年3月19日，浦兴祖在给李等博士生的群发邮件中提出：&#8220;时间无情而逝，进度越发急迫。在保证质量的前提下，盼各位抓紧撰、改、审。&#8221;5月25日的一份邮件里，浦兴祖要求课题组成员&#8220;7月底一定要写出全部初稿，故必须以时限为第一，10来天一章，至少将前一、二年收集的资料进行初步梳理与分析，先形成一个框架，质量待8、9两月再提升。&#8221;8月3日，浦兴祖专门给李开学发邮件，明确提出&#8220;盼你集中精力，进度优先，兼顾质量，尽快逐一推出新稿(要倒计时，规划一下，多长时间一章)。&#8221; </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">这些往来邮件还提到关于诸如署名等学术规范的问题，&#8220;一般情况下，博士生在前，老师在后。特殊情况下，如果初稿较成熟，老师不用太费力，则属博士生一人名字；若老师费了很大力气，则老师在前，学生在后。其他老师的审阅工作与有关人员的贡献也都在各卷上写明。&#8221; </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">必须承认，几乎每封邮件里，浦兴祖都不忘劝大家劳逸结合注意身体。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">浦兴祖很快发现问题，李开学的进度明显比其他人要慢，甚至影响到了博士论文写作，一个明显的例证是在前述2007年3月那次失败的预答辩前，李开学未能做好2006年春、秋季的两次预答辩准备。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">对此前网络上认为导师让李开学做课题影响了做博士论文的看法，浦兴祖觉得委屈。郑明回忆，其实此期间浦兴祖曾经两次让他悄悄传话征求李开学的意见，问他是否愿意放弃课题集中精力做论文。浦兴祖解释，之所以不对李开学直接说，是担心伤害这个年龄最大的大弟子的自尊心。但李开学每次的答复都是&#8220;问题不大，有信心搞出来&#8221;。&#8220;我是湖北人，老师放心，我们湖北人都很剽悍的！&#8221;浦兴祖对李开学的这个回答印象很深。 </p>
<p style="TEXT-INDENT: 2em"><strong>最后一搏 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">最后一次转折，发生在2007年1月初。浦兴祖决定对课题组人员展开重大调整，明确要求李开学和郑明、王芳等三人都退出，集中精力做论文，浦说这次李开学终于表示&#8220;很高兴退出&#8221;。由是，李开学原来担任第一卷副主编的课题，只完成了《干部人事制度》一章的初稿。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2007年秋季开学后，郑明和王芳准备预答辩，延迟了一年的李开学又一次准备参加，这是第三次机会。但他对郑明说只写完了3章，郑明建议他将3章拉长成5章，征得浦兴祖意见后争取参加预答辩的资格。浦兴祖回忆，这次他对李开学说&#8220;你要是能在预答辩前赶出来剩下的论文就参加，实在赶不出来就还是再顺延半年吧。&#8221;直到那次预答辩前，浦兴祖未能看到李开学的论文，李开学最终还是放弃了这次预答辩机会。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郑明分析，2007年初发生的那幕戏剧性的预答辩，也许给李开学留下了对导师浦兴祖的心结。两个细节是，随后的2007年底，浦兴祖曾在《文汇报》上撰文称应当研究对策来保证当前研究生的论文质量，而去世前夕元宵节晚的那次节日聚餐上，李开学也曾对参加聚餐的师弟郭湘抱怨，导师不让他论文通过，是他老没法毕业的原因。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2008年3月的论文预答辩，是李开学2年博士延长期间的最后一次机会，4月份起导师浦兴祖就要远赴井冈山讲学一年。在此之前，他的同年在职博士生同学曹绪飞，在延长1年后已于2007年毕业，比他晚入学的师弟郑明和师妹王芳也都相继通过论文正式答辩，获得博士学位。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">这段时间的李开学，深居简出，其压力可想而知。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">他在泰州外经贸局工作时的同事施劲华回忆说，可能是觉得没面子，李开学自从博士延期后，同旧日同事很少往来。2007年底，他在武汉大学读硕士时的师兄田国兴，曾经给他宿舍多次打电话，却总是无人接听，发邮件向他询问论文进展情况，也无回音。2008年春节前田国兴到沪出差，有机会见到了李开学，田回忆，那次在复旦招待所，李开学跟他坦言论文压力极大。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">但谁也没想到他竟会等不到论文通过的那天。现在商务部挂职的施劲华，接到记者电话时才知道这个噩耗，震惊不已。而田国兴第三次见到李开学，已经是在春节后的宝兴殡仪馆。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">悲伤和叹息之余，郑明他们又为这个大师兄的论文迟迟出不来颇为困惑。郭湘分析，论文出不来，无外四个原因：对自己要求太高，不想混；假定论文题目很难，学力不够；其他事情耽误了，包括课题和兼职等；本人很懒，不想写。郭湘目前能肯定的是，李开学绝不是最后一个原因。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">他的硕士导师之一施雪华教授也难以理解，到底是什么原因使得这个过去表现还不错的弟子在这五年的博士生历程中步履维艰，甚至最终把命也搭进去了。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">甚是巧合的是，李开学也是施雪华带的第一批硕士，李开学现在的博士生导师浦兴祖又曾是施雪华在复旦求学时的老师。李开学第三次预答辩延期后的2007年底，在天津<a href="http://weather.qq.com/preend.htm?dc127.htm" target=_blank><img alt=点击查看天津及更多城市天气预报 src="http://img1.qq.com/weather/pics/5619/5619723.gif" border=0></a>的一次博导联谊会上，浦和施两人碰到了一起，浦兴祖回忆，会上施雪华还关心地向他打听李开学的情况，感叹李开学年龄太大，读博士不容易，建议他如果李的论文基本符合要求，能过就尽量过，不要要求太高。浦兴祖叹气说，其实我的想法何尝不是一样，问题是得李开学能拿出完整的论文。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">清明节前夕，李咏笛到公寓502室收拾小哥的遗物。48000字的《干部人事制度》初稿，至今躺在他的电脑里，如果没有意外，将被修改后作为建国60周年的献礼，收入《中华人民共和国政治制度史》一书于明年出版。近10万字的博士论文初稿，也躺在他的电脑里，仔细看过这篇初稿的郭湘说，尽管体系尚不完整，某些章节还不连贯，但资料收集翔实，看得出来花了不少功夫，倘若不出事，这次通过预答辩没问题。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">这次他终于接近完成了。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em"><strong>从襄樊到上海 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">1964年出生的李开学，出生在湖北襄樊襄阳县的偏僻乡村，却属于那个年代极为瞩目的&#8220;新三级&#8221;一代。他1979年考入襄阳师范，2年后毕业，在当地一所中学短暂任教一年后，调到东湖镇印刷厂，历任校对、业务科长和办公室主任。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">在这个偏僻的乡镇小厂，他花了13年时间边工作边从湖北广播电视大学相继拿到政史专业的大专和本科文凭。李的好学成癖和手不释卷，在他于2年后的1997年考入武汉大学法学院就读政治学理论研究生时，成为当地的一个传奇。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">李有五姊妹，他是老三，大哥在外打工，一个哥哥从小送人，下面两个妹妹习惯称他小哥。李咏笛说，小哥每次从城市回到老家，都会感叹在中国，城乡内外就是两个世界，人生而平等，为何要分成两个世界？谢芳是李开学在中学任教时的学生，她对这位丈夫兼老师充满崇敬。她回忆，李开学的口头禅就是&#8220;一屋不扫，何以扫天下&#8221;。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">李开学在武大读研时先后师从虞崇胜和施雪华教授，现在已经是北师大行政学博导的施雪华，对李开学在攻读硕士期间的表现和硕士论文的学术水平留下了深刻印象。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2000年7月，作为武大的优秀硕士毕业生，法学硕士李开学被江苏泰州市外经贸局作为人才引进，当地答应解决家属工作、孩子上学和房子问题，谢芳和儿子李挽澜因此相继来到泰州。谢芳喜欢翻看那个时期的照片，到3年后李开学再考入复旦读博士之前，好不容易团聚的一家三口，在这个苏北小城留下了甜蜜的回忆。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">这三年里，李开学留给他的前同事施劲华的最大印象，就是一直在看书复习，没有人知道李开学放弃这段安逸生活脱产读博的原因。而施雪华则认为自己的这个得意门生，一直是对做学问比从政更有兴趣。 <br><br></p>
<p style="TEXT-INDENT: 2em"><strong>但学问也不是那么容易做的。 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">春节后返沪前夕，李开学携谢芳在武汉拜访了另一位学长，中南财经政法大学的政治学教授董少平，表达了想在湖北高校求职的愿望。董表示情况不乐观，自从教育部开展高校本科评估以来，各地高校都已经引进了大量博士，师资基本饱和，他坦言像李开学这种年龄不小的老博士，又没高级职称，如果从讲师开始，科研稍有跟不上，弄不好猴年马月才能评到副教授。李开学被发现去世后的第二天下午，国家税务总局(扬州)党校来复旦面试，他最终未能去成这个博士生们眼里&#8220;待遇丰厚&#8221;的不错单位。 </p>
<p style="TEXT-INDENT: 2em">&nbsp;</p>
<p>&#160;</p>
<p style="TEXT-INDENT: 2em">李开学的师弟郭湘觉得李是个典型的理想主义者，倘若换了是他，一定会选择留在泰州，即便想读博也会选择在职攻读。已经定下来去福建某省直单位做公务员的郑明，则感叹大师兄&#8220;选择失误&#8221;，倘若留在泰州做公务员不走，也许早已经是处级干部了。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">得知李开学出事后，浦兴祖当即赶到现场，看到惨状后，老泪纵横。浦兴祖回忆，5年前李开学前来复旦面试时，他和妻子一起请李开学、谢芳夫妇吃饭，曹绪飞也在座，师生五口其乐融融，殊料现在人鬼殊途。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">浦兴祖悲伤这个开山大弟子的不幸遭遇，又感慨于内心的五味杂陈。在挑选博士生上，一方面他觉得李开学这种有过工作经验的学生，对社会和政治制度会有更成熟的思考；另一方面，又觉得博士生年轻一点思路活跃精力充沛，家庭负担可能会少一些。他的同事则建议他以后带博士得留神，注意考虑家庭和经济情况以及年龄等多方面因素。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">&#8220;要在核心期刊发表的论文、经济压力、就业问题&#8221;，浦兴祖感叹这是现在读博士的三座大山，他回忆，4年半以来李开学拿到的唯一外快，是2004年6月，在上海嘉定区江桥镇的一次宪法学习讲座里，一个不超过500元的红包。浦兴祖从课题经费里先后补贴了他3500元，他的博士同学曹绪飞甚至悄悄让辅导员把自己的奖学金打到了这个师兄的卡上。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">271.5元，这是博士生能拿到的每月补贴，有两年以上工龄的李开学，可以拿到300元左右，他的师弟郭湘感叹这个数字比上海的低保水平还要低一半。当下读文科博士，最好是家庭经济宽裕，所谓学有余暇，才能安心做学问，倘若是将读博士当作改变命运的出路，未必会如所愿。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">郑明回忆，2007年是李开学的儿子李挽澜参加高考的一年，前一年高考失利的儿子，估计牵扯了李开学不少精力，他曾在李开学电脑桌面上多次看到过很多下载的高考模拟题。郭湘也经常会在北区校园里看到骑着自行车来去匆匆的李开学，他不知道这位大师兄2003年9月起就一直在一家名叫上海三达学院的民办学校兼职，2004年起又在上海一通翻译科技有限公司做兼职翻译，直到去世前的2007年下半年，他还在上海电大杨浦工作站兼了一份企业文化的教职，一周四个课时，换来200块酬金。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">在师弟师妹们的印象里，年长他们很多的李开学性格开朗得很，能说会侃，他们常常笑称这位端着方步的大师兄，是复旦北区的一道风景。现在想来，大师兄总是习惯于强迫自己去面对所有的困难，他内心痛苦和脆弱的一面，从来不会呈现。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em"><strong>回家 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">心力交瘁的谢芳最终放弃了法医鉴定，和复旦签订了善后协议。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">清明节这天，上海天色阴沉，李开学遗体在宝兴殡仪馆火化，包括浦兴祖和曹绪飞在内，20多个人来给他送行，没有追悼会，没有花圈，只有几束百合花和菊花。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">火化当天，校方替这个毕业前夕倒在书桌前的44岁博士生支付了尚未偿还完毕的中国银行助学贷款，拖欠的1000多元公寓管理费，并支付了李开学的家人5万元抚慰金。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">谢芳脱下为丈夫添喜的红毛衣，把丈夫的骨灰盒抱在胸前，坐上回襄樊老家的列车。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">4月8日一早，李开学的骨灰被安葬在他故乡的小山坡上。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">李开学的父母都在襄樊老家种地，谢芳说收入菲薄的李，一直觉得对父母内心有愧，但李年迈的父母毫不介意，反以这个博士儿子自豪于乡梓。谢芳回忆，春节回老家时，他曾对双目失明的母亲说过一句话，&#8220;妈妈家里粮食还够吃一年吗？我博士马上就可以毕业了，一年后安定下来，就可以回来老家接你们去享福了。&#8221; </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">他们没料到，这个令他们最引以为豪的儿子，最后会以这种方式回到了这个故乡。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">谢芳经常会想像丈夫还坐在一边看书的样子，宽宽的背，一拍胸脯，咱宰相肚里能撑船，没关系的，没有咱过不去的事情。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">谢芳也会想起4年前，和丈夫共用的邮箱里，她发给读博不久的李开学的第一封邮件：我的老师，我的先生：如果心是近的，再远的路也是短的；如果开心是蜜做的，再苦的海水也是甜的；如果你收到我的祝福了，愿你事业有成，你的学生，你的夫人。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">去世前的元宵节夜里，李开学发给妻子的最后一个短信是：&#8220;月圆了，亲爱的，我们的梦也会圆的。&#8221; </p>
<p style="TEXT-INDENT: 2em"><strong>李开学的一生 </strong></p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">1964年，李开学出生于湖北襄樊襄阳县农村； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">1979年，考入襄阳师范； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">1981年，任教于当地一所中学，一年后调镇印刷厂工作，历任校对、业务科长和办公室主任； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">1997年，通过十余年的自学，拿到湖北广播电视大学政史专业本科文凭； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">1997——2000年，于武汉大学法学院就读政治学理论硕士研究生； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2000年，法学硕士李开学被江苏省泰州市外经贸局作为人才引进； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2003年，考上复旦大学国际关系与公共事务学院政治学博士研究生，师从政治学教授浦兴祖； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2003年9月起，参与浦兴祖主持的国家九五社科重点课题《中华人民共和国政治制度史》的写作，担任第一卷副主编； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2006年，未按规定在三年之内完成博士论文，延迟一年毕业； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2007年1月，在导师的要求下，退出课题组，专攻博士论文； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2007年3月，博士论文写完1章，参加博士论文预答辩，未获通过，再次延期一年毕业； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2007年秋，博士论文写完3章，再次申请预答辩，预答辩当天临时放弃； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2008年2月21日，参加元宵节聚餐，这是他最后一次出现在师友当中； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">2008年3月5日深夜，在复旦大学北区宿舍138号502室，被发现伏在书桌上死亡多日，时年44岁。检查电脑发现，近10万字的博士论文初稿已接近完成； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">52008年4月4日，遗体在上海宝兴殡仪馆火化； </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">52008年4月8日，归葬于湖北省襄樊市襄阳县农村。 </p>
<p style="TEXT-INDENT: 2em"></p>
<p style="TEXT-INDENT: 2em">(注：应受访者要求，文中郑明、郭湘、王芳为化名。实习生岑苏阳对本文亦有贡献)&nbsp; 《南都周刊》记者 安波 上海<a href="http://weather.qq.com/preend.htm?dc252.htm" target=_blank><img alt=点击查看上海及更多城市天气预报 src="http://img1.qq.com/weather/pics/5619/5619723.gif" border=0></a>报道 (南都周刊共腾讯深度专稿，网络转载请注明，违者追究法律责任，欢迎订阅南都周刊，邮发代号45-139)</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/47141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-04-15 18:13 <a href="http://www.cppblog.com/milkyway/articles/47141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>清华博士王垠的退学申请</title><link>http://www.cppblog.com/milkyway/articles/46932.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sat, 12 Apr 2008 12:20:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/46932.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/46932.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/46932.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/46932.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/46932.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 经过深思熟虑，我决定放弃清华大学的博士学位。其中的原因，你们有兴趣的话可以看看下面的文章。这就是我的一生与中国教育的故事。一个用血和泪换来的教训。
<p><strong>　　清华梦的粉碎—写给清华大学的退学申请 </strong></p>
<p><strong>　　清华梦的诞生</strong></p>
<p>　　小时候，妈妈给我一个梦。 她指着一个大哥哥的照片对我说，这是爸爸的学生，他考上了清华大学，他是我们中学的骄傲。长大后，你也要进入清华大学读书，为我们家争光。我不知道清华是什么样子，但是我知道爱迪生和牛顿的故事。清华，大概就是可以把我造就成他们这种人的地方吧。我幼小的脑海里就想象出我能在清华做的事情&#8230;&#8230;我的脸上浮现出笑容。我说我要实现这个&#8220;清华梦&#8221;。这就是清华梦的诞生。</p>
<p><strong>　　小小科学家</strong></p>
<p>　　我相信每个人在小时候都跟我差不多，对这个世界充满了好奇。</p>
<p>　　鲁迅有他的百草园，我也有我自己的"实验田"。如果说小时候的鲁迅是一个艺术家，那么小时候的我就是一个科学家。这么说可能有人要说我口气太大，张口闭口就是这家那家。然而在我的字典里，"艺术家"和"科学家"并不是什么了不起的人，它们只是贴在人内心的一个标签。如果一个小孩专注于内心对世界的感觉，那么他就是一个艺术家。而我不是。我的大部分兴趣是在了解世界是怎样运转，甚至不惜代价。也许大部分男孩子都是这样。</p>
<p>　　我小时候住在父母执教的中学里。两间平房，门口有一小块地，妈妈在里面种了一些菜。我们一家三口虽然穷，但是过着宁静舒适的生活。我们在这个地方一直住到上初中的时候。这些房屋记录着一个年幼的科学家的探索和实验，直到它们被夷为平地。</p>
<p>　　妈妈拒绝让我养猫狗，她说凡是会拉屎的都不养---除了我。所以我小时候就喜欢与蚂蚁作伴。我总是试图用各种各样的办法去了解蚂蚁的生活习性。我可以一整天的观察我家屋檐下的蚂蚁来来去去。看见他们用触须碰一碰，然后各自分头走开，我就会想它们到底说了什么。我在想，能不能用一种方法解开蚂蚁语言的密码。我从书中得知蚂蚁洞里有蚁后，她有很大的肚子。为了一睹芳容，我开始试图水漫金山，把水往蚂蚁洞里灌。我有时一个下午就干这种事情，却没有一次成功看到蚁后。后来才知道蚂蚁是如此精明的下水道工程师，水大部分都渗到地底下去了。可是我不甘心，我开始试用别的办法。比如在洞口放一块糖。可是蚁后架子太大，终究不肯出来，让别人帮她送饭进去。</p>
<p>　　有人说，这个世界最后不是毁在疯子手上，就是毁在科学家手上。世界上如果只有科学家是很可怕的，比如他们会发明高效的杀人武器。我发现疏松的棉絮可以迅速的燃烧，就想出一种惨绝蚁寰的大屠杀实验。我先把糖水滴在地上，等蚂蚁把那个地方围个水泄不通的时候，铺上棉花，点火&#8230;&#8230;现在想起那些勤劳的小黑头都变成灰烬，我仍然心惊肉跳。他们的灵魂会来找我报复吗？后来这个实验有一个升级的版本用的是浸泡过一种化学药品溶液的纸，文火燃烧，由于燃烧速度慢，杀伤力不大，这个实验可以测试蚂蚁的逃跑路线。我还用活蚂蚁进行过心理实验。首先用破袜子摩擦塑料尺产生静电，然后放在一只正在行走的蚂蚁身后不远处。蚂蚁走不动了，我就开始推测它在想什么，它感觉到什么。它可能会觉得有外星人？但是由于尺子拿开以后，它若无其事继续走，我猜它只是有点纳闷，而不惊慌。但是反反复复几次之后，它明显有罢工的意思，似乎忘了自己要去干什么。后来我又发现蚂蚁被吸到塑料尺上之后会由于带上相同的电荷而被"发射"出去，就像人间大炮一样。注："人间大炮"是日本电视剧《恐龙特急克塞号》里的一种可以把人当作炮弹发射的威力很大的电磁装置。</p>
<p>　　一点微小的发现，就可以引发大量的探索和实验。这就是我在那个年代的特点。虽然妈妈也逼着我练习书法，绘画，还多次获奖，但我不喜欢这些东西。我似乎生下来就是科学家，不是搞艺术的，不过也许只是妈妈的强迫让我反感了艺术而已。物理是我最喜欢的，因为它让我了解到世界的奥秘。我一般开学前几天就会把物理书上的实验都挑出来，费尽辛苦找到材料实践一番，心里美滋滋的。上学真是快乐！</p>
<p><strong>　　失之交臂</strong></p>
<p>　　上了高中，由于课业的压力，我的生活逐渐改变了。为了考上清华大学，我努力的学习。抛下我的毛笔，抛下我用来做实验的蚂蚁，电池和线圈，抛下除了考试科目的一切。在老师眼里我是一个听话的好学生，在妈妈眼里我是一个听话的好孩子。每天早上按时起床，吃一大碗妈妈做的面（为了补充一上午学习需要的体力），然后冲进教室，按照预设的程序开始读书，做练习题。似乎一切都有条不紊，顺利进行。可是&#8230;&#8230;</p>
<p>　　忽然有一天我发现，我的一切活动都是在纸上进行的，看书，做习题。试卷和复习书让我变得变得麻木。我想这样下去我就不再像爱迪生和牛顿了。于是我开始调皮起来。我不但要做考试的题目，还要做更难的题目。做了物理奥林匹克的题目，接着就想看大学的物理书，接着就想恢复我小时候的实验的爱好。老师辅导自习时经常被我缠住问一些不着边际的问题，那其实是我在实验中发现的问题。终于有一天，在我要求他跟我合作制造一个磁悬浮陀螺的时候，他显示出了不耐烦：&#8220;王垠，你让我先回答别的同学的问题好不好？你的问题对考试没有好处。&#8221; 我呆住了，启发我让我爱上物理的人，尽然对我说出这样的话。后来想一想，他也是无奈啊，不过我从此再也不想问他任何&#8220;超纲&#8221;的问题。</p>
<p>　　高二的时候妈妈就拿回一份前一届的高考题让我做，我随手一做就得了一个当时可以考上清华的成绩。我的心里想，清华我来了。明年的这个时候，我就会拿到录取通知书了！从此我就不再把高考放在眼里。我开始钻研越来越难的题目，进行越来越离谱的实验。我想，清华里面应该都是我这样的学生吧，我会有很多志同道合的朋友，不用再跟这群只会做题的呆子在一起了。</p>
<p>　　可是我的行为总是受到老师的压制，他们要把我们变成考试的机器。他们告诉我，沉下心来做习题，考试才能有把握。妈妈也帮着老师劝导我。看，一班的某某某这次模拟考试数学成绩比你高，多努力一下吧。我哪里听得进去，我才不在乎这点分数，我能解决更难的问题，老师都没法解决的问题。我开始有了逆反心理，开始早上懒床，装病请假不去上课。班主任，校长多次找我谈话，说我要沉下心来准备考试云云。但是我根本就听不进去，我鄙视高考，觉得他们没有资格出题来考我。然后我就有了心理疾病，大概是强迫症。高考语文的时候我居然怀疑监考老师认为自己在作弊，接着好像真的怕被抓住了一样，手发抖，头冒汗。然后我又想要是考不好，以前的优秀会不会也被人怀疑？他们会不会以为我以前的成绩全都是作弊得来的？手就抖得更厉害了。这时候，监考老师可能发现了我的情况，真的走了过来，站在我身后。害得我好几分钟不敢写一个字，因为手已经完全不听使唤。不过他还是走开了，这可怕的高考终于结束了。</p>
<p>　　我们是考试前填的志愿，我根本不考虑其他学校就只填了清华。后来妈妈研究了一下，帮我添了一个天津大学在第二志愿。以下的志愿全部空白。大家觉得我真够大胆，可是我的心理状态让我发挥完全失常，比清华的最低分数线还差两分。特别是语文，才96分。天津大学第一志愿收满不要我。昔日的好学生，居然到了落榜的下场。我真的那么好吗？我问自己。我太骄傲，才落到如此地步吧。我开始怀疑自己是否应该那样瞧不起高考。看着爸爸的愁眉苦脸，妈妈的唠唠叨叨，真是生不如死。复读吗？那会是噩梦的继续。我不能再在这个学校待下去。再面对题海，我的心理疾病会让我自杀的。碰巧四川大学来招收高分落榜的学生，还给了我随便选择专业的机会。妈妈说，计算机现在很火热，出来好找工作。我虽然对工作不感兴趣，但是我比较喜欢写程序，于是就进了川大计算机系。</p>
<p><strong>　　两度退学失败</strong></p>
<p>　　不能不说进川大是个没有选择中的好选择。大学生活自由一些，我至少不会走上自杀的道路。可是我的毛病仍然在继续，我永远不满足学校里能学到的那么点东西。老师基本是照本宣科，我逐渐不再满足这种知识灌输式的教育。我觉得完全没必要上这个大学。</p>
<p>　　川大的环境我实在无法忍受。军训的时候受够了同学和教官的委屈，我就想退学。我们的军训是在一个戒备森严的炮兵基地里，心里的苦向谁说啊！有一天我们正在路上齐步走的时候，我忽然看到一个女人挽着一个军官走了过来。那个军官的老婆怎么长的这么像我妈妈！要是妈妈来到我身边该多好！没想到回到营地，团长（原来是连长，我们来军训他就升一级做团长了）说有人来探访。我走过去，居然发现是妈妈！因为听说我想退学，她急忙向学校打听了军训的地点，几经周折跑过来，是那个军官带着她混进来的。我想我妈妈要是转行当间谍一定是个好料子。她说已经帮我办了退学，学校同意了，回去好好复习，准备考上清华&#8230;&#8230; &#8220;好好复习，好好复习&#8221;&#8230;&#8230;我的脑海里又浮现出高三的情景，这次我要跟一群更没用的复读的人在一起。脑子一阵疼痛之后，我说：&#8220;妈妈，我不想退学了。&#8221;</p>
<p>　　可是军训回到学校，发现宿舍如此差劲，我又想退学。妈妈又来帮我办理手续，可是结果我还是由于懦弱反悔了。害得学校办事的老师都骂我：&#8220;你这个人简直神经病！&#8221; 对啊，我确实是有病，不过我的是精神病，不是神经病。我恨我的高中，我恨我的大学，我恨高考，我恨中国的教育！是你们让我生病的。可是妈妈，她为了我已经费尽了辛苦。我不能再这样周折下去。我自己在学校里好好努力，准备考上清华的研究生吧。</p>
<p>　　学校住宿环境很差劲，又经过好多麻烦事，我终于决定在校外去租房子住。后来我开始玩滑板，它让我变得勇敢。我心里逐渐平静下来，可以用心看书了。大二以后，我的学习生活才逐渐进入正常，自信开始恢复。</p>
<p><strong>　　梦的复苏</strong></p>
<p>　　记得川大教Pascal语言的老师第一堂课就对我们说：&#8220;我们学校就是落后啊。外面公司里都用C, C++了，我们还在教Pascal。你们以后要出去工作恐怕还是得学学VC什么的。&#8221; 于是有的同学开始抱起一本本像&#8220;XXX圣经&#8221;之类的书开始学习，上数学课也在看这些东西。我当时自愧不如啊。自己就是小学的时候玩过一下学习机，可以说没有任何计算机基础。辅导员也经常夸他们几个动手能力强，以后公司就需要这样的人。他们出口就是Bill Gates, 世界首富云云。军训的时候听着他们说什么DOS, 温95，我就只有张着嘴崇拜的份了。才想起我高中计算机竞赛的时候一道有关DOS命令的题没有做出来，现在听他们说才知道原来DOS是个&#8220;操作系统"。那操作系统又是什么，他们说每个电脑上都必须有一个操作系统&#8230;&#8230;我真是愧不如人 -_-!</p>
<p>　　正在我决定鼓起勇气后来跟上，准备拿起一本DOS大全从头啃起的时候，一次偶然的机会我接触到了Linux。后来又因为The Art of Computer Programming，接触到了Knuth。我才发现，课堂上讲的那些东西原来如此低级，有些东西学了就过时，学它干吗？我并不比别人落后多少。我一再的思考，什么是计算机科学？是什么让我们计算机系的人不同于其他系的。我有时候认为有了答案，但是后来答案又被我自己推翻。在思想的混乱中，我发现我逐渐摆脱了旁人的标准。我不再想像别人那样去考计算机等级考试，对微软的认证也不屑一顾。我自己学会了Linux，还会很多种当时别人听都没听说过的计算机语言。我学会了LaTeX，还因为找出Knuth书里的错误得到两张支票和一些礼物。这并不是什么值得炫耀的，但是这给我对计算机的兴趣很大鼓舞，我从此更加认真的看书。上课要不就逃掉，背地里拿着大部头的&#8220;龙书&#8221;之类的原版英语书啃。要不就看我打印出来的GNU的一些资料，完全不听老师讲。期末划重点的时候也不去，考试却总能考个八九十分。总有几个女生排名在我上面，不过我不在乎这点分数，考试和分数不再能评价我。同学们大概都觉得我是一个怪人，后来毕业了我才听他们说，他们管我叫&#8220;怪才&#8221;。我如此努力的学习着，对别的事情充耳不闻。我只有一个目的，就是毕业就离开这个鬼地方，进入清华大学上研究生。虽然大家不理解我在干什么，清华的老师应该挺在乎我学的东西吧。</p>
<p>　　可是我没有想到，在我死啃书本的时候，我的创造力正在离我远去。在我盲目接受我认为高深的材料的时候，我失去了自己的创造。我成了比别人稍微好一点的技术工人，不再跟爱迪生和牛顿是一类人了。我高中的时候拼命想保存的创造力已经在苦读之下消失殆尽。我看书的方式变得顺序化，总想从头看到尾。我的高中老师们的目的，中国教育的目的，终于快达到了。</p>
<p><strong>　　清华，我来了</strong></p>
<p>　　大三的暑假，我来到清华想拿一些考研的资料。这是我梦中的地方呀，美丽的校园，比川大要大上好多倍吧，脚都走痛了才走到招待所。去系办，一个办事员态度很不好的给我一份资料。哎，学校好，人脾气就该大啊。忍了吧，要是真能考进来就好了。</p>
<p>　　后来听一个老师说清华有一种学生叫&#8220;直博&#8221;，可以硕博连读，五年拿到博士学位。只要面试通过就可以进来学习。我心想这种方式好啊，我平生最讨厌的就是考试了。出高考题的那帮人，他们有什么资格考我！考研资料也是遍地飞。写了几本复习材料就自称什么&#8220;一代名师&#8221;，我最看不起这种人了，就会赚钱。我如果可以获得&#8220;直博&#8221;的名额，就可以永远摆脱他们了。想一想，要是硕士三年，博士三年，就要六年。现在五年就可以拿到博士学位，还不用考试，真是太好了。可是我又有什么资格获得清华的直博？我在川大从来没听说过这种东西。</p>
<p>　　于是我就开始打电话联系老师，跟他们谈谈。面对他们的眉头，面对他们的笑脸却无可奈何的说&#8220;没有名额&#8221;，我都感觉没什么希望了。一个院士甚至对我说：&#8220;你们四川大学是什么学校？二流都算不上，最多算个三流大学。你怎么能来我这里！&#8221; 我深受打击，可是我还是没有放弃。最后我找到了一个老师，我们一开始就谈的挺投机。他听说我跟Knuth有过联系，挺高兴的说，哦我知道他，好多年前来我们这里做过报告呢。我终于觉得找到了知音，于是决定就跟着他学习。老师找好了之后还有一个面试，是别的老师参加的，我说什么他们似乎没有认真听，就一个劲看我的考试成绩这种我不屑一顾的东西。我面试时特意穿上了Knuth送我的MMIX T-shirt，他们大概根本不知道是什么，我也没有提起。</p>
<p>　　不过老师只对我的体育成绩提出了疑问，说你怎么才80多分？你的身体能不能胜任繁重的学习任务啊？我笑着回答，我每天还跑5000米呢，我们学校打分比较严，难道清华的学生体育都考90？面试就这样通过了。</p>
<p><strong>　　推荐信与散伙饭</strong></p>
<p>　　面试通过后回到学校还要办一些手续。成绩单，推荐信等等，跟申请外国大学研究生院差不多，让我感觉挺正规的。院长对我挺好的，同意帮我签推荐信。可是签完字之后他对我说：&#8220;你别以为他们觉得你是个人才。他们是根本招不到人！他们那里像你这样的学生都出国了，剩下的是最差的。谁想读博士啊？你别太高兴了。&#8221; 我笑着应付这突如其来的打击，在心里却不断为自己的选择辩护。清华一定是好样的，不会让我失望。它是我的梦啊。</p>
<p>　　很多麻烦的手续之后，终于拿到了我梦想的大学的录取通知书，可以离开川大这个鬼地方了。毕业的散伙饭上，看着大家喝得酩酊大醉，还有人在咆哮说居然连川大的文凭都没拿到，我一个人默默地想象着即将到来的清华的快乐生活，暗自庆幸。</p>
<p>　　散伙饭到了尾声的时候，我诧异的看到一个平时不太熟悉的同学拿着一杯啤酒走过来。我挺紧张，我最不喜欢别人给我敬酒了，说是客气，其实很虚伪。没想到他说：&#8220;我敬你一杯，大牛人。听说你被清华大学录取作了博士。我干了，你随意。&#8221; 我不知如何回答，我一向不知如何应付别人的恭维。还好他没有让我也干杯，倒是够尊重人。没想到喝完他接着说：&#8220;我知道你是怎样的人。我很仰慕你，你是真正喜欢研究的人。可是我要告诉你，清华的人并不会比我们好多少。大部分人也只是想混一个学位，将来找个好工作。没有多少人可以跟你一起研究的，你去了必定很孤独。我就很奇怪你这样的人怎么不出国呢！你会后悔的。&#8221;</p>
<p>　　我有点不高兴了。一个人说你的选择是错误的，你的反应是什么呢？反正我当时为我的&#8220;清华梦&#8221;作了一番辩护，说我进去自己好好研究，应该还是能够很好的，毕竟这是我从小的梦啊。可是没想到，他说的居然是对的，我现在开始感谢他了。</p>
<p><strong>　　计算几何，创造力的复苏</strong></p>
<p>　　清华还是一样的上课方式，大部分课也是很多人一起上，一起打瞌睡。老师也是照本宣科，我居然发现他们其实跟川大的老师没什么区别。清华的不同之处就是，一到考试的时候原来进行的一切娱乐活动都不见了人影。原本每天晚上都有人一起玩轮滑，考试的时候就只剩下我孤零零的一个人。因为大家都怕考试，开始熬夜复习了。还有就是上课不容易逃课了，有些老师会突然点名，缺席会严重影响最后的成绩。</p>
<p>　　对于博士生，传说还有一个规定，那就是后10%淘汰。也就是说，不管你成绩如何，如果成绩排名在课程的后10%，那么就要重修。而如果两门功课重修，就会被开除。面对如此残酷的规定，很多同学都惶惶不可终日。我就是在隔壁同学的唠叨声中度过了第一期。不过我还是没有把考试当回事，所以我也没有去验证这个说法的官方真实性。我仍然不去听老师划重点，我仍然不觉得老师出的题目有什么好，我仍然讨厌有人让我们用手算矩阵。可能觉得太残酷，还是觉得要是开除了博士生谁来干活，这条规定后来改成了如果博士生上了80分就可以不重修。我也不知道为什么我觉得考砸的科目也上的了80，故意放我过去的吗？</p>
<p>　　但是我的生命中出现了这样一门课程。它改变了我对老师的看法，让我觉得上课原来也可以如此有趣。这就是计算几何。上课的人很少，只有十来个人。因为听说这门课很难，很多同学都没有选。但是我就是那种知难而进的人。老师上课的方式跟别的课程很不一样，大家坐在一个小教室里，老师有精美的幻灯片，有动画，不时还插入一段大科学家，大哲学家的名言。上课时老师会停下来很多次让学生提问题，下课大家都积极踊跃的讨论新奇的问题。课程的评分方法也很特别，平时成绩占到30%的分量，作业分为几种分值，可以自己选择做不做，作业的总分数乘以30%，加上最后大作业的分数乘以70%，就是最后的得分。说真的，这门课太有趣了，我就只逃过一次课。但是还是有时候人数不到一半，因为其他课程压力太大，有人都去复习别的课程了。但是邓老师从来不点名，还对逃课的同学表示同情。还问我们在座的有没有其他课特别紧张的，下次课可以不来。真是让人感动。</p>
<p>　　我就是在这门课上认识了王益，我们亲密无间的合作，让我领略到了什么叫做研究。大作业的时候我们在一个小组，其实是三人一组，但是那第三个人其实什么也没干。我和王益决定写一个3D的Voronoi图扫描算法演示程序。王益的3D图形编程能力很强，所以他做界面，由我负责算法生成数据作为后端。我们分别在自己的机器上编写程序，不时的打电话讨论接口的设计问题。我找到了Bell labs 的 Steven Fortune 的算法程序，决定看懂它，然后改造成演示需要的分部运行的算法。但是 Fortune 的程序几乎没有注释，而且使用了一种奇怪的数据结构，很难理解。Fortune 还在程序里说到，这个算法虽然有效，但是对于程序员来说是一个挑战。所以我email请他给我一份算法论文的拷贝，他同意了。但是一个月之后，信才到我手里，那时我们已经完成了作业。因为我花了一个星期看懂了他的程序，还换掉了他的麻烦又低效的数据结构。随后成功的把后端与王益的前端设计好接口联合。等我看到 Fortune 的论文，发现程序里面其实已经改进了论文的核心内容。其中的parabolic transformation其实完全没有必要实现。我深深体会到实践的重要性，也许先有了他的论文我反而会被误导，写不出实际可以运行的程序。</p>
<p>　　由于我们的团结努力，老师对我们的大作业非常满意，他给了我们最高的分数 100。由于我们两个都在课下超额完成作业，所以总的分数我们两个都是满分。这是我阔别已久的100分。只有在小学我才拿到过这种分数啊！对于一个对考试成绩满不在乎的人，100 又意味着什么？如果是别的课程我会毫不在乎，就像我得了80分一样。可是这个100分是我们团结研究而来的，它包含了对我们的合作意识，对我们的友谊，对我们的热情的肯定。虽然我觉得我们的东西还有改进的余地，但是我接受这个100分！也只有这样的课程，我才可能得100分。</p>
<p>　　从此我感觉到了什么叫做研究。这跟我小时候干的那些事情没有什么两样。你在身边发现一个问题，想知道为什么。然后你就想去获得解决这个问题的知识。你去看书，你去问专家，你上网去搜索。如果没有发现答案，那么好啦，你就可以自己试图去发现为什么，这是最有趣的部分。知道了为什么，就想让这个东西有用处，对人们的生活产生好处。这就是研究。</p>
<p><strong>　　《完全用Linux工作》与TeX的推广</strong></p>
<p>　　这么说来我还是对清华有些好感。遇到一个好老师让我从呆头呆脑的技术工人的状态恢复过来，开始追求自己的梦想。可是第一年把所有的课程上完之后，我就发现原来清华所谓的&#8220;研究&#8221;是如此混沌。其实清华大部分人进行的所谓的&#8220;研究&#8221;是什么呢？其实就是写作，不是科学研究。这一点以后我会详细叙述。</p>
<p>　　远远看去外观华丽的有着先进的工作站的实验室，却没有可以安心看书的地方。机器挨着机器人挨着人，书都没地方放。师兄师姐们都在忙着用word写论文，不时有两个人隔着几行机器大声谈话。实验室通风不好，还有一个大型工作站在嗡嗡作响，我进去一会儿就觉得头晕，所以后来就不想去了。PC机以前都是公用的，每次都会用不同的机器，却没有我想用的软件，麻烦死了。好不容易实验室买了新机器分配给个人，装上一个 Linux 系统开始写程序，还在Sun工作站上安装了多达1G的GNU程序。却被一个师兄嘲笑说那种跟DOS一样落后的东西你居然也用。于是我写了一篇文章叫做《完全用Linux工作》，放在主页上驳斥这种观点。矫枉过正，确实写的优点偏激，结果引起网上linux界轩然大波。后来我又发现几乎全校的论文都是word排版的，那些公式质量太差，看起来头痛，才发现很多学生害怕数学的原因之一。所以又写了文章宣传 TeX，希望中国产生更多漂亮的数学书。这下子我出名了，真没想到，出名不是因为我的研究成果，而是因为这些业余的东西。我起初不希望我因此出名，但是看到旁边的人都用上了 TeX，我觉得我还是做了一件好事，至少让论文看起来漂亮了一些。</p>
<p>　　可是论文的内容，却是我永远的痛！</p>
<p><strong>　　培养计划</strong></p>
<p>　　我在第一年就把功课全部上完了。本来我想多选几门课，比如法语，可是清华的博士要选课需要提交一个&#8220;培养计划&#8221;给导师签字。导师同意之后才能修改。导师看到我选了法语，就说这个第二外语还是自己学学就行了吧，旁听也行啊，我主要是怕你课太多了考试不通过就麻烦了。我当时没有说什么，就把法语去掉了，只留下刚够学分的课程。其实我还想选很多的，体育，音乐什么的，都不好意思跟导师说。后来才知道宿舍对门的硕士生选了钢琴课他们导师都不管。为什么我们就受到如此待遇？</p>
<p>　　可是没有把法语加到培养计划却成了我的遗憾。有一个新学期我去旁听了第一节法语课之后老师就说，我知道很多同学是来旁听的，这样教室里人太多了，效果不好。这对自己对大家都不好，下次请旁听的同学不要来了。我脸皮薄，下次就没有去了。后来自己想自学却又没有老师教，看了十集reflet之后就此作罢。</p>
<p>　　后来我终于明白了，清华不需要全面发展的博士生，而其实导师还会在某种程度上削弱学生的能力。导师并不是真的为我们好，而是不喜欢我们上课，因为上课不但会花掉研究（或者干活）的时间，而且让他们眼界太开阔，这样学生会很容易有别的选择而走掉。所有的活动：助教，实习，都必须有导师签字。而大部分导师就会找借口不让学生干这些事情。不给他们助教和实习的机会，让他们以后不好找工作，只能为自己服务，或者为自己的熟人服务。甚至这次我去西藏，要办边境证都要有导师签字。办事的老师说，没有导师签字，你跑出去了不回来怎么办？大妈，我跑那种地方干吗？</p>
<p>　　除了这些，还有两大法宝就是博士学位和违约金。清华的博士学位有多值钱知道吗？不知道？那么博士退学要交几万块钱的违约金，这下大部分穷苦学生怕了吧。这就是你们的卖身契。清华就是这样把研究生牢牢地控制在自己的掌握之下。我对一个如此害怕学生跑掉的不自信的学校还能说些什么？如果你是好样的，就不会害怕我们跑掉！该跑掉的最后终究会跑掉。</p>
<p><strong>　　我的自我培养</strong></p>
<p>　　在学习上，我永远是个吃不饱的人。选不了课，我就去旁听。旁听后觉得老师讲的不好，我就自学。在我有空的时候，我就会去图书馆借书看。在我本科的时候，我就已经发现自己的一个特点，我会很快发现新的东西，并且学会使用它。虽然这些东西并不是创新，但是它们丰富了我的技能，让我有更大的能力去进行创新。我经常顺藤摸瓜似的从一个问题搜索出一大串我想知道的东西。然后借一大堆书回来，每本看一点点，只为找到我需要的答案。</p>
<p>　　计算几何课的一次作业，我为了写一个算法的演示程序，花了3天时间学了一点Java语言，正好能够完成那个程序。我开始接触到TeX的底层细节，看完了The TeXbook，并且找出一道练习题答案的错误。开始移植gbkfonts程序，作为我的CWEB语言的练习。看完了几乎所有 Xlib 的手册，了解了 XWindow 的工作原理。我接触到 Scheme，并且做完了 SICP 的大部分习题，还自己想出好多问题用Scheme实现算法。后来花了好几个晚上，把MIT课程6.001的录像下载回来。我才发现教授上课可以如此搞笑有趣，上课时戴上巫师的帽子，做一些滑稽的表演。我终于明白，有的计算机科学家居然可以去好莱坞演电影 :) 这个课程让我领会到 LISP 的强大，改变了多年以来对这种古老语言的误解。它让我感觉到在看似纷繁复杂，不断更新的计算机语言的世界，还有那么一种永恒的美！接着我又学会了 Common LISP，并且开始用它来设计研究计算几何的一个函数库。另外还找了一些希奇古怪的程序来玩，写了一些心得体会放在网上给别人看。</p>
<p>　　我意识到自己数学还不够强，甚至有些怕，就开始看一些数学方面的书。Concrete Mathemtatics, What is Mathematics?, Science and Hypothesis, Godel Escher Bach, ... 虽然每一本都没有看完，但是我逐渐相信自己的数学能力，发现数学原来如此有趣，并不是做习题那么枯燥，也不像一辈子就拼命证明一个定理那么清高。才发现国内很多数学书用难看的符号把学生吓倒了，其实想通了就是很直观的原理。</p>
<p>　　我看了电影 A Beautiful Mind 之后深受感动，就去买了一本原著的书，它是数学天才John Nash的传记。它描写了20世纪初的Princeton，一群科学家生活的情景。我眼前浮现出在一个房间里，一群人在喝茶聊天下棋讨论问题激烈争论。我发现我从小内心向往的，就是那样的地方。我看到Nash是如何用&#8220;头脑暴力&#8221;解决一个他没有任何基础知识的问题。原来只要有了问题和探索的精神，就会有动力去获得解决它所需要的知识，最后将问题解决。发现有用的，重要的问题，而不只是寻找困难的问题，这样才会对人类有价值，才会有动力。我还看到一个真正的数学天才是怎样的喜欢恶作剧，又怎样因为过度的傲慢狂妄，想向世人证明自己的天才而发疯。我发现世界上有远比科学更宝贵的东西。我开始悔悟我高中时对待成绩不好的同学的态度。我不是一个天才，但是我要做一个好人。</p>
<p>　　但是我的研究却没有多少进展，至少我自己这么认为。我发现问题的根源，就是没有真正的讨论，没有真正的问题。</p>
<p><strong>　　我们也有讨论，原来是这个样子</strong></p>
<p>　　上完课，就该开始搞研究啦。可是研究什么呢？老师给我几篇论文看，意思是让我看看有没有什么想法。</p>
<p>　　我开始感觉没有头绪，就跟导师说能不能找师兄师姐跟我讨论讨论，还有别的人在做这个吗？他说，就你一个人做这个，每个人做一个题目，独立思考，这就是研究。我觉得是啊，我应该独立思考。可是过了一段时间发现不行啊，我想实现一个想法，但是我不知道是不是已经有人试过失败了。实验的时间开销会比较多，所以我想知道那么多厉害的人，为什么都不用这种明摆在那的方法？当我再次提出需要讨论的时候，他似乎有点生气的说：&#8221;你为什么总是想有人跟你做一样的东西啊？你不是想抄袭别人的论文吧？&#8221; 我不发话了。继续做我的实验，结果确实不理想。虽然自己实践很重要，可是要是能利用别人的经验，何乐而不为呢？这并不是偷懒。如果有人讨论，很多时候一个人提出一个问题，另外的人可能就会告诉他这个问题是不是有人做过，有什么重要性，凭直觉告诉他有什么难度。可是如果没有讨论，连问问&#8220;有没有人做过&#8221;的机会都没有！</p>
<p>　　后来我就经常上网看看国外的大学怎么搞研究，发现他们都有 seminar，讨论组。A Beautiful Mind 描述的 Princeton 以前的天才们每天都在一个地方喝茶，讨论问题，争得面红耳赤，回家分头思考，做实验，第二天喝茶时再讨论。那就是我从小梦寐以求的生活啊！计算几何课已经让我爱上了与人合作和讨论的方式，现在却孤零零一个人了。我必须告诉导师，合作和讨论是非常重要的。在我据理陈述之后，他说：&#8220;好吧。反正师兄师姐各自有自己的事，你要讨论什么就跟我和你副导师讨论吧。&#8221; 于是我就开始了跟他们两个星期一次的见面讨论。每次讨论都感觉他们不知道我在说什么，他们心里想的都只是这个能比别人的好多少呢？能不能投到这个会议呢？如此宏观。我觉得跟他们讨论完全是浪费时间。</p>
<p>　　后来课题逐渐有了新的同学加入，导师决定跟中科院数学所的人一起申请一个项目来研究。于是我们每两个星期去中科院讨论。不过感觉他们那边也差不多。中科院的老师觉得他们的研究太理论，期望我们能给他们带去一点实际的东西。可是我们也没有什么实际的东西，所有的问题都是从别人的paper里看到的。副导师就开始跟他们说这个问题有多么多么重要&#8230;&#8230; 他们也借此机会开始研究以前放下的一些问题。总之讨论的感觉就是没有目的，没有主题。有时有人说他在想一个什么问题，说了一会儿就被否决了。有时候就是一个人看了一篇paper之后做一个感想。我坐在那里就在想，我们到底在干什么？我们甚至都不知道什么东西值得研究，还研究什么？后来师弟师妹们就开始考虑把问题变一变，看看能不能产生新的问题。他们的做法，我跟他们开玩笑说就是&#8220;有问题也要解决；没有问题，制造问题也要解决！&#8221; 他们笑着点点头，&#8220;本来就是这样嘛。没办法啊。&#8221;</p>
<p>　　博士生论坛的时候，同学们都觉得有类似的问题，讨论不足，交流不足。所以我提议成立一个类似国外大学的 Common Room，用来讨论问题。可是大部分老师说：&#8220;这样一个房间，天天都要有那么多人在里面待着。谁来出这个钱？&#8221; 是啊，老师自己的办公室都要钱，哪里可能有什么 Common Room？就算有了 Common Room，在里面讨论的无非还是文章发到哪里的问题。制度决定了行为，我的设想太理想化了。</p>
<p>　　分析一下，为什么老师不提倡讨论呢？因为问题是有限的。老师辛辛苦苦这么多年搞来搞去都在搞这些问题，分配给你们每人一个，互不冲突。要是两个人都搞一个问题，这下好了。出了成果论文归谁？学校要求必须第一作者才算论文数。要是两个人都写论文，那么投到同一个会议肯定有一个要被reject。这样对集体发展不利嘛，大家不就是发几篇论文混毕业吗？何苦？</p>
<p><strong>　　paper, paper, 还是paper</strong></p>
<p>　　说到paper我就痛心。我的方向上我至今还没有看到几篇我觉得像样的文章。我主要进行集成电路布线算法的研究。看起来高深，其实是很简单的问题，一个平面上有一些点是电路里的电极，现在需要用铜线把它们连起来，怎么样让连线的长度或者时延最短？这个问题跟几何上一个有名的问题 Steiner tree 问题有关系。我的导师就是以前写了一篇这样的paper发到IEEE transactions。</p>
<p>　　已经毕业的一个师兄就在他研究的基础上修改来修改去，发了好几篇paper。英文的不够还翻译成中文，投到国内的期刊。后来一个师姐又在这个师兄的基础上进行修改，又发了好多篇。可是在我看来，他们的论文纯粹就是炒冷饭，没有什么创新。一个问题解决了，那么解决问题的人显示了他们的聪明，至于这个问题对人有什么用，他可以暂时不管（虽然我也严重反对这种做法）。后来又有人来搞这个问题，多半是被老师分配来的。他也小修改一下，修改想法其实不费工夫，主要是你怎样把你的 Introduction 写好？可以让别人觉得你的工作有意义？这就是功夫。作家的功夫。我有一次面见INRIA的头目 Jean-Claude Paul 时，他就对我说：&#8220;Tsinghua students are all writers, not scientists.&#8221;</p>
<p>　　现在清华研究生做的事情无非就是，写好paper，然后找个地方投出去。SCI 的最好，EI的其次。偏僻的没人看的杂志也没关系，交钱也没关系。我就知道日本的一个SCI索引的期刊收1000美元的版面费。导师出钱，不投白不投，投了好毕业呵！</p>
<p>　　现在我也被&#8220;分配&#8221;来做这个问题。虽然说是一个有名的问题，但是这个有名的问题已经被研究了好几十年了。有很多挺厉害的人做出了很重要的贡献，但是我们为什么研究这个问题？我至今没有搞懂。</p>
<p>　　开头导师只是给了我两篇paper，据说是以前他一个得意门生写的，美国某大学的副教授。其中有一篇说是如何在不构造 Delaunay triangulation的情况下生成 MST （最小生成树）。看到这篇文章开头说在 rectilinear metric下, Delaunay triangulation 就不能用来构造 MST 了，所以他设计了一个新的算法。这个算法比起 Leo Guibas 的算法更加简单。文章里还提到一次 Matroid，让初出茅庐的我觉得高深莫测。我还专门去借了一本《Matroid Theory》来看，其实他的论文剩下的部分跟Matroid没有任何关系。可是我对&#8220;Delaunay triangulation 不能用来构造 RMST&#8221; 这个说法产生了怀疑。经过理论分析我觉得即使在 rectilinear metric下，Delaunay triangulation 也可以用来构造 MST 的。我觉得作者只是故意这么写，想为他设计算法的动机找一个借口。我决定实践我的想法，写一个程序从Delaunay triangulation 构造出一个 RMST。这本身不是什么创新的工作，可是我却在想，这样一个东西能不能用来构造 Steiner tree 呢？后来我真的就想出一个办法。实验表明我的算法比以前的算法要快几倍。</p>
<p>　　这是不是说我的算法是一个值得写paper的东西呢？导师说我应该写一篇，但是我认为我只是在挑别人的毛病时意外想出了一个改进的算法，并不会对将来的研究有什么启发。虽然程序快了一些，但是很少有那么大的线网需要这么快的算法，而且几倍的提高在我眼里不算是一个理论上的改进，而且这个算法不能推广到其他距离空间，可扩展性很低。所以我内心觉得这个结果不令我兴奋，不想写论文。但是在老师的一再要求下，我居然把这个研究写成了两篇paper。按照他的说法：&#8220;应该分阶段总结你的成果。&#8221; 起初投出去的时候评委总是说这个东西不实用，导师说这是评委的问题，他们觉得不实用我们就投到理论一点的会议。经过几次投稿，还是失败了。我终于忍不住了，对副导师说出我的想法，我说：&#8220;看一个作家的水平，是看他扔在垃圾筐里的纸。就让我把这篇paper永远藏在我的垃圾筐里吧。&#8221; 但是他不甘心，说你要相信自己的实力，然后把我的算法胡乱夸奖了一番。我说我不管了，随便你怎么办。我就开始研究我自己喜欢的东西去了。之后他居然真的投中一个欧洲的会议，是被 LNCS 收录的，LNCS 是 SCI 索引的，所以我居然有了一篇 SCI 文章！我自己不喜欢的文章也是 SCI 了！</p>
<p>　　第二篇论文就更传奇了。几投不中，就其原因，评委说是没有和现在&#8220;最先进&#8221;的算法程序实验比较。而我没有比较的程序，就是那个让我觉得发paper动机不纯的人的程序。没办法，求他给我代码。比了一下，确实比他快。不过我估计他程序写的有毛病，老是 core dump。而且从实验数据来看，运行时间增长的速度不符合他论文里声称的时间复杂度。但是没办法，他只给 binary，也不给源代码。程序快几倍，很有可能是实现上的问题，而不是算法更好。我的一个师兄以前就把他自己的算法戏称为&#8220;基于bug的优化&#8221;。我觉得这样比较对那个算法的作者不公平，完全没有发表的价值了。但是没办法，谁叫我们都是出来混的，没有人在乎这些。我还是记录下数据，添到论文上。一投就中，得了一个最佳论文奖。然后就有一篇校内新闻宣传：&#8220;我校王垠同学获得XXX会议最佳论文奖。这是大陆学者首次在如此高级别的会议上获得如此高的奖项。&#8221; 这个&#8220;高级别&#8221;的会议，在我看来就是个垃圾。美国人都把最差的论文投到这里，就是为了来旅游一圈而已。</p>
<p>　　我对自己的做法产生了深深的负罪感，觉得自己正在进入这团混沌，正在被同化。我决定换一个题目研究。我就开始考虑zero skew tree. 找了20多篇paper来看，发现他们没有什么本质的改进。而且对于问题本身的价值，他们完全就不清楚。有的作者后来甚至说，其实以前他们考虑的问题是没有必要解决的，因为实际应用中不可能遇到，我们其实可以把问题变成这样&#8230;&#8230;本来一句话就可以说清楚的事情，又写成了好几篇paper。我就是这样在paper的海洋中，找不到目标。</p>
<p>　　我见过的这种低级别的会议，低质量的论文几乎都是从 IEEE 那里出来的。道理很简单，IEEE 会议多，会议论文集都像两大块砖头，还是双列小字排版，当然能容纳下这么多的垃圾了。所以我对 IEEE 也没有好感。</p>
<p><strong>　　火山小规模爆发</strong></p>
<p>　　第一篇投中了会议之后，副导师很高兴的说&#8220;代替我去开会&#8221;，到希腊Santorini岛玩了一圈。回来还跟我说希腊不好玩，好苦啊，幸好你没去。然后就继续要我为算法申请一个专利。</p>
<p>　　写这个论文我都已经焦头烂额了，一点都不感兴趣。现在还要写专利，&#8220;要像教小学生做这件事一样，一步一步的把算法写清楚，举出实例&#8221;。我觉得快不行了，再这样折腾下去，我到博士毕业也许也就只搞出这些小儿科东西吧！我终于小规模爆发了一次。我坦荡的告诉了副导师我的想法，我觉得做学问应该是什么样，我觉得这么点东西不值得申请专利。我还告诉他我对国内的研究环境很失望。</p>
<p>　　他慌了，可能以为我想要退学，赶忙找我谈谈。对我说，我知道你心中有很大抱负。所以这次就不写专利了。我知道你想有更好的研究环境，但是不踏踏实实做好现在的工作，又怎么能有大的创造呢？然后就开始举爱因斯坦，居里夫人的例子&#8230;&#8230; 然后说，其实你在这里好好努力，将来出国的机会多的是，你想去Harvard也行，你想去Princeton，都行啊！</p>
<p>　　你说行就行？你去去给我看看？我们实验室从来就没有去这些地方的。继续这样做下去，以后哪个真正的科学家还会要我？</p>
<p><strong>　　全面发展</strong></p>
<p>　　在对清华的研究完全失望了之后。我就准备考GRE，TOEFL出国了。我去上了一个新东方的班，没学到什么英语方面的东西，倒是接触了很多新的思想。老罗的言论特别有趣，虽然我不是完全赞同他的意见。写GRE作文特别培养思维能力。我为了写GRE作文，常常为了一个不明白的问题到图书馆翻阅英文的哲学书籍，有关教育的书籍&#8230;&#8230; 对于很多问题我得到了完全不同的观点。大学的目的是什么？人的价值观是由理性决定的吗？等等等等。我读到了亚里士多德，柏拉图，康德等人的言论。甚至有个哲学家说 "All Animals Are Equal". 我看了他的文章觉得有很多可以批驳的观点。我看到迪卡尔的文章，说&#8220;要掌握科学就要掌握它的全部&#8221;，这句话真合我心意，我就是想做一个懂很多东西的人啊。我想结合艺术与科学。虽然我这个观点得到一些人的批判，但是我仍然相信迪卡尔。</p>
<p>　　从这些互相矛盾的观点中，我有了自己的判断力。我开始能够揭开从小蒙在我眼睛上的有色眼镜看问题。我开始检查我自己的思维，我以前的观点。看看它们是否是未经判断就盲目放进去的。我检查到很多很多的错误。我的待人接物，我对他人的理解上，都有不足之处。我还检查到妈妈传递给我的一些有色眼镜，小学课本给我们的有色眼镜。我开始学会用自己新的方式对待他人，看待事物。我不再盲目相信权威，哪怕他是诺贝尔奖得主，图灵奖得主。我有了自己的自由思维。</p>
<p>　　在那段时间，我感觉我的心智大门被开启了。我开始尝试从来没有做过的事情，以及从来不认为我能做好的事情。我一次又一次的相信我能。我能学会画画，我能打好太极拳，我能理解古典音乐&#8230;&#8230; 世界还有那么多美好的事情等着我去学习去开发啊！</p>
<p>　　可是，我们却像囚犯一样被判了5年在清华。博士学位就是我们的枷锁。</p>
<p><strong>　　醒悟，paper的奥秘</strong></p>
<p>　　清华研究生谈论的重点是什么？是 paper。吃饭的时候谈，喝茶的时候谈，睡觉的时候也谈。隔壁的同学在进校第一年就为paper惶惶不可终日，说：&#8220;你知道吗，他们要求我们发SCI，怎么办呢？我几个师兄都是因为没有paper延期毕业的。&#8221; 这恰好就是那个为后10%淘汰惶惶不可终日的同学。他的老师是个院士，可是他在手下就干一些写word文档之类的杂活还忙得要命，根本没有时间思考问题。</p>
<p>　　后来听说学校有规定，博士生必须发4篇paper才能毕业，其中必须有一篇是SCI索引，或者两篇EI索引。看上去冠冕堂皇的SCI, EI，不就是跟 google 差不多的东西吗？被它索引了怎么样了？特别是对文章的篇数作要求，而对质量没有判断。我其实读了两年都还不知道学校是这样规定毕业标准的。当我知道的时候，已经有人告诉我SCI=Silly Chinese Index。真是让人啼笑皆非。</p>
<p>　　学校没有能力评价学生的水平，就拿文章数来衡量。这样的毕业标准造就的是怎样的学生，怎样的实验室呢？难道导师真的没有能力判断paper的好坏吗？有些是，但是有些不是。即使他知道你的论文没什么价值，也会叫你发表。我发现paper数量的背后，是某些人的如意算盘。想一想是怎么回事吧。国家看什么来拨款研究？看paper。看什么来评价一个学校的水平，也是paper。国家没有能力评价你的能力，当然只有看你有多少paper。所以有了paper就有了钱。只要你能写paper，培不培养你，你将来的发展，关我们什么相干？你写的paper别人能不能看懂，能不能转化成生产力，管我们什么相干？怪不得有的院士想尽办法也要多收学生，宁愿自己帮学生出学费也要他进来。因为学生就是财源。paper可以带来基金，可以在美国买小车洋房，没有基金就让学生干活吧。一个月几百块钱吊着一条命在那里为你拼命，谁叫他们想要那个博士学位呢！</p>
<p><strong>　　该清醒了，博士无产阶级！</strong></p>
<p><strong>　　告别清华的博士学位</strong></p>
<p>　　现在我已经厌烦了国内所谓的&#8220;学术&#8221;。我准备放弃清华的博士学位，出国找个好老师，进行真正的研究。博士第4年了，做出这样的决定真是不容易。有人告诉我不要放弃，你知道有多少人正在羡慕你？你知道一个清华的博士学位有多么值钱吗？但是我不能这么沉默下去了！</p>
<p>　　博士学位，累坏了多少年轻的中国人！我不再为它浪费我的青春。我知道国外大部分研究也不是那么好，如果国外也找不到好的老师，我就永远离开学术界，找一个简单的工作，和我心爱的人一起生活。有人说这是浪费人才？在清华混沌的过日子才是浪费呢！当一个侍者至少也让我感到对社会有贡献，看着顾客满意，我会露出笑容。可是做一个博士却没有。我感觉自己是个没用的人。</p>
<p>　　我已经完全看透了中国教育的失败。我高中的时候就受到它的伤害，这种伤害延续到现在。中国教育已经成为埋没人才的祸首。留在这个圈子里就是屈服，我不出声，大家都不出声，这个世界就会继续这样郁闷的运转下去。我今天要对这个系统大声地说一声&#8220;不！&#8221;</p>
<p>　　我离开了。可是中国永远也不缺少为清华拼命的人！因为他们的妈妈会告诉他们，清华是全中国最好的学校。你要考上清华，为我们光宗耀祖&#8230;&#8230;</p>
<p><strong>　　行动</strong></p>
<p>　　2005年9月22日下午3点，我在东主楼导师的办公室里跟导师和副导师再次重申了我的想法。包括以上的一切，和我准备退学，准备10月份考托福的打算。导师经过一番举例爱因斯坦，居里夫人，叫我踏踏实实的说教无效之后，严厉的批评了我只顾自己，不顾及教研组为我付出的心血。然后说：&#8220;要是你不能再为实验室作研究，我们就不能支持你了，前两个月实验室发的钱我收回。你可以马上写退学申请，我们实验室没有什么损失，我们有的是人干你的事情。不过我要告诉你，你一旦退学，连学校的住宿都要被收回！&#8221;</p>
<p>　　接着是副导师尖声的咆哮：&#8220;是啊，你瞧不起我们。我们是没有你聪明，可是我们勤勤恳恳&#8230;&#8230;你知道你得的那个best paper award，我们付出了多少努力吗？你认为这么容易拿到吗？那是多少国外专家鉴定&#8230;&#8230;&#8221;</p>
<p>　　我安静的等他说完。真像是一场闹剧，一场梦。他平息下来之后，我说了一声&#8220;再见&#8221;，然后默默地走出了办公室。</p>
<p>　　你们要退学申请？这里就是我的退学申请。</p>
<p><strong>　　尾声</strong></p>
<p>　　晚上收到副导师的email说：&#8220;还有一件事需要向你说一下：你在学校学习期间所取得的成绩包含你的努力、导师的指导帮助、同学们的帮助，还有学校和国家的支持。你作为博士生学习阶段取得的成果属于教研组、学校和国家。正如同我们作为职务发明的专利属于学校一样。</p>
<p>　　你在MST、SMT等方面取得了结果，它属于教研组、学校和国家。单位有责任进行合理的应用，为国家建设、国家荣誉服务。有责任进行进一步的整理丰富、向高水平的刊物投送。这里我们想说明一下上述的情况，同时，也告诉你一下：你若愿意将这些成果进行进一步的整理、我们已经给你提出了具体的修改意见，欢迎你按照进行修改。你若放弃，我们将进行具体的改进、投递。我们将尊重你的意见。谢谢。&#8221;</p>
<p>　　最后还是没有忘了paper的剩余价值。进一步验证了我的判断，他们在乎我吗？不。他们只在乎paper。至于我流离失所，又有何相干？我不知道有多少无知的弟弟妹妹又会把他们的研究建立在我不屑一顾的paper之上。</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/46932.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2008-04-12 20:20 <a href="http://www.cppblog.com/milkyway/articles/46932.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>"基于ARM的嵌入式系统程序开发要点"学习资料</title><link>http://www.cppblog.com/milkyway/articles/29629.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Thu, 09 Aug 2007 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/29629.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/29629.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/29629.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/29629.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/29629.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.sanhengxing.com/xzindex.asp">http://www.sanhengxing.com/xzindex.asp</a></p>
<p>关于ARM <br>1. ARM－Advanced RISC Machines <br>ARM（Advanced RISC Machines），既可以认为是一个公司的名字，也可以认为是对一类微处理器的通称，还可以认为是一种技术的名字。 <br>1991年ARM公司成立于英国剑桥，主要出售芯片设计技术的授权。目前，采用ARM技术知识产权（IP）核的微处理器，即我们通常所说的ARM微处理器，已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场，基于ARM技术的微处理器应用约占据了32位RISC微处理器75％以上的市场份额，ARM技术正在逐步渗入到我们生活的各个方面。 <br>ARM公司是专门从事基于RISC技术芯片设计开发的公司，作为知识产权供应商，本身不直接从事芯片生产，*转让设计许可由合作公司生产各具特色的芯片，世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核，根据各自不同的应用领域，加入适当的外围电路，从而形成自己的ARM微处理器芯片进入市场。目前，全世界有几十家大的半导体公司都使用ARM公司的授权，因此既使得ARM技术获得更多的第三方工具、制造、软件的支持，又使整个系统成本降低，使产品更容易进入市场被消费者所接受，更具有竞争力。 </p>
<p>2. ARM微处理器的应用领域及特点 <br>2.1 ARM微处理器的应用领域 <br>到目前为止，ARM微处理器及技术的应用几乎已经深入到各个领域： <br>1、工业控制领域：作为32的RISC架构，基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额，同时也逐渐向低端微控制器应用领域扩展，ARM微控制器的低功耗、高性价比，向传统的8位/16位微控制器提出了挑战。 <br>2、无线通讯领域：目前已有超过85%的无线通讯设备采用了ARM技术， ARM以其高性能和低成本，在该领域的地位日益巩固。 <br>3、网络应用：随着宽带技术的推广，采用ARM技术的ADSL芯片正逐步获得竞争优势。此外，ARM在语音及视频处理上行了优化，并获得广泛支持，也对DSP的应用领域提出了挑战。 <br>4、消费类电子产品：ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。 <br>5、成像和安全产品：现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。 <br>除此以外，ARM微处理器及技术还应用到许多不同的领域，并会在将来取得更加广泛的应用。 <br><br>2.2 ARM微处理器的特点 <br>采用RISC架构的ARM微处理器一般具有如下特点： <br>1、体积小、低功耗、低成本、高性能； <br>2、支持Thumb（16位）/ARM（32位）双指令集，能很好的兼容8位/16位器件； <br>3、大量使用寄存器，指令执行速度更快； <br>4、大多数数据操作都在寄存器中完成； <br>5、寻址方式灵活简单，执行效率高； <br>6、指令长度固定； </p>
<p>3. ARM微处理器系列 <br>ARM微处理器目前包括下面几个系列，以及其它厂商基于ARM体系结构的处理器，除了具有ARM体系结构的共同特点以外，每一个系列的ARM微处理器都有各自的特点和应用领域。 <br>－ ARM7系列 <br>－ ARM9系列 <br>－ ARM9E系列 <br>－ ARM10E系列 <br>－ SecurCore系列 <br>－ Inter的Xscale <br>－ Inter的StrongARM <br>其中，ARM7、ARM9、ARM9E和ARM10为4个通用处理器系列，每一个系列提供一套相对独特的性能来满足不同应用领域的需求。SecurCore系列专门为安全要求较高的应用而设计。 <br><br>以下我们来详细了解一下各种处理器的特点及应用领域。 <br>3.1 ARM7微处理器系列 RM7系列微处理器为低功耗的32位RISC处理器，最适合用于对价位和功耗要求较高的消费类应用。ARM7微处理器系列具有如下特点： <br>－ 具有嵌入式ICE－RT逻辑，调试开发方便。 <br>－ 极低的功耗，适合对功耗要求较高的应用，如便携式产品。 <br>－ 能够提供0.9MIPS/MHz的三级流水线结构。 <br>－ 代码密度高并兼容16位的Thumb指令集。 <br>－ 对操作系统的支持广泛，包括Windows CE、Linux、Palm OS等。 <br>－ 指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容，便于用户的产品升级换代。 <br>－ 主频最高可达130MIPS，高速的运算处理能力能胜任绝大多数的复杂应用。 <br>ARM7系列微处理器的主要应用领域为：工业控制、Internet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。 <br>ARM7系列微处理器包括如下几种类型的核：ARM7TDMI、ARM7TDMI-S、 <br>ARM720T、ARM7EJ。其中，ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器，属低端ARM处理器核。TDMI的基本含义为： <br>T： 支持16为压缩指令集Thumb； <br>D： 支持片上Debug； <br>M：内嵌硬件乘法器（Multiplier） <br>I： 嵌入式ICE，支持片上断点和调试点；<br>3.2 ARM9微处理器系列 <br>ARM9系列微处理器在高性能和低功耗特性方面提供最佳的性能。具有以下特点： <br>－ 5级整数流水线，指令执行效率更高。 <br>－ 提供1.1MIPS/MHz的哈佛结构。 <br>－ 支持32位ARM指令集和16位Thumb指令集。 <br>－ 支持32位的高速AMBA总线接口。 <br>－ 全性能的MMU，支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 <br>－ MPU支持实时操作系统。 <br>－ 支持数据Cache和指令Cache，具有更高的指令和数据处理能力。 <br>ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。 <br>ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型，以适用于不同的应用场合。 <br>3.3 ARM9E微处理器系列 <br>RM9E系列微处理器为可综合处理器，使用单一的处理器内核提供了微控制器、DSP、Java应用系统的解决方案，极大的减少了芯片的面积和系统的复杂程度。ARM9E系列微处理器提供了增强的DSP处理能力，很适合于那些需要同时使用DSP和微控制器的应用场合。 <br>ARM9E系列微处理器的主要特点如下： <br>－ 支持DSP指令集，适合于需要高速数字信号处理的场合。 <br>－ 5级整数流水线，指令执行效率更高。 <br>－ 支持32位ARM指令集和16位Thumb指令集。 <br>－ 支持32位的高速AMBA总线接口。 <br>－ 支持VFP9浮点处理协处理器。 <br>－ 全性能的MMU，支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 <br>－ MPU支持实时操作系统。 <br>－ 支持数据Cache和指令Cache，具有更高的指令和数据处理能力。 <br>－ 主频最高可达300MIPS。 <br>ARM9系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。 <br>ARM9E系列微处理器包含ARM926EJ-S、ARM946E-S和ARM966E-S三种类型，以适用于不同的应用场合。 <br>3.4 ARM10E微处理器系列 <br>ARM10E系列微处理器具有高性能、低功耗的特点，由于采用了新的体系结构，与同等的ARM9器件相比较，在同样的时钟频率下，性能提高了近50％，同时，ARM10E系列微处理器采用了两种先进的节能方式，使其功耗极低。 <br>ARM10E系列微处理器的主要特点如下： <br>－ 支持DSP指令集，适合于需要高速数字信号处理的场合。 <br>－ 6级整数流水线，指令执行效率更高。 <br>－ 支持32位ARM指令集和16位Thumb指令集。 <br>－ 支持32位的高速AMBA总线接口。 <br>－ 支持VFP10浮点处理协处理器。 <br>－ 全性能的MMU，支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。 <br>－ 支持数据Cache和指令Cache，具有更高的指令和数据处理能力 <br>－ 主频最高可达400MIPS。 <br>－ 内嵌并行读/写操作部件。 <br>ARM10E系列微处理器主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。 <br>ARM10E系列微处理器包含ARM1020E、ARM1022E和ARM1026EJ-S三种类型，以适用于不同的应用场合。 <br>3.5 SecurCore微处理器系列 <br>SecurCore系列微处理器专为安全需要而设计，提供了完善的32位RISC技术的安全解决方案，因此，SecurCore系列微处理器除了具有ARM体系结构的低功耗、高性能的特点外，还具有其独特的优势，即提供了对安全解决方案的支持。 <br>SecurCore系列微处理器除了具有ARM体系结构各种主要特点外，还在系统安全方面具有如下的特点： <br>－ 带有灵活的保护单元，以确保操作系统和应用数据的安全。 <br>－ 采用软内核技术，防止外部对其进行扫描探测。 <br>－ 可集成用户自己的安全特性和其他协处理器。 <br>SecurCore系列微处理器主要应用于一些对安全性要求较高的应用产品及应用系统，如电子商务、电子政务、电子银行业务、网络和认证系统等领域。<br>SecurCore系列微处理器包含SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210四种类型，以适用于不同的应用场合。 <br>3.6 StrongARM微处理器系列 <br>Inter StrongARM SA-1100处理器是采用ARM体系结构高度集成的32位RISC微处理器。它融合了Inter公司的设计和处理技术以及ARM体系结构的电源效率，采用在软件上兼容ARMv4体系结构、同时采用具有Intel技术优点的体系结构。 <br>Intel StrongARM处理器是便携式通讯产品和消费类电子产品的理想选择，已成功应用于多家公司的掌上电脑系列产品。 <br>3.7 Xscale处理器 <br>Xscale 处理器是基于ARMv5TE体系结构的解决方案，是一款全性能、高性价比、低功耗的处理器。它支持16位的Thumb指令和DSP指令集，已使用在数字移动电话、个人数字助理和网络产品等场合。 <br>Xscale 处理器是Inter目前主要推广的一款ARM微处理器。 </p>
<p>4. ARM微处理器结构 <br>4.1 RISC体系结构 <br>传统的CISC（Complex Instruction Set Computer，复杂指令集计算机）结构有其固有的缺点，即随着计算机技术的发展而不断引入新的复杂的指令集，为支持这些新增的指令，计算机的体系结构会越来越复杂，然而，在CISC指令集的各种指令中，其使用频率却相差悬殊，大约有20％的指令会被反复使用，占整个程序代码的80％。而余下的80％的指令却不经常使用，在程序设计中只占20％，显然，这种结构是不太合理的。 <br>基于以上的不合理性，1979年美国加州大学伯克利分校提出了RISC（Reduced Instruction Set Computer，精简指令集计算机）的概念，RISC并非只是简单地去减少指令，而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC结构优先选取使用频最高的简单指令，避免复杂指令；将指令长度固定，指令格式和寻地方式种类减少；以控制逻辑为主，不用或少用微码控制等措施来达到上述目的。 <br>到目前为止，RISC体系结构也还没有严格的定义，一般认为，RISC体系结构应具有如下特点： <br>－ 采用固定长度的指令格式，指令归整、简单、基本寻址方式有2～3种。 <br>－ 使用单周期指令，便于流水线操作执行。 <br>－ 大量使用寄存器，数据处理指令只对寄存器进行操作，只有加载/ 存储指令可以访问存储器，以提高指令的执行效率。 <br>除此以外，ARM体系结构还采用了一些特别的技术，在保证高性能的前提下尽量缩小芯片的面积，并降低功耗： <br>－ 所有的指令都可根据前面的执行结果决定是否被执行，从而提高指令的执行效率。 <br>－ 可用加载/存储指令批量传输数据，以提高数据的传输效率。 <br>－ 可在一条数据处理指令中同时完成逻辑处理和移位处理。 <br>－ 在循环处理中使用地址的自动增减来提高运行效率。 <br>当然，和CISC架构相比较，尽管RISC架构有上述的优点，但决不能认为RISC架构就可以取代CISC架构，事实上，RISC和CISC各有优势，而且界限并不那么明显。现代的CPU往往采用CISC的外围，内部加入了RISC的特性，如超长指令集CPU就是融合了RISC和CISC的优势，成为未来的CPU发展方向之一。 <br><br>4.2 ARM微处理器的寄存器结构 <br>ARM处理器共有37个寄存器，被分为若干个组（BANK），这些寄存器包括： <br>－ 31个通用寄存器，包括程序计数器（PC指针），均为32位的寄存器。 <br>－ 6个状态寄存器，用以标识CPU的工作状态及程序的运行状态，均为32位，目前只使用了其中的一部分。 <br>同时，ARM处理器又有7种不同的处理器模式，在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下，可访问的寄存器包括15个通用寄存器（R0～R14）、一至二个状态寄存器和程序计数器。在所有的寄存器中，有些是在7种处理器模式下共用的同一个物理寄存器，而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。<br>关于ARM处理器的寄存器结构，在后面的相关章节将会详细描述。<br>&nbsp;<br>4.3 ARM微处理器的指令结构 <br>ARM微处理器的在较新的体系结构中支持两种指令集：ARM指令集和Thumb指令集。其中，ARM指令为32位的长度，Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集，但与等价的ARM代码相比较，可节省30％～40％以上的存储空间，同时具备32位代码的所有优点。 <br>关于ARM处理器的指令结构，在后面的相关章节将会详细描述。 </p>
<p>5. ARM微处理器的应用选型 <br>鉴于ARM微处理器的众多优点，随着国内外嵌入式应用领域的逐步发展，ARM微处理器必然会获得广泛的重视和应用。但是，由于ARM微处理器有多达十几种的内核结构，几十个芯片生产厂家，以及千变万化的内部功能配置组合，给开发人员在选择方案时带来一定的困难，所以，对ARM芯片做一些对比研究是十分必要的。 <br>以下从应用的角度出发，对在选择ARM微处理器时所应考虑的主要问题做一些简要的探讨。 <br><br>ARM微处理器内核的选择 <br>从前面所介绍的内容可知，ARM微处理器包含一系列的内核结构，以适应不同的应用领域，用户如果希望使用WinCE或标准Linux等操作系统以减少软件开发时间，就需要选择ARM720T以上<span style="COLOR: red">带有MMU</span>（Memory Management Unit）功能的ARM芯片，ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。而ARM7TDMI则没有MMU，不支持Windows CE和标准Linux，但目前有uCLinux等不需要MMU支持的操作系统可运行于ARM7TDMI硬件平台之上。事实上，uCLinux已经成功移植到多种不带MMU的微处理器平台上，并在稳定性和其他方面都有上佳表现。&nbsp;<br><br>系统的工作频率 <br>系统的工作频率在很大程度上决定了ARM微处理器的处理能力。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz，常见的ARM7芯片系统主时钟为20MHz-133MHz，ARM9系列微处理器的典型处理速度为1.1MIPS/MHz，常见的ARM9的系统主时钟频率为100MHz-233MHz，ARM10最高可以达到700MHz。不同芯片对时钟的处理不同，有的芯片只需要一个主时钟频率，有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。 <br><br>芯片内存储器的容量 <br>大多数的ARM微处理器片内存储器的容量都不太大，需要用户在设计系统时外扩存储器，但也有部分芯片具有相对较大的片内存储空间，如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间，用户在设计时可考虑选用这种类型，以简化系统的设计。<br>&nbsp;<br>片内外围电路的选择 <br>除ARM微处理器核以外，几乎所有的ARM芯片均根据各自不同的应用领域，扩展了相关功能模块，并集成在芯片之中，我们称之为片内外围电路，如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等，设计者应分析系统的需求，尽可能采用片内外围电路完成所需的功能，这样既可简化系统的设计，同时提高系统的可扩展性。<br></p>
<p>&nbsp;</p>
<img src ="http://www.cppblog.com/milkyway/aggbug/29629.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-08-09 10:38 <a href="http://www.cppblog.com/milkyway/articles/29629.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>何毓琦：一个大学教授在美国的生活</title><link>http://www.cppblog.com/milkyway/articles/27788.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 10 Jul 2007 07:04:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/27788.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/27788.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/27788.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/27788.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/27788.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 除了在工业界全职工作了三年，我的整个学术生涯都是在美国渡过的。尽管我一直只供职于一所大学，我在伯克利、得克萨斯大学奥斯丁分校、伦敦帝国学院做过整学期的访问学者，而且还对全世界无数学校和研究机构进行过短期访问。因此，将我40余年的经历与科学网的中国读者分享大概是一件有意义的事情。此外，在适当的时候，我愿意将这些在美国的经历与中国的情况相对照。当然了，美国大学的种类很多，我将主要讨论研究型大学。一些非常优秀的纯教学院校则不在我的讨论范围之内，如马萨诸塞州威廉姆镇的威廉姆斯学院（Williams College）和宾夕法尼亚州费城的斯沃特穆尔学院（Swarthmore College）。最后，下面写的都是我的个人经历，请不要当作典型或者真理。<br>　　 <br>　　在一流大学晋升主要通过两种途径。第一，成为一名伟大的教师（仅仅优秀是不够的）。也就是说，你能够在教授常见本科课程，比如基础经济学、基础物理、计算机入门等课程的时候发挥创造性和组织能力。这说起来容易，做起来难。因为从学术水平上讲，一个系里能够教这种课的老师很多，你必须表现出超常的教学和创造力。另外，学校里选课人数众多的本科课程其实很少。我在哈佛待了40多年，经常看到非常优秀甚至近乎伟大的老师没有拿到终身职位，不得不离开哈佛。（注：美国大学盛行一种制度，即所谓的&#8220;七年试用期&#8221;，在这七年里，你要么拿到终身职位，要么走人。不遵守这&#8220;七年试用期&#8221;的学校会被列入美国大学教授联合会的黑名单。）<br>　　 <br>　　另外一个晋级的途径当然就是搞研究了。教学基本上只是一个本地行为，而研究则是世界性的。对学校来说，一流的研究工作的性能价格比比教学要高的多，因此学校更看重研究。然而在一流大学里，你的竞争对手是全世界的研究人员。比如在哈佛，在决定你是否能够拿到终身教职的时候，学校会特意把你与世界上同领域的权威放在一起比较。<br>　　 <br>　　我是在1965年拿到哈佛的终身教授职位的，那之后的30年里，我们系没有授予任何一位系统科学领域的年轻教授终身职位。尽管哈佛校长和各系主任绝对不敢承认，我早早就意识到而且不断地教导年轻同事们：&#8220;哈佛付你钱是为了让你维护并不断提高它的世界声誉的，别的都是次要的。&#8221; 因此<span style="COLOR: #ff0000">黄金法则一：尽早建立你的国际研究声誉。</span><br>　　 <br>　　为了搞研究，你必须有经费、有学生。实际上，如果没有经费，你根本不可能供得起学生。在美国，尽管有各类奖学金，大多数研究生还都依靠导师的科研经费支持着。一般一个研究生一年要花掉导师五万美元。如果你的组里一直保持五到六个研究生的话，你每年最低必须保证25万美元左右的预算，而你必须和全美国的同领域科学家们竞争来争取这些经费。你不用指望研究生的头两年能有什么回报，博士生只有到了第三年第四年才开始出成绩，所以导师在录取研究生的时候是做出了很大投资的。我认识不少同事，跟我发誓赌咒再也不招中国学生了，因为他们来一两年就跑掉了，要么转去一个更好的学校，要么有了别的什么机会。不错，美国是一个自由的国家，从法律角度看，学生没有义务必须读完博士，但是从道德角度讲，导师在你身上花了那么多钱，你应该肩负起你的责任。然而，并不是所有中国学生都意识到这一点，这种行为对于后来想来美国读书的中国学生来说等于是过河拆桥。<br>　　 <br>　　还有，一个一线大学教授至少要花25%的工作时间在编写基金申请书、准备研究报告和撰写论文上。因此<span style="COLOR: #ff0000">黄金法则二：擅长写作和演讲</span>，了解什么是最前沿的课题，也就是所谓的&#8220;时势造英雄&#8221;。（当然了，如果你能开创一个崭新的研究领域，而且<span style="COLOR: #ff0000">能够说服全世界这就是最前沿</span>的，那就更棒了。）<br>　　 <br>　　黄金法则一和黄金法则二意味着你必须让全世界知道你是谁。怎么才能做到这一点呢？<span style="COLOR: #ff0000">在优秀的学术期刊上发表文章，在学术会议上好好介绍你的研究</span>。很多科学家以为搞科研是最最重要的，相比之下，写论文和做报告不那么重要。但是实际上，除非你提出了相对论或者搞定了人类基因图谱，你的研究要跟成千上万和你一样聪明的人竞争。实际上，我个人认为，<span style="COLOR: #ff0000">有个好想法，写篇好文章和给个好报告</span>是三项独立的而且同等重要的工作。每一项工作要付出的艰苦努力都是完全不同的。要想做个好报告，仅仅从论文里复制拷贝制作一套PPT是远远不够的，对着论文照本宣科也是远远不够的。我们经常看到一些本来才华横溢的科学家做的报告惨不忍睹，令人不忍卒听。实际上，一个好的报告应该能够让一般听众听懂，同时又给专家同行留下非常深刻的印象。统计数据表明，一篇普通的发表了的科技论文的读者只有5位，其中还包括了论文的编辑和审稿人。但是，一次优秀的讲座的听众可能多达数十人、数百人甚至数千人。大多数听众一个月后大概都不记得你讲座的具体内容了，但是多年以后他们可能还会记得，你的那次讲座非常成功。这种针对听众的讲座能给你带来许多意想不到的好处。目前，各种政府基金管理机构的官员参加大大小小的会议，主要就是为了了解最热门的研究领域，发现那些值得资助的人。你给报告的时候他们很可能就坐在听众中间。那么，让你的报告清晰易懂的重要性就显而易见了。然而，我还是不断地碰到很多研究出色的科学家在做报告的时候完全无视听众的存在，报告晦涩难懂，让人觉得他非常傲慢无礼。我年轻的时候，如果听不懂别人的报告，就怪自己无知；现在，如果我听不懂一个人在说些什么，我就怪那个作报告的人。让报告清楚明白、不浪费我的时间是他的责任。我的座右铭是&#8220;完全可以让任何人在任何特定时间内适当地明白任何事情。&#8221;<br>　　 <br>　　多年以来，投身学术研究意味着接受一种较为贫穷的生活方式，因为学校的工资低于工商业界，但是至少在科学技术领域，情况已经大为改观。为工业界做咨询可以大大增加你的收入，但是做咨询的真正好处在于你处理的是一些实际问题，你经常会受到这些实际问题的启发，转向新的研究方向。而且你取得任何一点成绩都会有一支&#8220;拉拉队&#8221;自动为你欢呼加油。你根本不需要付出额外的努力，说服别人你的工作很重要。你也不会钻牛角尖，在一些没人感兴趣的问题上浪费时间。几乎所有的美国大学都意识到咨询的这一好处，允许教授每周一天时间用于咨询工作。就我而言，我在整个学术生涯中都不断地从事咨询工作，而且我敢说我所有绝妙的研究想法都来源于某项咨询工作，尽管一开始的时候，我对这项咨询项目所知甚少。合适的咨询工作会创造&#8220;三赢&#8221;的局面：客户赢、学校赢、你也赢。<br>　　 <br>　　投身科研的另外一个次要好处是你可以借参加国际会议的机会周游五湖四海。商业界的人出差，时间都很紧，基本上来去匆匆，没什么休闲的机会。但是研究人员出差，会前会后都能找出观光的时间来（比方说王鸿飞博士的博客里写到的）。比起旅行的全部费用，你自费的部分是很少的。有本旅游手册叫做《有生之年必去的1000个地方》，我在40余年的学术生涯里，已经和我太太去了这1000个地方中的 230个，还不算很多这本书没有列出来的地方。中国有句古话叫做&#8220;走千里路胜读万卷书。&#8221;旅行能够让你增长见识，而且在学术界你会和很多第一次见面的国际同行交上朋友，因为你们的研究兴趣相投，所以能够一见如故。他们是你最好的导游。（注：有一次，我让我的一个中国研究生招待一位南非同行，她回来以后非常兴奋，告诉我说这个陌生人竟然能够理解她的博士论文研究中的种种精妙之处，尽管他们来自两个隔着千山万水的不同国家，年龄相差很多而且以前从未谋面。）<br>　　 <br>　　至于研究的乐趣嘛，当你在数个月的艰苦工作后第一次有了不错的发现，你会陷入几秒钟的狂喜——全世界你是唯一一个认识这个真理的人。这样的感觉只可意会不可言传。你坐立不安，来回踱步，彻夜难眠，有时候甚至会高兴到胃疼的地步。我没有在商业界待过，不能百分之百肯定，但是我想这种发现的喜悦大概不亚于赢得一个大订单或者在股市大有斩获。要是我一年能享受一次这样的喜悦，我就很满足了。一个人回顾他的学术生涯，审查他一生撰写发表的所有文章，也许只有10％能够经受时间的考验。这和旅行很相似。你很高兴去过很多地方，但是只有几个地方让你终身难忘。<br>　　 <br>　　最好的一点是，搞研究的人时间比较自由，基本上你可以自行安排。你是你自己的老板。和普通商业界人士比起来，除了申请经费，你不得不做的无聊重复的工作要少很多。你可以在你真心喜欢的工作上投入差不多50％的时间和精力。我一直告诫我的学生，如果你50%的时间喜欢你正在做的工作，那么这就是一个非常棒的工作！因为你喜欢你的工作，所以你会格外刻苦。节假日和平时没有区别。一天工作20个小时、一周工作100个小时更是家常便饭。我已经这把年纪了，而且正式退休了，每天醒着的一半以上的时间还花在学术上。<br>　　 <br>　　通过在中国的所见所闻，还有我在科学网博客上读到的，我发现中国的学术生活正在变得越来越国际化，和世界其它地方越来越像了。我期待着将来与科学网和其它地方的同行们更多地交换意见。（科学网 何姣译）<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 作者<span class=highlight2><a href="http://www.sciencetimes.com.cn/blog/user_index.aspx?userid=1565"><font color=#000000><u>何毓琦</u></font></a></span>：哈佛大学终身教授、美国工程院院士、中国科学院及中国工程院外籍院士、IEEE life fellow&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.sciencetimes.com.cn/blog/user_index.aspx?typeid=921&amp;userid=1565">http://www.sciencetimes.com.cn/blog/user_index.aspx?typeid=921&amp;userid=1565</a><br>
<img src ="http://www.cppblog.com/milkyway/aggbug/27788.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-07-10 15:04 <a href="http://www.cppblog.com/milkyway/articles/27788.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嵌入式X86处理器应用领域</title><link>http://www.cppblog.com/milkyway/articles/24290.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Thu, 17 May 2007 08:29:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/24290.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/24290.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/24290.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/24290.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/24290.html</trackback:ping><description><![CDATA[<a href="http://www.cevx.com/bbs/dispbbs.asp?boardID=19&amp;ID=7348&amp;page=1">http://www.cevx.com/bbs/dispbbs.asp?boardID=19&amp;ID=7348&amp;page=1</a><br><br><strong>让嵌入式无处不在--X86体系－AMD &#8220;Geode&#8221;产品线</strong>
<div style="PADDING-RIGHT: 0px; MARGIN-TOP: 10px; FONT-SIZE: 9pt; OVERFLOW-X: hidden; WIDTH: 97%; WORD-BREAK: break-all; TEXT-INDENT: 0px; LINE-HEIGHT: normal; HEIGHT: 420px; WORD-WRAP: break-word" onload="this.style.overflowX='auto';">
<script language=JavaScript>
ShowTopicEvalInfo(19,7348,5637,19,1,0,0,'您没有权限参与帖子评价',1,0,'尚未评价的帖子','0.0',0,0,0,0,0,0,3,0,'还没有任何人对该帖进行过评价',0);
</script>
X86体系 <br><br>和ARM、MIPS相比，X86架构的嵌入式处理器应用范围要狭窄得多。过去Intel曾拥有完整的嵌入式X86产品线，主要针对工业控制计算机市场，后来它将重点转移到StrongARM和XScale架构，嵌入式X86产品逐渐被忽视。相反，AMD公司在自身实力不断增强的同时也开始重视嵌入式领域，在收购国家半导体公司的&#8220;Geode&#8221;产品线和Alchemy Semiconductor公司的&#8220;Alchemy&#8221;产品线之后竞争力倍增，其中Geode便是属于X86架构。而VIA在进军桌面处理器失败的同时，也将注意力转移到注重低能耗、而不要求高性能的嵌入式市场，推出针对性明确的Eden系列产品而获得市场认可。此外，全美达公司的Crusoe、Effceon产品线中也有对应的嵌入式型号。 <br><br>与ARM架构的产品相比，嵌入式X86处理器普遍拥有高得多的性能，但功耗也高了许多，尽管依然可以维持无风扇运行状态，但根本无法用于PDA、智能手机等完全依*电池运作的掌上计算产品。真正对嵌入式X86处理器产生需求的是<span style="COLOR: red">网络终端、瘦客户机、廉价/低能耗型PC、家庭消费电子产品、POS终端机等要求PC软件延续性的领域</span>，对应设备体积相对较大，不依*电池运行，但要求具有较高的性能、低能耗、低噪音和高可*性等优点。从目前的市场份额和影响力来看，VIA暂时占有一定的领先优势，但AMD的发展势头也极为迅猛。 <br><br>X86体系－AMD &#8220;Geode&#8221;产品线 <br><br>Geode嵌入式处理器原本由国家半导体（National Semiconductor）的信息家电部门掌握，AMD在2003年8月份收购该部门之后便将其收入囊中。Geode的前身其实就是当年鼎鼎大名的Cyrix，在Cyrix转手卖给威盛电子之后，国家半导体将重点转移到嵌入式领域，开发出Geode处理器并创建了相关的信息家电平台。Geode主要针对<span style="COLOR: red">瘦客户机、家庭网络终端、智能显示器、机顶盒和其他的信息家电产品</span>，AMD接手之后将Geode产品线继续发扬光大，同时也导入新的处理架构。 <br><br><br>2004年5月，AMD发布Geode GX和Geode NX两个系列的嵌入式处理器，前者为超低功耗的产品，共有Geode GX 466/0.9W、 Geode GX 500/1.0W和Geode GX 533/1.1W三个型号，实际频率分别为333MHz、366MHz和400MHz，拥有16KB容量的一级缓存，支持MMX/3DNow!指令集。该系列产品其实是在国家半导体的Geode基础上发展而来，谈不上新颖。而Geode NX系列包括Geode NX 1500/6W和Geode NX 1750/14W两款型号，基于Athlon XP处理核心，内置128KB一级缓存，工作频率分别达到1GHz和1.4GHz，具有接近桌面处理器的运算能力。另外，Geode NX也都采用OPGA封装和Socket462接口，占用空间很大。除了核心面积较小外，Geode NX看起来与桌面型Athlon XP处理器完全没两样，直接点说，我们甚至可以将Geode NX看作是削除了二级缓存，低电压运作的Athlon XP处理器。AMD希望，Geode NX可应用于瘦客户机、廉价或低耗能型PC当中。可由于这项业务刚刚起步，Geode的产品优势也不是很明显，AMD尚未赢得下游厂商的广泛认同。然而，凭借AMD日益增长的影响力和强大的技术实力，要成为该领域的领导者似乎不是太困难，如此一来，专注于嵌入式市场的VIA不可避免要面对越来越大的竞争压力</div>
<img src ="http://www.cppblog.com/milkyway/aggbug/24290.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-05-17 16:29 <a href="http://www.cppblog.com/milkyway/articles/24290.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>谈谈软件学院有哪些饭碗型关键课程</title><link>http://www.cppblog.com/milkyway/articles/23627.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Tue, 08 May 2007 07:24:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/23627.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/23627.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/23627.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/23627.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/23627.html</trackback:ping><description><![CDATA[来源：BBS.TONGJI.NET&nbsp;&nbsp;&nbsp; author:<a class=bold href="http://bbs.tongji.net/space.php?uid=13425" target=_blank><u><font color=#0000ff>JacksonWan</font></u></a> [ 版主 ] <br>School of Software Engineering<br>Jiading Campus, Tongji University<br>4800 Cao-An Highway,Shanghai 201804,China.<br>Tel:+86(21)6958-9713&nbsp; &nbsp;&nbsp; &nbsp; Fax:+86(21)6958-9840<br>E-mail: jywan@mail.tongji.edu.cn, Jackson.Wan@gmail.com, <a href="http://sse.tongji.edu.cn/" target=_blank><u><font color=#0000ff>http://sse.tongji.edu.cn</font></u></a><br><br><br>
<div class=t_msgfont id=message2087257>同学又讨论起软件学院的关键课程了，所以我也发表一下看法。<br><br>软件学院的专业基础课程如数据结构、操作系统、数据库原理、编译原理等不必说了，与大多数学校的计算机专业基本相同，这些专业基础课的重要性，此处不想再谈了。将来找工作时，只学以上基础课是绝对不够的，全国的IT专业基本都学这些基础课（只会这些基础课的毕业生车载斗量，不可计数，教学内容陈旧并且严重脱离实际，是当前国内IT教育存在的普遍问题，如果您也是这样，将来就业时会被淹没在茫茫人海中），我们必须有自己的独特优势，才能在激烈的竞争中脱颖而出。十分明显，企业最欢迎的是能立即解决问题的毕业生，不是纸上谈兵者。所以这里我只想说将来找工作时大家赖以为生的饭碗课程。<br><br>目前我院有以下四大金刚课程是专为谋生设置的，属学院的看家课程：<br>1. J2EE Architecture and Programming (Websphere or Weblogic)<br>2、OOAD with UML (Rational Rose)<br>3、Windows Programming (VC++)<br>4、Large-scaled Database (SQL Server,Oracle)<br>很快要开出第五个金刚课程：<br>5. Real-time Operating System (WinCE or Vxworks or Embedded Linux or Linux Kernel)<br><br>当然，最重要的是以上每门课程都应按教师要求认真完成一个大的课程项目（否则等于没学）。再加上软件学院的杀手锏，到IT企业实习（等于实际工作经验），将来拿着完成的一个个项目去找工作和丰实的项目简历，基本上可做到攻无不克，战无不胜。<br><br><br>对于开发平台，我院目前策略是主攻J2EE和VC++。对于Windows平台，因VC++是最难的也是最核心的，所以主攻VC++，若能攻下VC++，Windows平台就全好办了（往上可做GDI、ADO、Winsock、DirectX等应用，往下可做COM、Device driver、Windows CE开发等）。若大家会J2EE，Dot Net就较简单了，所以目前不将Dot Net作为重点，除非以后Dot Net有较大社会需求。<br><br><br>一、企业应用系统类职位<br><br>温饱型饭碗（必备，可对付70%的职位，特别是大公司）：J2EE+UML+SQL<br><br>小康型饭碗（选项，可增加20%的职位）：温饱型+VC++<br><br>富裕型饭碗（选项）：小康型+XML+Web Service+Dot Net（+设计模式）<br><br>特殊型饭碗：一门程序设计语言+一个大型数据库+某项特殊技术 (目前主要紧缺下列人员：IBM大型机开必技术，或者SAP技术（如ABAP编程、Basis系统管理），或者PeopleSoft技术等）。<br><br>面试必考：C、C++、Java、数据结构，一般还会考软件工程、数据库原理、操作系统、计算机网络，外加各金刚课程经验。<br><br>二、嵌入式系统类职位<br><br>温饱型饭碗（必备，可对付70%的职位）：C+C+++RTOS+Assembly。其中RTOS至少应掌握WinCE、Vxworks、Linux Kernel中的一个，并做过这方面的开发项目。若是要学WinCE，必须掌握VC++。Vxworks和Embedded Linux（如RTLinux、ucLinux），必须熟悉C，C++，一般还应知道Assembly。<br><br>小康型饭碗：温饱型+某个嵌入式应用领域。最主要的应用领域目前主要是（1）MPEG编解码技术和DirectX编程 (2)TCP/IP协议栈或某个无线通信协议 ）<br><br>富裕型饭碗：小康型+J2ME，或ARM微处理器结构，或DSP软件开发技术。其中DSP主要应掌握TI或ADI公司的DSP软件开发平台，并且须学信号与系统、数字信号处理这两门电子通信类专业的基础课，否则看不懂DSP软件。<br><br>面试必考：C、C++、Assembly、操作系统、数据结构、微机原理或单片机、计算机网络等，外加某个实时操作系统经验。<br><br>由于应聘嵌入式职位要求较高（有时要求硕士），所以建议嵌入式系统方向的人，也应学J2EE，以防万一应聘嵌入式工作出现困难时，还可转找企业系统类工作。<br><br>至于课程完整的体系结构，可参考\public files\Official Documents (学院官方资料 )\教学与培养计划中的同济大学软件学院软件工程专业(四年制本科生)培养计划(2004级开始)文件，这是一个经反复研究后的一个较全面的教学计划。该计划的设想是使学生将来毕业往以下任何一个方向发展都有专业基础：企业计算、嵌入式、DSP、通信，甚至可往IC设计转，为此增加了一些硬件、电子、通信类专业基础课。<br><br>最后要强调，虽然软件学院的专业名称是软件工程，但这里的&#8220;软件工程&#8221;的含义已广义了，只要是IT业最需求人才的领域，都可以是软件工程专业的培养目标（例如有些软件学院在大搞IC设计），这是在2003年底教育部示范软件学院建设会上大家达成的共识。软件学院的培养特点就是紧密结合社会需求，根本不受&#8220;软件工程&#8221;几个字所制约。<br><br>2004/3/6</div>
<img src ="http://www.cppblog.com/milkyway/aggbug/23627.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-05-08 15:24 <a href="http://www.cppblog.com/milkyway/articles/23627.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>嵌入式系统之Linux vs WinCE </title><link>http://www.cppblog.com/milkyway/articles/18119.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Sun, 28 Jan 2007 10:55:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/18119.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/18119.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/18119.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/18119.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/18119.html</trackback:ping><description><![CDATA[
		<div>
				<font color="#000000">来自 <a href="http://blog.csdn.net/saintony/category/226987.aspx">http://blog.csdn.net/saintony/category/226987.aspx</a><br /><br />计算机最大的市场是嵌入式设备。基本上，含有计算机但是外表并不象计算机的一切设备都可算嵌入式，包括网络设备（如路由器），工控设备（如数控机床），汽车，信息家电, 移动计算设备等各种设备。那么，在这个最大的市场中，Linux和Windows谁更有实用性呢？让我们先分析一下嵌入式领域对OS的要求。</font>
		</div>
		<div>
				<font color="#000000">
				</font> </div>
		<div>
				<font color="#000000">嵌入式领域与PC领域有很大的不同，嵌入式系统都是针对具体应用的专用系统，其软硬件需要面向应用来设计，并且由于嵌入市系统领域极其广泛，不同领域所采用的技术各不相同，所以长期以来，嵌入式领域一直没有形成PC和Server领域的标准化和垄断性，Intel，Microsoft都不是霸主，仅常用的CPU就有数十种之多，常见的有Arm，MIPS，PowerPC等系列芯片，嵌入式操作系统也有数十种，Vxworks，QNX，Symbian，PSOS，Linux，WinCE等等。</font>
		</div>
		<div>
				<font color="#000000">
				</font> </div>
		<div>
				<font color="#000000">归结起来，嵌入式设备有如下特点：<br />1.成本敏感，资源有限多数嵌入式系统具有成本敏感性，它的硬件和软件都必须高效率地设计，量体裁衣、去除冗余。好的嵌入式系统是完成目标功能的最小系统，这样的产品才更具有竞争力。所以，多数嵌入式系统中的硬件资源是很有限的，如处理器速度较低 ，存储器空间较少等。这些都对嵌入式软件系统提出了更高的要求。<br />2.多种硬件平台嵌入式处理器众多，常用的也有数十种，各自具有一定的优缺点和适用范围。这要求嵌入式操作系统支持多种的处理器。<br />3.低功耗对于使用电池的移动计算设备来说，需要具备低功耗的特点。<br />4.安全性和可靠性高很多嵌入式应用，如工业控制，航天和网络设备都要求具有高安全性和高可靠性。有的要求在恶劣环境中，系统仍然能够正常工作。<br />5.部分要求实时许多嵌入式应用要求具有实时处理能力。如航天，工控等。<br />6.多数软件固化存储多数嵌入式设备软件固化存储在Rom或Flash中，较少使用磁盘。以提高其可靠性并减小体积。</font>
		</div>
		<div>
				<font color="#000000">
				</font> </div>
		<div>
				<font color="#000000">以上都对嵌入式OS提出了独特的要求，让我们逐条分析评价Linux和WinCE/Windows的优缺点。<br />1.支持多种硬件平台由于嵌入式设备硬件平台的多样性，CPU芯片的快速更新，嵌入式操作系统要求支持常用的嵌入式CPU，如X86, ARM, MIPS, POWERPC等，并具有良好的可移植性。另外还需要支持种类繁多的外部设备。Linux支持以上几乎所有的主流芯片，并且还在不断的被移植到新的芯片上。而在这方面，WinCE显然差得很远。<br />2.占有较少的硬件资源由于多数嵌入式系统具有成本敏感性，处理器速度较低 ，存储器空间较少，这要求嵌入式OS体积小，速度快。Linux体系结构比较灵活，易于裁减，可以小到2M flash，4M RAM。而WinCE对资源的要求更高。<br />3.高可定制性由于不同的嵌入式应用对系统要求各不相同，这要求嵌入式OS具备高可定制性，能够根据需要方便的增加和减少各项功能模块。这一点对于嵌入式领域至关重要，而Linux由于图形系统不在内核中，且支持模块机制，内核可根据需要加入或去掉功能。其外围工具拥有众多选择，更由于可以自由修改源代码，具有极强的可定制性。而WinCE/Windows根本无法做到这一点。<br />4.具有实时处理能力实时应用分为硬实时和软实时两大类，嵌入式OS需要明确是否支持实时和支持哪一类实时应用，需要提供最坏情况响应时间为多长。Linux和WinCE/Windows最初设计时都没有考虑实时应用，但众多的实时Linux项目已使Linux具备了硬实时和软实时处理能力，硬实时有RT-Linux和RTAI，而2.6中加入了可抢占核心，使得Linux具备了软实时处理能力，此外还有Timsys和Montavista等实时Linux实现。Linux自由开发模式的优点得到了充分的体现。Windows虽然也有第三方提供类似于RT-linux的实时功能，但由于微软未提供这方面的支持，也由于Windows可靠性不能满足要求，很少有人在实时领域使用Windows。但RT-linux已经在美国航天部门，印度军方等得到了广泛应用。还有Montavista,Timsys的实时Linux都有很多成功案例。<br />5.具备强大的网络功能现在，越来越多的嵌入式设备需要具备网络功能。这要求嵌入式OS支持常用的网络协议和可靠的网络功能。Linux的网络功能经过几次改进，其效率，功能都很突出。且具有众多的网络工具，支持几乎所有常见的网络协议。这些使得Linux在网络设备中倍受青睐，很多防火墙，低端路由器等中使用的都是Linux。而未闻WinCE/windows在这方面有什么应用。<br />6.高安全性和高可靠性嵌入式设备往往对安全性和可靠性要求很高，这要求作为基础软件的嵌入式OS具有高安全性和高可靠性。如骨干网的路由器，交换机等。Linux的可靠性是经过实践检验的，并进一步向高端发展，冲击Vxworks, Unix的市场。安全性方面Linux病毒极少，并拥有众多安全增强，有的安全增强Linux达到了B1级别(红旗RFSOS通过了国家GB17859第三级，等同于TCSEC B1级)。而Windows病毒众多，漏洞不断，虽然微软大力宣传其通过了CC标准EAL4级，但是需要说明的是，EAL4仅仅说明Windows在多大程度上满足了它的安全目标，显然更为重要的是这个目标是什么，事实上，它通过的是CAPP的EAL4级，仍然相当于TCSEC C2级，Win2000的可靠性比起98等来说有了明显提高，但尚不足以向高端冲击，其安全性问题也会大大影响它的可靠性，这二者是紧密联系的，不能孤立讨论。<br />7.具有完善的嵌入式GUI和嵌入式浏览器面向用户的嵌入式终端设备如Smart Phone等，都要求嵌入式OS具有功能完善，控件丰富的嵌入式GUI，并支持功能强大的嵌入式浏览器。在这方面WinCE有完善的解决方案，Linux也有QT/Embedded等GUI，Opera等嵌入式浏览器，拥有众多的选择。<br />8.实现嵌入式日志文件系统，具备断电保护能力。这些功能Linux和Windows都能达到。<br />9.能够提供完善的开发工具集。Linux下的开发工具众多，但不如Windows开发工具易用。不过Windows的开发工具不是为嵌入式领域设计的，功能也不完善。<br />10.能够快速启动启动速度二者差不多，但很多嵌入式设备并不需要图形界面，且由于Linux有源代码，在硬件固定的情况下可以加速启动，这时Linux就比WinCE/Windows启动快多了。</font>
		</div>
		<div>
				<font color="#000000">通过以上分析，可以很清楚地看到，总体比较而言，在嵌入式领域Linux比WinCE/Windows具有明显优势。正因为如此，嵌入式Linux比WinCE/Windows应用领域要广泛的多。WinCE的优势在于PC衍生产品，如Pocket PC，高端PDA等。但在其他众多的嵌入式领域中，WinCE就并不适合了。在嵌入式领域，Linux与WinCE/windows均为后发，Windows不拥有在PC领域的垄断优势，二者公平竞争，这时更能清楚地看出他们的实用性差别和发展潜力。嵌入式给了Linux一个自由广阔的天地，充分体现出了Open Source的巨大优势，我们有理由相信：未来是Open的世界</font>
		</div>
<img src ="http://www.cppblog.com/milkyway/aggbug/18119.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-28 18:55 <a href="http://www.cppblog.com/milkyway/articles/18119.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>同济大学软件学院万金友院长谈嵌入式(学习与规划)</title><link>http://www.cppblog.com/milkyway/articles/17122.html</link><dc:creator>milkyway</dc:creator><author>milkyway</author><pubDate>Mon, 01 Jan 2007 07:03:00 GMT</pubDate><guid>http://www.cppblog.com/milkyway/articles/17122.html</guid><wfw:comment>http://www.cppblog.com/milkyway/comments/17122.html</wfw:comment><comments>http://www.cppblog.com/milkyway/articles/17122.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/milkyway/comments/commentRss/17122.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milkyway/services/trackbacks/17122.html</trackback:ping><description><![CDATA[   嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上，通常这些设备的硬件资源（如处理器、存储器等）非常有限 ，并且对成本很敏感，有时对实时响应要求很高等。特别是随着消费家电的智能化，嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、 VCD/DVD/MP3 Player、数字相机（DC）、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪 表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。 <br /><br />嵌入式系统是软硬结合的东西，搞嵌入式开发的人有两类：<br /><br />　　一类是学电子工程、通信工程等偏硬件专业出身的人，他们主要是搞硬件设计，有时要开发一些与硬件关系最密切的最底层软件，如BootLoader、Board Support Package(像PC的BIOS一样，往下驱动硬件，往上支持操作系统），最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚，不足是他们更擅长定义各种硬件接口，但对复杂软件系统往往力不从心（例如嵌入式操作系统原理和复杂应用软件等）。<br /><br />　　另一类是学软件、计算机专业出身的人，主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握，我们完全也可写BSP和 硬件驱动程序。嵌入式硬件设计完后，各种功能就全靠软件来实现了，嵌入式设备的增值很大程度上取决于嵌入式软件，这占了嵌入式系统的最主要工作（目前有 很多公司将硬件设计包给了专门的硬件公司，稍复杂的硬件都交给台湾或国外公司设计，国内的硬件设计力量很弱，很多嵌入式公司自己只负责开发软件，因为公 司都知道，嵌入式产品的差异很大程度在软件上，在软件方面是最有"花头"可做的），所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地，越是智 能设备越是复杂系统，软件越起关键作用，而且这是目前的趋势。<br /><br />从事嵌入式软件开发的好处是：<br /><br />　　（1）目前国内外这方面的人都很稀缺。一方面，是因为这一领域入门门槛较高，不仅要懂较底层软件（例如操作系统级、驱动程序级软件），对软件专业水平要 求较高（嵌入式系统对软件设计的时间和空间效率要求较高），而且必须懂得硬件的工作原理，所以非专业IT人员很难切入这一领域；另一方面，是因为这一领域 较新，目前发展太快，很多软硬件技术出现时间不长或正在出现（如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等），掌握这些新技术的人当然很找。 嵌入式人才稀缺，身价自然就高，越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有 经验的人进行指导开发流程。<br /><br />　　（2）与企业计算等应用软件不同，嵌入式领域人才的工作强度通常低一些（但收入不低）。搞企业应用软件的IT企业，这个用户的系统搞完了，又得去搞下一个 用户的，而且每个用户的需求和完成时间都得按客户要求改变，往往疲于奔命，重复劳动。相比而言，搞嵌入式系统的公司，都有自己的产品计划，按自己的节奏 行事。所开发的产品通常是通用的，不会因客户的不同而修改。一个产品型号开发完了，往往有较长一段空闲时间（或只是对软件进行一些小修补），有时间进行 充电和休整。另外，从事嵌入式软件的每个人工作范围相对狭窄，所涉及的专业技术范围就是那些（ARM、RTOS、MPEG、802.11等），时间长了这些东西会越搞越有 经验，卖卖老本，几句指导也够让那些初入道者琢磨半年的。若搞应用软件，可能下一个客户要换成一个完全不同的软件开发平台，那就苦了。 <br /><br />　　（3）哪天若想创业，搞自已的产品，那么嵌入式是一个不错的主意，这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫“工 程e”的掌上PDA（南校区门口有广告），施工技术人员用该PDA可当场进行土木概预算和其它土木计算，据说销路特好。我认识的某大学老师，他开发的饭馆用的点 菜PDA（WinCE平台，可无线连网和上网），据他说销路不错，饭馆点点PDA让客户点菜，多显派头档次。我记得00级2+2班当年有一组同学在学Windows程序设计课程 时用VC++设计了一个功能很强的点菜系统做为课程项目，当时真想建议他们将这个软件做成PDA，估计会有些销路（上海火车站南广场的Macdonald便使用很漂亮的 PDA给用户点食品，像摸像样的）。这些PDA的硬件设计一般都是请其它公司给订做（这叫“贴牌”：OEM），都是通用的硬件，我们只管设计软件就变成自己的产品了。<br /><br />从事嵌入式软件开发的缺点是：<br /><br />　　（1）入门起点较高，所用到的技术往往都有一定难度，若软硬件基础不好，特别是操作系统级软件功底不深，则可能不适于此行。<br /><br />　　（2）这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多（小企业要搞自己的产品创业），知名大公司较少（搞嵌入式的大公司主 要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业）。这些企 业的习惯思维方式是到电子、通信等偏硬专业找人。由于我院以前毕业生以企业计算为主，所以我院与这些企业联系相对较少。我院正积极努力，目前已与其中部 分公司建立了联系，争取今后能有我院同学到这些企业中实习或就业。<br /><br />　　（3）有少数公司经常要硕士以上的人搞嵌入式，主要是基于嵌入式的难度。但大多数公司也并无此要求，只要有经验即可。<br /><br />　　我院同学若学习嵌入式，显然应偏重于嵌入式软件，特别是嵌入式操作系统方面，应是我们的强项。对于搞嵌入式软件的人，最重要的技术显然是（实际上很多公司的招聘广告上就是这样写的）：<br />　　（1）掌握主流嵌入式微处理器的结构与原理<br />　　（2）必须掌握一个嵌入式操作系统 <br />　　（3）必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。<br /><br />我院在嵌入式软件方面最重要的课程包括：<br /><br />（1）嵌入式微处理器结构与应用<br />　　这是一门嵌入式硬件基础课程，我院用这门课取代了传统的“微机原理与接口”课程（目前国内已有少部分高校IT专业这样做了，因为讲x86微机原理与接口很难找到实际用处，只为教学而已）。我们说过，嵌入式是软硬件结合的技术，搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解，包括ARM的汇编指令系统。若不了解处理器原理，怎么能控制硬件工作，怎么能写出节省内存又运行高速的最优代码（嵌入式软件设计特别讲究时空效率），怎么能写出驱动程序（驱动程序都是与硬件打交道的）？很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器，将来若同学到公司中从事嵌入式软件开发，公司都会给你一本该设备的硬件规格说明书 (xxx Specification)，您必须能看懂其中的内存分布和端口使用等最基本的说明（就像x86汇编一样），否则怎么设计软件。有些同学觉得嵌入式处理器课程较枯燥，这主要是硬件课程都较抽象的原因，等我们的嵌入式实验室10月份建好后，您做了一些实验后就会觉得看得见摸得着。还有同学对ARM汇编不感兴趣，以为嵌入式开发用C语言就足够了。其实不应仅是将汇编语言当成一个程序设计语言，学汇编主要是为了掌握处理器工作原理的。一个不熟悉汇编语言的人，怎么能在该处理器写出最优的C语言代码。在嵌入式开发的一些关键部分，有时还必须写汇编，如Bootloader等（可能还包括BSP）。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩），目前主要还要靠汇编写程序（我看到过很多公司是这样做的）。当您在一个嵌入式公司工作时，在查看描述原理的手册时，可能很多都是用汇编描述的（我就遇到过），这是因为很多硬件设计人员只会写或者喜欢用汇编描述，此时您就必须看懂汇编程序，否则软硬件人员可能就无法交流。很多嵌入式职位招聘时都要求熟悉汇编。<br /><br />　　[小知识]目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等，但ARM占据了绝对主流（资料说手机中几乎100%都是ARM处理器）。ARM是一个只卖知识产权的公司，目前获得购买了ARM CPU核授权许可的大公司很多，包括Intel、Samsung、Amstel、Motorola、Philip等，他们都在ARM CPU核的基础上进行了一些外围扩展，形成自己的处理器（如Samsung S3C2410,Motorola i.MXL9328等处理器都是采用ARM 9内核，指令一级是相同的）。而众多中小公司又购买了这些处理器，设计了各种各样的开发板，如华恒等国内很多著名嵌入式公司都生产基于Samsung S3C2410的开发板，供最终用户使用或供教学实验。在ARM这个食物链上，ARM公司是大鱼，Intel、Samsung等公司是小鱼，而华恒等则是虾米，最终用户（想我们要采购嵌入式开发板的实验室）则是喂虾米的。Intel早期生产的是低端ARM(Strong ARM，相当于ARM 7),现在转向主要生产高端ARM(即Intel Xscale处理器,相当于ARM 10，主要用在高端PDA上,如HP和DELL生产的PDA都采用Intel Xscale，价格较高)。目前应用最多的是ARM 7和ARM 9两类处理器。 ARM 7较便宜，可跑uclinux（是一个不支持高级内存管理功能的嵌入式Linux系统）、Vxworks、uc/os II等实时操作系统，但因处理器不带内存管理单元MMU（无内存分页和地址映射机制，所以不能使用虚拟内存），所以不能跑Windows CE，另外通用Linux中的某些内存管理功能也不能用在ARM 7上。ARM 9是一个带MMU功能的高端处理器，可跑WinCE或通用Linux的大多数功能。以上是我的一点了解，可能有不对的地方。我们学院正在建设的嵌入式实验室（10月底到货）包括30套ARM 7系统（拟采用Samsung S3C44b0x开发板，主要用于嵌入式处理器结构、嵌入式linux课程实验），10套ARM 9系统（拟采用Samsung S3C2410x开发板，主要用于Windows CE课程建设），每套实验板都配了高速仿真器，价格都很贵（比我们招标的DELL PC还贵），很容易损坏，同学应爱护使用。<br /><br />（2） 嵌入式操作系统类课程<br /><br />　　除了WinCE的实时性稍差外，大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括：<br /><br />　　第一类、传统的经典RTOS：最主要的便是Vxworks操作系统，以及其Tornado开发平台。Vxworks因出现稍早，实时性很强（据说可在1ms内响应外部事件请求），并且内核可极微（据说最小可8K），可靠性较高等，所以在北美，Vxworks占据了嵌入式系统的多半疆山。特别是在通信设备等实时性要求较高的系统中，几乎非Vxworks莫属。Vxworks的很多概念和技术都和Linux很类似，主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时，Vxworks用得很多。但Vxworks因价格很高，所以一些小公司或小产品中往往用不起。目前很多公司都在往嵌入式Linux转（听说华为目前正在这样转）。但无论如何，Vxworks在一段长时间内仍是不可动摇的。与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。<br /><br />　　第二类、嵌入式Linux操作系统：Linux的前途除作为服务器操作系统外，最成功的便是在嵌入式领域的应用，原因当然是免费、开源、支持软件多、呼拥者众，这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统，不是微内核的，并且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类：一类是专为嵌入式设计的已被裁减过的Linux系统，最常用的是uClinux（不带MMU功能），目前占较大应用份额，可在ARM7上跑；另一类是跑在ARM 9上的，一般是将Linux 2.4.18内核移植在其上，可使用更多的Linux功能（当然uClinux更可跑在ARM 9上）。很多人预测，嵌入式Linux预计将占嵌入式操作系统的50%以上份额，非常重要。缺点是熟悉Linux的人太少，开发难度稍大。另外，目前我们能发现很多教材和很多大学都以ucOS/II为教学用实时操作系统，这主要是由于ucOS/II较简单，且开源，非常适合入门者学习实时操作系统原理，但由于ucOS/II功能有限，实用用得较少，所以我院不将其作为教学重点，要学习就应学直接实用的，比如 uClinux就很实用。况且熟悉了Linux开发，不仅在嵌入式领域有用，对开发Linux应用软件，对加深操作系统的认识也有帮助，可谓一举多得。据我所知，目前Intel、Philip都在大搞ARM+LINUX的嵌入式开发，Fujitum则是在自己的处理器上大搞Linux开发。目前在嵌入式Linux领域，以下几个方面的人特别难找，一是能将Linux移植到某个新型号的开发版上；二是能写Linux驱动程序的人；三是熟悉Linux内核裁减和优化的人。我院在该嵌入式Linux方面的课程系列是：本科生操作系统必修课，然后是Linux程序设计选修课，最后是嵌入式Linux系统选修课。我院在Linux方面目前已有较强力量，魏老师和张老师熟悉Linux开发，金老师和唐老师熟悉Linux系统管理。<br /><br />　　第三类、 Windows CE嵌入式操作系统：Microsoft也看准了嵌入式的巨大市场，MS永远是最厉害的，WinCE出来只有几年时间，但目前已占据了很大市场份额，特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的场合，WinCE目前已很流行（据说有一家卖工控机的公司板子卖得太好，以至来不及为客户裁减WinCE）。WinCE目前主要为4.2版（.NET)，开发平台主要为WinCE Platform Builder，有时也用EVC环境开发一些较上层的应用，由于WinCE开发都是大家熟悉的VC++环境，所以我院学过Windows程序设计课程的同学都不会有多大难度，这也是WinCE容易被人们接受的原因，开发环境方便快速，微软的强大技术支持，WinCE开发难度远低于嵌入式Linux。对于急于完成，不想拿嵌入式Linux冒险的开发场合，WinCE是最合适了（找嵌入式Linux的人可没那么好找的），毕竟公司不能像学生学习那样试试看，保证开发成功更重要。根据不同的侧重点 ，WinCE还有两个特殊版本，一个是MS PocketPC操作系统专用于PDA上（掌上电脑），另一个MS SmartPhone操作系统用于智能手机上（带PDA功能的手机），两者也都属于WinCE平台。在PDA和手机市场上，除WinCE外，著名的PDA嵌入式操作系统还有Palm OS（因出现很早，很有名）、Symbian等，但在WinCE的强劲冲击下，Palm和Symbian来日还能有多长？我院可能是全国高校中唯一一家开设专门的"Windows CE嵌入式操作系统"课程的学校，这主要是基于以下原因：我院本身前面便有Windows程序设计课程，同学学过VC++后再学WinCE,非常方便自然，通过学习WinCE同样也可了解嵌入式软件的一般开发过程，对Linux有惧怕心理的同学也很合适。很显然，嵌入式Linux永远不可能替代WinCE，而且将来谁占份额大还很难讲，毕竟很多人更愿意接受MS的平台，就像各国政府都在大力推LINUX已好长时间，但您能看到几个在PC机上真正使用LINUX的用户？据我观察,目前在嵌入式平台上,LINUX是叫得最响,但还是WinCE实际用得更多.嵌入<br />式LINUX可能更多地是一些有长远产品计划的公司,为降低成本而进行长远考虑; 二是微软亚洲研究院对我院WinCE课程的支持计划，我们也很希望将来我院能有同学通过微软的面试去实习。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,他们很需要精通WinCE的人。<br /><br />　　总结关于嵌入式操作系统类课程，若您觉得自己功底较深且能钻研下去，则可去学嵌入式Linux；若您觉得自己VC++功底较好且想短平快地学嵌入式开发，则我院的WinCE课程是最好的选择。<br /><br />（3） 嵌入式开发的其它相关软件课程<br /><br />　　搞嵌入式若能熟悉嵌入式应用的一些主要领域，这样的人更受企业欢迎。主要的相关领域包括：<br />　　① 数字图像压缩技术：这是嵌入式最重要最热门的应用领域之一，主要是应掌握MPEG编解码算法和技术，如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此，我院已预订了一位能开设数字图像处理课程的博士。<br />　　② 通信协议及编程技术：这包括传统的TCP/IP协议和热门的无线通信协议。首先，大多数嵌入式设备都要连入局域网或Internet，所以首先应掌握TCP/IP协议及其编程，这是需首要掌握的基本技术；其次，无线通信是目前的大趋势，所以掌握无线通信协议及编程也是是很重要的。无结通信协议包括无线局域网通信协议802.11系列，Bluetooth，以及移动通信（如GPRS、GSM、CDMA等）。<br />　　③ 网络与信息安全技术：如加密技术，数字证书CA等。我院有这方面的选修课。<br />　　④ DSP技术：DSP是Digital Signal Process数字信号处理的意思，DSP处理器通过硬件实现数字信号处理算法，如高速数据采集、压缩、解压缩、通信等。数字信号处理是电子、通信等硬件专业的课程，对于搞软件的人若能了解一下最好。目前DSP人才较缺。如果有信号与系统、数字信号处理等课程基础，对于学习MPEG编解码原理会有很大帮助。<br /><br />（4）嵌入式开发的相关硬件基础<br /><br />　　对于软件工程专业的学生，从事嵌入式软件开发，例如数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外，汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理，但重点应是在嵌入式软件，特别操作系统级软件，那将是我们的优势。<br /><br />　　我们的研究生里有些是学电子、通信类专业过来的，有较好的模拟电路和单片机基础，学嵌入式非常合适。嵌入式本身就是从单片机发展过来的，只是单片机不带OS，而现在很多嵌入式应用越来越复杂，以至不得不引入嵌入式操作系统。另外，为追求更高速的信号处理速度，现在在一些速度要求较高的场合，有不少公司是将一些DSP算法，如MPEG压缩解压缩算法等用硬件来实现，这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术，这方面的人目前市场上也很缺。<br /><br />(5) 题外话<br /><br />　　另外，能写驱动程序的人目前是非常紧缺的（驱动程序也可归于嵌入式范畴），包括桌面 Windows 中的DDK开发环境和WDM驱动程序。公司每时每刻都要推出新产品，每一个新产品出来了，要能被操作系统所使用，是必须写驱动程序的。写驱动程序就必须掌握操作系统(如Windows或Linux)的内部工作原理，还涉及到少量硬件知识，难度较大，所以这方面的人很难找。想成为高手的同学，也可从驱动程序方面获得突破。我可说一下自己的经历，三年前我曾短暂地在一家公司写过WinCE驱动程序（正是因为知道这方面的人紧缺，所以才要做这方面的事），尽管那以前从未做过驱动程序，应聘那个职位时正是看准了公司是很难招聘到这方面的人，既然都找不到人，驱动还得有人做，这正是可能有机会切入这一领域的大好机会。面试时大讲自己写过多少万行汇编程序，对计算机工作原理如何清楚，简历中又写着我曾阅读完两本关于Windows Driver Model的两本英文原版书，写过几个小型的驱动程序练习程序（其实根本没写过，我们的同学将来千万不要像我这样，早练就些过硬功夫，就不至于沦落到我这等地步，就不用像我那样去“欺骗”公司了，我这是一个典型的反面教材），居然一切都PASS（当然最重要的是笔试和面试问题还说得过去），这只能说明这一领域找人的困难程度。公司本就未指望找到搞过驱动的人，找个有相关基础的人就算不错了。做了以后，发现也并不是怎样难的。其实搞驱动程序的工作是很舒服的，搞完一个版本就会空一段时间，只有等公司新的芯片推出或新的OS出现后，才需要再去开发新一版驱动，那时有将近一个月时间空闲着在等WinCE .NET Beta版推出，准备将驱动程序升级CE .NET上，现在在软件学院工作整日忙，无限怀念那段悠闲时光。<br /><br />　　很巧合，最近本人无意中再次体会到了嵌入式的迷人之处。上周我那用了3年的手机终于不能WORK了。此次更新，除要求有手机常见功能外，最好有MP3功能（现在很多英语听力都有MP3文件），最好有英汉词典，最好还能读WORD文档。最后选了个满足以上条件的最便宜的手机DOPOD 515（斩了我2.2K，但想想这也算自己对嵌入式事业的支持，这样便也想开了），算得上最低档的智能手机了。回来一查，手机的about显示，本手机Processor是ARM，其OS是MS Smartphone（即WinCE .NET 4.2），这么巧合，简直可做为学习嵌入式课程的产品案例了（等我们的WinCE课程开得有声有色后，希望能从微软研究院搞些Smartphone来开发开发）。有OS的手机果然了得，金山词霸、WORD、EXCEL、REGEDIT等居然都有smartphone版的，PC上的MP3、DOC等居然在download时都可被自动转换成smartphone格式，真是爽。完全可用Windows CE自己开发一些需要的程序download到自己的手机上。现在市面销售PDA智能手机火爆，MS总是财源滚滚。但我已发现国产的ARM+LINUX手机出现在市面上，价格只1.2K。 <br /><br />　　要么走ARM+WinCE，要么走ARM+LINUX，要么走ARM+VXWORKS。每个搞嵌入式的人都可选一条路，条条大路通罗马。<br /><br />　　声明：以上对嵌入式的解释估计有错，任课教师最有权威性，一切以任课教师为<br />准。<br /><br /><img src ="http://www.cppblog.com/milkyway/aggbug/17122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milkyway/" target="_blank">milkyway</a> 2007-01-01 15:03 <a href="http://www.cppblog.com/milkyway/articles/17122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>