免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1736 | 回复: 5
打印 上一主题 下一主题

EPSON(爱普生)嵌入式Linux工程师的学习总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-26 15:19 |只看该作者 |倒序浏览
EPSON(爱普生)嵌入式Linux工程师的学习总结

AKAE(亚嵌教育)学习总结
                         -2006.9.3     Liyang

转眼间在AKAE的学习即将结束了,回忆二个月前一个刚迈出校园的我,和现在的我,可以说已经完全的改变。

    自己接触电脑应该是在小学,第一次在妈妈工作的地方,看到了DOS,现在还记得在那个黑黑的屏幕下编出第一个批处理程序的喜悦而且并在为什么这个机器竟然会做这么人性化的事情上困惑了很多年,有可能现在才真的知道为什么吧。不过在那时就有了以后要成为一个电脑高手的想法(当然,当时肯定不知道黑客这个词了)。原来在大学,在同学里自认为已经是个高手了,可以帮人家解决一下WINDOWS上的一下小问题,帮同学免费的在网吧上网,在院里可以和老师一块做项目。但是真正发觉自己只是在电脑业余爱好者的行列中的时候是在大四时,参加了计算机那些科班出身的人的一个项目。做完项目后,大家都在找工作了,我心里非常明确的告诉自己不能做一个肤浅的“高级程序员”。自己想了解更多电脑背后那些神秘的东西,当时知道LINUX给了我一个机会,自己又是一个自动化出身的学生,所以当时看到了AKAE,心中一亮,更坚定了自己不去加入那些盲目去招聘会的大军里了。终于在七月份,我毕业了,也如愿的来到了由中国一些开源项目领头羊们带领的AKAE(亚嵌教育)。

下面进入了第一周的学习,是LINUX的一些入门操作,这周对我最大的改变是,现在我感觉如果用鼠标去右键新建一个东西好麻烦,好慢。如果偶尔在WIN下,写些东西,经常不由的ESC->:->w,而不是CTRL+S了。我知道,我已经对WIN上的很多东西陌生了,对LINUX又已经是爱不释手了。

