会议记录
时间:2010.11.10
与会人:陈老师、两个师姐、10级的六个研究生
记录人:张超
会议主题:大师姐分享她的项目经验,方式主要以大家自由交流为主
大师姐一开始给我们讲了她的学习经历,让我们一定要戒骄戒躁,学习是一个过程,即便之前所学的内容很云里雾里的,但随着学习的慢慢深入以后,形势会变的渐渐明朗,就如陈老师说的,这是一个看风景的过程,也许前方有更美的风景,何必太过纠结于细节而停止不前,也许在不同时间不同经历下再回味时体会已产生质的飞跃。
师姐还给我们讲了GDB调试工具在项目中甚至在平时学习中都扮演着异常重要的角色,有时我们对于代码的执行流程不甚了解,虽然我们可以采用最简单的在合适的位置插入printf()来跟踪,但这只是初级的方法,如果采用GDB,如插入断点、观察点、捕捉点、以及单步调试来进行动态的跟踪的话效果会更好。另外在学习内核过程中还学会慢慢来看汇编级的代码,我们可以使用objdump命令来反汇编一下,结合反汇编代码能更好理执行过程,也更容易查错,这对大家来说是个挑战,难度系数很大,在陈老师编原理与应用那本书上第二章有一个小例子,代码非常简单,main函数里面调用printf(),先编译,再用反汇编命令来查看,它的汇编级代码却有十几二十行,而且很难理解,希望大家能够注重平时的积累。
在项目中非常重要的一件事就是工具的使用,例如虚拟机virtualbox,在虚拟机中可以放心大胆的实践,出了问题大不了就是重新安装。另一个是查看源码的工具,如WINDOWS下的source insight、linux下的LXR+VIM等,前者我在linux下用wine打开还是比较稳定的,避免了使用虚拟机安装xp这步,后者我没有试过,有兴趣的同学可以到网上搜下。还有嵌入式工具arm-linux-gdb远程调试工具等,这个工具可以通过编译安装后来远程跟踪板子上代码的运行。
在内核学习过程中,师姐建议我们如果学习2.6版的内核过于困难可以从2.4版的入手,至少在内核中少了MMU内存管理单元,这样能够避免很多繁琐的细节,更加接近操作系统本来的面貌。在学习内核的过程中,一定要有相关的理论基础,如果没有理论来指导的话光靠看内核源码就想把内核学习就如同摩天大楼没有地基一样,这是很危险的一件事情。
在做项目过程中很少会把做项目的流程进行讲解,而是以对具体每个人分配一个任务,这时候就要发挥自己的主观能动性,结合提供的相关文档要学会自己来查资料,甚至要落实到很多具体的细节,这就是考验自己能力的时候了,总之大家在学习的过程中一定要把动手的能力提高起来,这才是正道。