如何学习linux内核编程技术,linux内核编程入门

kodinid 15 0

大家好,今天小编关注到一个比较意思的话题,就是关于如何学习linux内核编程技术问题,于是小编就整理了3个相关介绍如何学习Linux内核编程技术的解答,让我们一起看看吧。

  1. git用什么内核开发?
  2. Linux内核和驱动开发工程师的发展前景怎么样?
  3. 为什么要学习Linux内核?

git用什么内核开发

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码版本控制软件

Linus Benedict Torvalds,芬兰赫尔辛基人,著名的电脑程序员,Linux内核的发明人及该计划的合作者,也是git之父

如何学习linux内核编程技术,linux内核编程入门-第1张图片-安济编程网
图片来源网络,侵删)

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要熟悉.

如何学习linux内核编程技术,linux内核编程入门-第2张图片-安济编程网
(图片来源网络,侵删)

嵌入式还有音频系统也要调试,camera接口要会调试,LCD接口要会调试.

总的来说入门嵌入式对基础知识要求很高,3-5年入门到基础调试没有问题. 但是如果要编写Linux内核驱动或是开发协议有关的驱动,这些需要5-10年的锤炼,对协议和内核机制需要更深层次的理解.

如果只是做Linux应用层开发来说,需要掌握的知识要浅一点,只要了解libC库函数和内核SYSCALL如何用即可,但是[_a***_]间通信,线程操作文件系统操作等必须融会贯通,这样才能开发好应用程序.

如何学习linux内核编程技术,linux内核编程入门-第3张图片-安济编程网
(图片来源网络,侵删)

UI就是QT,基于安卓那叫app开发了,不是嵌入式范畴. 但是安卓设备底层调试属于潜入式开发.

供参考

为什么要学习Linux内核?

1 学习一些操作系统的理论知识,一些概念。比如:进程,内存管理,文件系统等等。

关于这一方面的书籍太多了,自己找一本就行了2 学习x86汇编,虽然linux用的是AT&T汇编,但二者只是格式不同而已。

而且学习x86汇编有助于了解x86系统结构书籍推荐王爽的《汇编语言》 ,我学的时候用的不是这个,后面看到这本书,才觉得自己做了“苦功了”。

学完大部分汇编指令时,找些汇编程序读读,熟悉这些指令的用法。

不需要有写汇编程序的能力,能读就行了,当然会写更好3 赵炯的《Linux内核0.11完全注释》。

这个linux内核版本低,作者也讲得很详细。不过关于x86体系的那一部分,作者讲得很繁琐,这一部分一定要大体看懂,那后面章节的内容就没有多大的问题了。

我先把书通看了一遍,用了1个月的时间

后来,再返回来一个一个研究,用了2个月。

之所以看这本书,是让自己对内核有个实质的感受,不仅仅只是理论上的东西。

4 毛德操的《linux内核情景分析》。linux内核版本2.4.0,这本书很厚,上下两册。

到此,以上就是小编对于如何学习linux内核编程技术的问题就介绍到这了,希望介绍关于如何学习linux内核编程技术的3点解答对大家有用。

标签: 内核 linux 开发

上一个8518核桃编程培训教程,核桃编程l1到l8全套课程

下一个java语言中a,java语言中a++和++a有什么区别