您的位置首页  家电资讯  新闻

谈谈linux内核的学习路线,具体要怎么学?

  • 来源:互联网
  • |
  • 2020-06-25
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

学习linux内核,这个可不像学一门语言,c或者java一个月或者3月你就能精通掌握。学习linux内核是需要一步一步循序渐进,掌握正确的linux内核学习路线对学习至关重要,本篇文章就来分享学习linux内核的一些建议吧。

1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。

2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。

3. 有了Linux内核的了解,还需要具体研究Linux内核源码。经典的就是《深入理解Linux内核》Daniel P. Bovet 写的。学习这本书的时候,要对着内核代码看着学。这本书学起来相当费力了,那么多多代码要研究。不过这本书如果学明白了,恭喜你,Linux内核你已经很熟悉了。

4. 如果要开发设备驱动,可以学习《linux设备驱动程序》O'Reilly出版社的。这本作为驱动的入门是很好的资料。另外还有一本《精通Linux 驱动程序开发》也是不错的教材,可以参考着看。学习驱动,免不了要学习一些硬件的协议和资料,研究哪个就找到相应的硬件文档,把硬件的工作原理搞明白。这些就不细说了。

5. 网络部分,学些Linux网络部分就学习《深入理解LINUX网络技术内幕》。这本书把Linux的网络部分讲的非常清晰透彻。但是通常不做这方面的工作研究,也不用研究这么深,毕竟现在相关职位较少。

6. 现在Linux相关的工作,多集中在一些嵌入式开发领域,arm,mips等,要学习以下这些体系架构的的资料,了解CPU的设计和工作方式。ARM就看对应的芯片手册,讲的很细致。MIPS就看 《see mips run》,有一二两版,两版内容有些差异,推荐都看。

7. 补充一点经验。不要认为Linux很庞大,很复杂,就觉的很难学。任何东西认真学下来都是能学会的,看你都恒心和毅力了。另外,不要走弯路,不要看市面上讲什么Linux0.11的那些书,直接学你要学的东西。就像学C语言看什么谭浩强一样,弯路走了,力气没少花,还严重影响学习效果。

关于linux内核学习路线,再多说几句应用编程,有时候经常会需要的:

1. 学习Linux应用编程,建议看《unix环境高级编程》,把里面的例子都做一遍,会对整个Linux编程有系统都认识。

2. 针对Linux,有本 《Linux系统编程》,学完上一本,这本很快看一遍就懂了。主要是针对Linux具体懂一些内容,讲的挺全了,很实用。

3. Linux网络编程,系统的学习一下《unix网络编程.卷1,套接字联网api》,基本上网络应用相关的程序就都没问题了。

在嵌入式linux学习过程中,你是否会经常有下面的这些感觉:

▪ 是不是学完操作系统原理后觉得纸上谈兵不过瘾?

▪ 是不是面对浩若烟海的Linux内核源代码,迷失在代码的海洋里,无从下手不知所措?

▪ 是不是还没有清晰地理解进程调度算法的实现,操作系统的工作机制?

针对linux内核的学习内容:

▪ 你知道Linux内核的架构、常用数据结构,以及内核模块是怎样开发的吗?

▪ 你清不清楚Linux网络协议栈,并对计算机网络TCP/IP通信原理有深入的理解?

▪ 你有没有试过自己动手开发一个内核防火墙?

机会来了!海信集团(Hisense)资深网络工程师丁光宇讲师,现场做客电子发烧友直播间,给大家带来一场精彩的基于Linux内核驱动开发、Linux内核网络协议栈,计算机网络TCP/IP协议的现场直播 ,手把手教会大家玩转Linux网络协议栈!

直播主题:硬核解析之Linux内核+网络防火墙开发

直播内容:

1.Linux内核的架构

2.Linux内核的常用数据结构

3.Linux内核模块开发

4.内核网络协议栈的介绍

5.内核netfilter原理

6.动手开发一个内核防火墙

讲师简介:

丁光宇,资深网络工程师,主持开发了多款智能网关、交换机、ONU、智能物联等网络通讯设备,在网络通讯以及嵌入式系统开发调试方面积累了大量实战经验。拥有博通、MTK、Realtek等平台的多年开发经验。对linux内核网络协议栈以及各种网络通讯协议有着深刻的理解。

1. 精通linux内核驱动开发,精通linux内核网络协议栈,PON相关协议。对计算机网络TCP/IP协议有非常深入的理解。

2. 有丰富的网络通讯产品的设计经验。

3. 大型通讯企业研发部门的管理能力。

4. 丰富的研发团队管理经验

5. 能熟练运用C/C++,java,python,shell,js,html等编程语言。

完成软件下载+安装后,联系助教老师小包(微信号:brownb1009)领取课程 (备注:linux内核)

助教小包

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186