收获,成长,感悟 2011-01-05 08:51:48

收获,成长,感悟

吴争蔚

很有幸能在大一的时候就得到这个机会,参与首届大学生创新实验项目。回首两年来走过的点点滴滴,每一次失败,每一次进步,每一次艰辛,每一次收获,都在我的大学生活的纪念册上留下了浓墨重彩的一笔。在整个项目中,我主要负责代码的阅读,扩展和移植,资料的查找合改进方案的研究,通过和另外一个同学一起商讨,一起探索,分工合作,我不仅在学习方面有了一定的进步,也感受到了合作的快乐。

刚刚开始实验的时候,面临的第一个困难就是专业知识的匮乏。大一下,程序设计课上学习的编程知识只算得上是入门的本领,再加上实验需要在Linux操作系统下用终端进行编程和调试操作,我感到了很大的压力和不自信。实验室的学长们给了我很大的帮助,他们给我宝贵的学习资料,耐心地为我讲解每一个我不懂的知识点。同时,我也充分利用图书馆的资源,学会自己主动地探索,在查找问题和解决问题的能力上有了很大的提高。通过一点一滴地学习,我对linux操作系统由全然不知的状态进步到了能熟练地编写程序,在终端写命令来对系统进行操作。第一个暑假我只在家呆了一周,其余的时间就在图书管理对着一本本指导书学习ubuntu。想起那段日子,虽然很辛苦,但却格外充实。

在逐渐掌握了linux的使用之后,我们进入到利用Sitsang开发板实验的阶段。通过设备驱动实验,Qt/Embedded的移植和t1程序的测试,以及文件挂等几个实验,我更加对嵌入式系统的研究有了一定的兴趣。虽然实验板底层的原理我们没有很深入地掌握,但是看着每一次成功编译后开发板上屏幕显示或者发光二极管显示出指定的现象,我都能深深地体会到成功的喜悦。在基础实验的基础上,我们还利用开发板进行了程序的扩展,是板子能够感受得到它与水平地面的角度,并通过一个屏幕上的小球显示出来,仿佛是一个游戏机的界面。这个过程不仅是我的基础知识掌握的更加牢固,也让我对研究的方向有了更加理性的认识,学习兴趣也大大加强。

我们的项目主要是研究嵌入式微内核架构的操作系统,这个概念还是比较宽泛的。要想成功地在某一个课题上有大的进步和突破,就要将研究的内容细化。一个比较新的操作系统的概念--------L4操作系统成为了我们首要研究的问题。面对着几十个文件的操作系统的代码,开始我们难免不知所措。在这个课题中我主要负责研究此操作系统的实时性和安全性的原理,阅读代码,扩展代码的工作。在和实验室的学长的共同学习下,我们列出了L4操作系统的系统架构,并分工分阶段地列出了任务分配和进度计划。每周的例会上我们都要汇报自己在一周内的学习情况和项目进展情况,以ppt的形式来展示。记得第一次讲解我负责的real-time部分的内容,虽然当时好多内容已经烂熟于胸,不过面对着那么多师兄师姐,自信让我似乎语无伦次,对他们提出的问题也回答的不是很好。不过正是这样一次次的会议,一次次的锻炼,我更加熟悉了科研的过程和精华所在,也明白了研究是一个主动探索的过程。在每一个在科学研究面前,每一个人都彷佛是宇宙中的一个小飞船,没有师生身份的差异,没有年级的不平等,只有自己积极主动地探索,虚心地向他人学习请教,诚心地与他人互通有无,才能促进整个项目的发展。

另一个我最为印象深刻的就是在项目进展中计划的重要性。每一次会议后我们都要对自己在接下来的一周中要做的工作进行陈述,并在下一周开会的时候进行总结。在每一个学期初都要想好整个项目在18周中应该以怎样的进度达到什么程度的进展。时间节点是一个项目中最最重要,需要严格去遵守的东西,一旦在某一周出现意外情况没有按照时间进度表去完成,就要在后面的工作中快马加鞭,赶上落下的工作,否则就会影响整个研究工作。开始的时候我们并没有很好地遵循时间计划,常常因为专业课程任务的繁重就把项目的工作放在了一边,为此我们也没少遭到批评。实验室的学长们为我们做出了很好的榜样,他们综述能把自己的工作做得有条不紊,计划也指定得很合理,不会因为太过繁重而无法完成任务,用我不会给自己留太多的放送时间。研究项目不仅仅是对知识本身的探索,也是对自身时间管理的一个探索,只有合理地分配好时间,才能够有效地开展工作。

在接下来的工作中,我们在L4操作系统上跑其它代码,并通过对现有系统的程序的研究加以改进,以实现具有新的架构的驱动程序。在这个阶段中,我负责的主要任务是研究现阶段驱动程序的发展,以及对新的驱动架构进行研究,进行代码的移植和扩展。在这个阶段中,我体会到了怎么样在现在的知识水平上通过创新提出自己的想法并对已有的产品进行改造。首先,我通过查找资料学习了在l4嵌入式操作系统上跑简单的程序的方法。虽然刚刚下手的时候也是困难百出,不仅涉及到linux系统编译的问题,还要考虑L4平台的搭建。在fiaso网站上,根据操作的内容指导,我利用vmware虚拟机上实现了L4平台的搭建。在随后的工作中,我从最简单的helloworld程序入手,通过编译,实现了它在L4系统下的运行。我们的目标是在L4平台上进行新的驱动架构的搭建,于是研究驱动程序的发展和改进之处也成为了进一步的任务重点。通过查找资料我们首先对现有的驱动程序的结构和发展情况有了大致的了解,并对需要改进的地方做到心中有数。JAVA虚拟机是在windows下面通过vc来编写的一个概念模型,它用C语言实现Java虚拟机的功能,编写和扩展代码成了有一个巨大的挑战。通过研究学习之前学长的学习资料和阶段性成果,我们对java虚拟机的模型框架有了大致的了解,并提出了自己的改进方案。通过扩展和调试代码,我们实现了在嵌入式平台上对新的驱动程序的测试,得到了切实的改进后的数据。当然,虽然我们的项目取得了一定程度的进步,但是在一些问题上还没有得出最优的解决办法。比如关键部分设置的不合理,进程间通信的不完善,相信通过进一步的学习,这个研究问题一定会有更大的突破。

通过这个项目,我觉得最重要的不是我真正地学到了什么知识,而是怎样学习,怎么自主地发现问题和解决问题。在整个项目过程中,学长和老师给了我们很多的指导,但更多地是要靠自己开动脑筋,去想一些更深层次的理论,并通过自己的思考和创新对现有的成果进行改善。同时,我也更加清楚的明白科研的过程。科学研究本身也是一门艺术,就如同只有马拉松选手才能够感受到那种运动后的那种酣畅淋漓一样,只有参与到项目中才能从一个团队中一点一滴的进步里感受到成功和合作的喜悦。

最后,我要感谢所有在这个项目中让我成长和收获的人。我的每一点进步,都离不开指导老师应忍冬来时每一次不厌其烦地指导和建议,学长学姐每一次耐心的帮助,还有队友的共同合作。这样的经历一定会让我在未来的路上受益匪浅,我也一定会利用我所学到的,为科学和社会做出更大的贡献。

 

吴争蔚,上海交通大学电子信息与电气工程学院2007级电子科学与技术专业,第二期“国家大学生创新实验计划”——“嵌入式多核处理器下的操作系统研究”项目参与人;指导老师:应忍冬讲师,上海交通大学电子信息与电气工程学院

 
 
 
@2008 上海交通大学教务处     网络信息中心技术支持