第二周的学习,是一些C语言的编程。看看现在自己编的CODE,又看了看在学校自己编过的一些程序,一个.c叫一个程序,最惨的还有一个.c+一个main叫一个程序。又看看在AKAE编的code,一个程序,不,应该说是一个小项目吧,有一个或多个文件夹,里面有README,加了(#ifndef,#define,#endif)的头文件,和规范的编码风格的.c,里面还有一些#ifdef DEBUG等语句的代码。现在还有点不敢相信二个月的我的变化了。

第三周,是对自己编程的升华了,都知道UNIX和C的关系,那么UNIX环境的编程无疑是对C语言的深入理解。在这周里,我学到了一直非常想得到的但书本上不会讲的东西。例如,一个a.out的形成一步一步是怎么过来的,它在运行时的堆栈的样子,在内存中的布局是什么样子。站在了这种角度再去编程,再去debug,爽的感觉可能只有自己能够体会的到吧。

真正对思想的改变还是对UNIX编程的学习,IO编程,进程,信号量,线程,还有网络的编程中,我学到了很多操作系统级的知识,和网络协议的知识。当然更重要的是,在AKAE众多武林高手的指点下,自己也有勇气并可以看懂一些传说中的葵花宝典级的书了。

增加内功后,自己知道了UNIX编程的名言“尽量提供机制,而不提供策略”。自己编程是站在用户态呢,还是内核态。当在用户态编程时,我的程序的进程上下文是什么样的,自己调用的一些标准库函数和系统调用时,他们是如何陷入内核态执行的。现在编程时脑子里就会有这么一个立体的画面,爽。(谁都喜欢知道自己到底在做什么,自己做得事情后面真正在发生什么。)

     UNIX编程的另一大特点莫过于同步了,想一想在同一时刻,你的程序在同时做着很多不同的事情,即使只有一个处理器,也可以让你感觉到一种并发的效果,这样有很多问题会得到简化,很多程序更加高效合理。(例如像交互这种“慢”系统调用) 当自己真的可以真正的理解和考虑到同步的精髓时,自己可能又会小骄傲一下吧。现在只是知道在多进程,线程(LINUX里好像线程也是用进程实现的吧)编程时,如何通过信号量来同步每个进程,如何用锁的机制来保护共享资源。加锁的顺序和技巧,避免死锁。当然信号更是个很广很有用的概念,以后要通过实践继续总结。

还有AKAE的大作业制度真的很好,让我体验到了网络编程的乐趣,几个人用自己编的程序聊天的感觉,又是一种从未有过的喜悦。

第四周我们进入了ARM嵌入式体系结构的学习中,有人说,其实计算机就二条命脉:处理器+操作系统。 在前三周在自己不知不觉的编程中,学到了自己一直希望得到的操作系统的知识后,这周AKAE又一次及时的给出了另一条计算机世界的命脉-处理器的体系架构。原来在学校只是学过微机原理,现在看到了精简指令集架构的美,知道了2/8原则的成功思想,无奈那些老牌的CISC的处理器要兼顾它以前的东西。当了解了一些“大脑”-处理器是怎么干活的时候,例如:异常,中断,内存管理,流水线,等知识后,感觉自己离计算机这个世界又进了一步。

这周的试验更是有趣,看着自己编的跑马灯,听着蜂鸣器发出的音乐(虽然音质上。。。),不过这都是自己的成果呀,一个字--“享受”。

第五周进入了实用的嵌入式LINUX的应用的学习了,通过这周的学习和具体的试验,让我真正的理论联系了实践。自己建立交叉编译环境,了解BOOTLOADER,自己编译内核自己做文件系统,完全的DIY的计算机出来了。

第六周对C进行了一些强化的编程训练,也算是前一段的总结和让我看到变化的一周。而且在这周里,最重要的是我知道我自己是一名程序员了,我编出来的程序不是为了兴趣自己用了,我的用户可能是一些街上的大妈,所以我不得不站在它们的角度去提供一些功能,和做出一些出错处理。对出错处理这方面感觉收益非浅。自己在编程时也对内存这个“雷区”更加小心了。

李明老师(AKAE教学总监)提出的状态机的编程思路使我内功又一次的提高,因为李老师刻意的反复提出,我知道了它的重要性,上网一查更知道这个属于编译原理的概念是一个应用非常广泛的思想。谢谢老师们还教给了我们他们的宝贵经验和方法。

第七周,不敢相信自己要开始编写设备驱动了,不过这是真的,现在可以编写一个简单的字符设备驱动了,还有一些关于硬件中断的驱动例程。脑子里有了字符设备,块设备,网络设备的编程逻辑,现在头脑中就可以呈现出内核态的一些样子。站在内核态编程是一种挑战,也是一种升华吧。以后一定会在工作的实践中去进一步的尝试。

    第八周,内核,对就是这个LINUX最宝贵的东西,这个计算机技术发烧友的珍宝。不过它也是最复杂的了。AKAE的高手给我指明了一条学习内核的明路,让我不会走进一个森林而迷路。以后内核肯定是要深入的研究的,这个摆在自己面前最大最好的东西不能浪费了!

    说实话,这几个月自己在AKAE学到了太多太多,“外功”,“内功”同时大增。更重要的是我还学到了看到了另一种精神,看到了AKAE的老师们那种对计算机技术的执著,对中国开源的贡献,他们的实力可以说比外面一些这个CEO那个高级架构师强很多,但是他们依然朴素的生活,抱着共同的理想和目标。他们才是真正搞技术的,他们是中国程序员的骄傲。这个是我在AKAE学到的最大的财富了,让我以后更加坚定的钻研技术,以后我要更加努力的学习,争取加入他们这个大家庭,做一些有意义的事情。
   
    作者就职于EPSON(中国)公司,AKAE 2006年学员。
转自:http://www.akaedu.org/new_web/edu/student/liyang.html

论坛徽章:
0
2 [报告]
发表于 2006-12-26 17:29 |只看该作者
有点像广告啊!

论坛徽章:
0
3 [报告]
发表于 2006-12-26 18:07 |只看该作者
............
henaldo 该用户已被删除
4 [报告]
发表于 2006-12-27 12:29 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2006-12-27 13:42 |只看该作者
你这个猪,你要不是广告,我就不在学linux了,死去,大家不要在回了,别让这小子顶起来,让他沉下去,沉的快快的

论坛徽章:
0
6 [报告]
发表于 2006-12-30 17:26 |只看该作者

说句公道话,李明哥们还是挺好的

说句公道话,李明哥们还是挺好的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP