三九宝宝网宝宝教育学龄段教育

Linux内核和驱动开发工程师的发展前景怎么样

02月20日 编辑 39baobao.com

[建筑工程的就业前景和发展方向]朋友 1、如果是专门的建筑学,实际上是建筑设计学,象东南大学、同济大学等王牌专业都是对入门要求非常高。 一般的建筑类专业是指的建筑工程施工类的,尤其是技校,更是如此,毕业以...+阅读

或许这样的标题,应该是由像Linus或Greg KH这样的大师级的高手才有资格写的吧。但是作为我来说,也许我更想把这个标题作为一个疑问句来使用,整理一下自己的认识,用来勉励自己,和大家一起努力实现这个目标。认识肤浅的地方,还请大家见谅。从事嵌入式开发是当下比较热门的一个领域,做职业规划的时候,比较清晰的是有三条路可以走:C

1、嵌入式软件开发工程师 C

2、嵌入式硬件开发工程师 C

3、嵌入式驱动开发工程师。其中 C1是计算机相关专业的同学可以选择的,因为学习的课程相对偏软,平时在PC上编程比较多,做软件开发会相对轻松。C2是学习电子电路的同学可以考虑,对模拟电路比较熟悉,可以设计出质量好的电路板。C3的难度比较大,需要同时熟悉软件和硬件,真正的做到软、硬相结合,搭建软件和硬件互通的桥梁,当然了在业界的待遇也是相对来说比较高的。我们可以去一些招聘网站查看相关企业的岗位要求,这样学习的时候就有了一个比较明确的目标。今天看到一位前辈的博文,谈究竟应该如何成为优秀的驱动开发工程师,很受鼓舞,在此与大家分享共勉。-------------------------------------------------------------- 何谓优秀的驱动开发工程师 首先要定义,我所认为的一个优秀的驱动开发工程师,应该具备什么样的能力,这里列一下按照从易到难的顺序,个人认为应该会有几个方面的要求吧:能够独立完成驱动的功能开发任务 能够分析和优化驱动的性能,针对特定硬件扬长避短 能够充分了解模块相关软硬件能力、发展方向,辅助应用工程师最大化利用硬件能力 能够辅助硬件工程师规划硬件设计,预防问题,谋求功能模块的最佳方案 能够协助定义系统架构,合理规划软硬件,谋求产品实现的最佳方案 作为一个驱动工程师,很多时候不是完全从头开发一个完整的子系统,而是针对特定硬件和平台移植驱动,增加功能,解决Bug等等,如果从这方面外在的表现来看:解决问题的境界,大概会有这么几个阶段:不知道哪里存在BUG 不知道如何解决BUG 知道如何解决BUG 知道如何发现BUG 知道如何规划BUG 知道如何发现BUG(而不是撞上BUG)其实并不简单,需要你对系统有足够的了解,能够察觉可能出问题的地方。 而规划Bug更难,需要你能对问题的轻重缓急做出准确的判断。没有的完美的世界,只有适当的取舍,规避和预防。而从解决问题过程的角度来看,我认可以分为几个阶段:BUG发生 ->大量跟踪调试代码 ->终于发现并解决BUG BUG发生 ->理论推测可能原因 ->迅速定位并解决BUG 阅读代码 ->预测可能出现的BUG ->证实并解决BUG--------------------------------------------------------------- 应该具备怎样的素质 那么要达到上诉最佳境界,需要具备和发展哪些素质和能力呢?

一、足够的硬件知识 能看简单的原理图,能够分析硬件异常的可能原因,能够使用常见的硬件调试工具,我想这是做为优秀的驱动工程师,区别与其它软件工程师,所不可避免、必须具备的专业素质。当然取决于你具体从事的工作,对这方面的要求不尽相同。对于驱动开发者来说,不了解所开发驱动外设的硬件原理和相关背景知识,也许很多时候,也能够完成一些移植,修补的工作任务,但这就好比无源之水,无根之木,我相信是很难走远的。

