大家好,今天小编关注到一个比较有意思的话题,就是关于学习linux内核编程教程的问题,于是小编就整理了3个相关学习Linux内核编程教程的解答,让我们一起看看吧。
Linux内核和驱动开发工程师的发展前景怎么样?
我亲身体验,我之前是做数控系统开发的,做了有七八年,有x86的产品也有arm的产品,x86的linux相对开发驱动的地方不多,arm上比较多,存储,显示的,u***的 ,各种总线的,音频的,网络的,很多地方只要有订制需求都要改。驱动开门槛比较高,主要会软件还得了解些硬件知识,硬件的原理图,设备的数据手册,工作特性都要会,入门难 但是一旦入门了就跟其他的一样做多了就熟悉了。之前公司是linux+qt,今年离职了进了一家安卓开发的公司,现在还在做安卓的驱动开发,感觉大同小异,只是硬件平台变了,开发的内容仍是没变。驱动这一块,人比较少,相对待遇也会好一些,现在我也不知道未来会不会随着年龄越大,会被淘汰掉,但是linux本身的应用范围是挺广的,而且作为一个成功的开源项目,只要社会有需求,后面应该还是会被广泛应用,至于个人就看自己的能力和精力了!
嵌入式是一个做硬件产品为主的行业,通俗讲就是工业电子和消费电子量大产业. 消费以手机,智能音箱,家用物联网设备等为代表;工业控制如机床,交通,广告牌等各种非消费类电子产品. 做嵌入式可以先看行业,再看职位. 因为行业决定了薪资的高低. 这点和互联网区别很大.
其次具体到职位,嵌入式,这是对操作系统内核源码,基础语言C/C++/汇编,硬件电路知识,开发系统环境,编译Makefile原理,代码编辑VIM,这些都需要熟悉,开发软件是和硬件打交道的,懂硬件会看原理图是必备的. 另外对外部硬件通信协议U***,SDIO/EMMC,PCIE等要熟悉,这些是调试和开发驱动的基础,如果涉及无线通信Wi-Fi,蓝牙,可能要阅读相关802.11协议和SIG协议. 以太网部分TCP/IP要熟悉.
嵌入式还有音频系统也要调试,camera接口要会调试,LCD接口要会调试.
总的来说入门嵌入式对基础知识要求很高,3-5年入门到基础调试没有问题. 但是如果要编写Linux内核驱动或是开发协议有关的驱动,这些需要5-10年的锤炼,对协议和内核机制需要更深层次的理解.
如果只是做Linux应用层开发来说,需要掌握的知识要浅一点,只要了解libC库函数和内核SYSCALL如何用即可,但是进程间通信,线程操作,文件系统操作等必须融会贯通,这样才能开发好应用程序.
UI就是QT,基于安卓那叫app开发了,不是嵌入式范畴. 但是安卓设备底层调试属于潜入式开发.
供参考
linux内核和驱动开发,有什么经典的书籍推荐吗?
听过linux四库全书不?linux内核[_a***_]与实现、深入理解linux内核、linux设备驱动程序、linux内核源代码情景分析。 前三本国外的经典,英文还好的话最好看原版。linux内核设计与实现重在原理,比较好理解。深入理解linux内核比前者多了些细节。
如何学习嵌入式linux?
stm32确实是一个瓶颈。而且现在毕业的相关专业的学生越来越多,stm32的技术门槛和知识点确实相对容易掌握。那么在主流的电子行业对嵌入式的需求是比较大的。主要是在于Linux的广泛运行。哪怕是安卓系统也是可以运行在Linux相同的电路开发板上的。
开发板的话就不好推荐了,有点像广告了。
学习Linux分为两个大方向,底层驱动和上层运用,这也是操作系统的特点。底层涉及驱动系列,对于硬件有比较直接的相关性。而应用几乎和硬件没他大的关系,主要掌握的是如何使用Linux操作系统,涉及各种指令,可以看 很多Linux运用的书籍。进而写一些基于Linux GCC的程序来熟悉这个。可以玩一玩树莓派板子,这个资料比较多,可玩性,掌握知识是很有帮助的。最近出了新版的,可以备一个用来学习Linux。
而底层是比较枯燥的,需要投入比较多。主要是驱动层比较难,所以需求很多,不愁找不到工作。仅仅会单片机已经确实不太有很大的竞争力了。底层需要掌握很多知识,随便去买一个比较流行的开发板就行了,主要是资料多,不懂的好找到人来问。否则自己一个人遇到卡壳的就很慢了。可以看看原子的,stm32你应该知道他很出名,打算出Linux开发板了。
我目前只会各类单片机及电路板的设计,当然也自学了服务器后端的简单使用,以及网站前端开发,Android APP开发,IOS还没怎么学,时间不那么丰富。你趁着毕业前三年的业余时间,学习一下是很不错的,时间相对多一点,但是也需要靠自觉性,毕竟你的同事可能都在打游戏,你能坚持走下去吗?
技术工作是非常枯燥的,希望你能有找到自己的方向,多积累,多思考。
到此,以上就是小编对于学习linux内核编程教程的问题就介绍到这了,希望介绍关于学习linux内核编程教程的3点解答对大家有用。