畅谈从业以来两大难题 - 和中兴资深工程师一起大啖Linux的设计与开发
2014年10月15日 12:03 来源:电子发烧友论坛 作者:陈晨 我要评论(0)
2、电子发烧友:自从业以来,遇到最大的困难与挑战是什么?能否给我们分享些您的经验以及心路历程?
韦东山:
转行!转行是最困难的,这意味着你前面积累的经验几乎没用了,还需要学习全新的知识──这需要大量的时间。我的第1份工作是做硬件的,后来由于工作需要也写一下单片机程序,但是软件水平是很低的。决定转行学习Linux时,这需要有操作系统的概念知识、全新的ARM体系架构知识、完全没接触过的软件设计理念(写单片机时就是一个while循环,Linux里都是面向对象的思想)。
这千头万绪,要学习的知识很多,从哪里入手,从哪里抽出时间,这就是2个最大的困难。
· 对于时间,我是暂停工作闭门自学了半年;
· 对于从哪里学习,我是先学习了赵炯的《LINUX内核完全注释》,这让我对操作系统有比较深的认识;接着把 ARM开发板当作单片机学习裸板,把bootloader涉及的硬件操作单独写程序试验;最后开始学习驱动程序的编写。从裸板程序开始,直到Linux驱动,这就是我的主要学习方法,这也是《嵌入式Linux应用开发完全手册》的章节顺序。
3、电子发烧友:IP Camera带音频视频功能、可以联网互动,因此可能会被恶意入侵、隐私泄密,工程师如何做到保护?
韦东山:
IP Camera的使用涉及3个部件:用来录像录音的IP Camera、提供数据传输或存储的服务器、观看音视频的客户端(PC或手机等)。
我们会根据IP Camera的使用场景,为每一个阶段提供数据保护,比如:
a. 客户拿到IP Camera时,要登录服务器注册帐号,并绑定设备。在服务器上的WEB服务就要注意隐私保护,必要时引入手机验证。
b. 客户端向服务器提出请求时,要输入用户名和密码,这可以参考Linux的远程登录密码验证功能。比如使用ssh协议登录Linux服务器时,会提示你输入用户名和密码。相信这一套机制非常可靠,我们可以直接引用。
c. 三者之间传输数据时,数据要先加密再传输。可以使用公用密钥等加密方式。
d. 在服务器上存储的数据,如果你对安全保护不在行,可以使用大公司提供的云服务。
我只是给出一个思路,经验不丰富。欢迎探讨。
4、电子发烧友:IP Camera运动控制部分可以实现拍摄角度的调节,能否通过自动控制摄像头的角度实现人脸、头部信息的锁定、实时运动捕捉,大概怎么实现的,能否介绍一下?
韦东山:
术业有专攻,图像处理不是我们的专长。但是要做这一块,我们会这样做:先使用开源软件比如OpenCV,如果它达不到要求,再求助于专业人士。
5、电子发烧友:传统的Linux驱动开发和Android驱动开发有何区别?现在android那么火,它跟LINUX是什么关系?学好了你们的视频,对学习android有何帮助?你们后续有无录制android视频的计划?
韦东山:
简单地说,Android驱动=Linux驱动+封装。 Android应用程序是使用java编写的,Linux内核和驱动程序是使用C语言编写的,java APP要访问驱动程序,这中间需要插入一个封装接口。核心还是底下的Linux驱动程序;对于封装,你只要了解了封装规则,基本就可以一通百通了。所以,如果你的目标是掌握Android驱动,那么我们的视频很适合你。我们后面也会讲讲Android驱动的封装,它不会太难。
对于Android应用程序,可以认为它跟Linux的关系不大。即使你没有Linux知识,也可以在1个月内入门Android应用开发──我只是说,你会开发简单的界面。程序的核心永远是在界面之后,所以不要沾沾自得。比如手机游戏,背后的图像处理算法、游戏的逻辑,这才是重点。如果你的目标是掌握Android应用,我反而觉得你应该跳出“Android”来学习。应用程序的领域实在太多,有网络、图像处理、安全、搜索等等,由你的兴趣来选择方向吧。Android应用只是一个人机界面,把背后的复杂系统展示给客户来使用,如果你只满足于“写界面”,好吧,1个月速成,再花几个月深入理解 Android的框架。容易上手的,就容易掉价。前几年Android应用开发由于会的人还不多,工资挺高;这两年就开始往下掉了;要保住你的薪资水平,除了界面你还需要掌握“核心技能”:界面背后的支撑。
我没有打击Android应用的意思,对于急于找到工作的人,我反而建议去学习Android应用。你应聘到工作后,公司自然会压着你去了解产品的相关知识,否则你也写不出界面啊。
6、电子发烧友:工程师一般时间都是比较紧张的,您是在什么情况下写的《嵌入式LINUX应用开发完全手册》这本书呢?这本书是想给大家分享些什么呢?
韦东山:
辞职写的。我2005年自学Linux时在网上发布了“S3C2410完全开发流程”的学习笔记,被出版社的编辑看到。他们在2006年联系我写书,那时我在中兴上班。在公司上班期间,根本没有时间写书:工作累个半死,回来哪有精力写。于是决定2007年辞职专门写书。
我学习时,大部分的知识都是从网上搜索得来,这需要耗费巨大的精力去寻找,并且不系统。作为初学者,不知道去搜什么来入门,也不知道搜什么来深入。所以,我想出一套“完全教程”,让零基础的入只看这本书,就可以入门并掌握比较深的、工作中可以使用的知识。
好吧,其实也是被编辑以名利相诱,然后催我写写写!
本文导航
- 第 1 页:和中兴资深工程师一起大啖Linux的设计与开发
- 第 2 页:畅谈从业以来两大难题
- 第 3 页:软件?硬件?工程师的职业发展抉择
用户评论
查看全部 条评论
查看全部 条评论>>