二、多多益善的操作系统知识 做驱动开发,特别是纯粹的外设的驱动移植工作,刚开始的时候,也许你并不需要了解很多操作系统本身的知识(像内存管理,进程调度,锁,各种内核子系统的原理框架等等),也能顺利完成手头的一些工作。但是,如果一但需要优化驱动,需要完善软件框架,或者是遇上疑难问题需要跟踪解决,对操作系统,内核本身的了解,就体现出它的价值了。对于Linux内核驱动开发者,尤其如此,首先,代码是完全开源的,你有条件去了解背后的运行机制,其次,Linux内核和各个组成子系统总是在迅速的进化发展中,不进则退,你也有必要跟上时代发展的脚步。

三、强烈的好奇心,持续的热情 如果驱动开发不仅仅是你的爱好,更是你养家糊口的途径,我想,很多时候,你大概不会有机会专注于一两个你最有经验的模块的开发和维护。随着能力的成长,势必会要求你接触和掌握越来越多的各式各样的驱动模块的开发。对于这件事,包括我自己,有时候大概都会有如下几种反应:哇,原来的工作做太久了,太乏味了,很高兴能做不同的工作。啊?又要做别的模块啊?我手头的工作已经太多了!这个模块没意思,我不想做。相信多数有志青年们都是第一种表现了,不过,有些时候,我发觉,很多人的这种热情其实并不持久,一个新的模块没做多久,就再次厌倦了,是已经炉火纯青了么,未必,或许只是修改了几个BUG以后不甚其烦。很多时候,我面试前来求职的工程师时,发现简历上这个也做过,那个也做过,但是一旦问到解决了什么问题,所做过的驱动,框架、流程、原理之类的问题的时候,就一问三不知了。我觉得如果自己的目标是优秀,那么最起码的标准应该是对具体驱动模块相关的子系统的整体工作流程,框架,具备足够的好奇心,乐于去了解和学习,而不仅仅是为了完成任务而工作,否则的话,很难...

以下为关联文档:

轻化工程这专业的前景和发展怎么样有没有前途学出来能干什么轻化工程专业 业务培养目标: 业务培养目标:培养在染整工程、皮革工程、制浆造纸等轻纺化工领域从事工业生产、工艺设计、科学研究、技术管理和新产品开发的工程技术人才。 业...

Java工程师的发展前景1、Java程序员市场需求缺口大 近年中国在移动互联网这块发展非常迅猛,各种创业公司、小团队如雨后春笋般冒出来,对安卓开发、Java、Web的需求变大。但存在人才发展跟不上市场...

软件工程师发展前景怎么样首先,软件工程师是一个很大的概念,它包括软件开发工程师、软件测试工程师等。那么总的来说,无论是软件开发工程师,抑或是软件测试工程师,它们的前景都是非常好的。IT行业的薪资是...

网络工程师未来的前景怎么样系统网络职业前景及现状 网络工程师成为最具发展“钱景”的职业 网络科技世界的兴起,带动了整个社会经济和科技世界的革命性发展,同时也为数以万计的计算机人才展现了一个广阔...

金融工程发展的由来和前景由金融和数学、统计、工程学等交叉形成了“金融工程(Financial Engineering)”。在过去的几十年中,特别是近二十年来,在全球范围,融资与其相关的技术环境发生了很大的变化,可以说,...

5G互联网开发的发展前景怎么样这是一个非常大的话题,作为一名科技工作者,我从技术发展的角度来探讨一下5G时代互联网将有哪些发展方向。 首先,5G通信的技术标准主要向物联网领域倾斜,所以未来物联网将成为5G...

Android是基于Linux内核的那么Linux与Android到底是什么关系linux内核,表示。。它是基于linux的。。。表明,linux的很多东西,android是支持的。。。 但是 没有说,linux是基于android的,所以,表明。。。电脑上,不能用android程序。。。 这个内...

工程管理专业的发展前景怎么样一、工程管理专业就业方向 目前我国工程管理专业还处于研究、探索和发展阶段,但基本上以管理学、土木工程(或水利工程)为主干学科,有工程项目管理、房地产经营管理、投资与造价...

造价工程师的发展前景如何从建筑工程行业着重于全过程管理开始,建筑经济投资环境下的成本管理成为各个环节的重中之重,因此,作为全过程成本管理的执行者——造价工程师便顺理成章地成为热门职业。而具备...

推荐阅读
图文推荐