Linux内核开发

https://www.cnblogs.com/pugang/p/9728983.html

很早之前就想写一篇文章总结一下Linux Kernel开发的相关资料,项目的原因,再加上家里的一些事情,一直没能找到闲暇,今天终于有些时间,希望可以完成这篇文章吧。首先需要说明的是不是所有的人都需要搞内核开发,因为据笔者了解,大部分的软件工程师的工作都在用户态开发,学习内核开发事倍功半,没什么实际意义,另外,初学编程的人也不太适合搞内核开发,因为信息量相对比较大,而且枯燥晦涩,很容易让初学者还没有入门,就已经放弃了,再有就是不想投入时间,总是试图走捷径的,内核开发可能也不适合你,因为必要的练习和资料学习可能是必须的。

那么我们再来谈谈什么样的人可能需要学习Linux内核开发,

  1. 从事相关的Linux Kernel开发工作,可能不得不学

  2. 有无尽的好奇心,闲的蛋疼, 就想刨根问底

  3. 想为开源社区做贡献





Linux kernel开发的资料确实都比较晦涩,而且一般来说篇幅不短,一般来说仅靠看书来学习是不够的,读书的同时最好可以git clone一份linux源代码,对照练习,事半功倍。我的推荐学习顺序是 LKD-> ULK->LDD->ULNI->ULVMM, 另外学完这些内核的实现,如果可以对照用户态的使用加以巩固学习,效果更佳,推荐LSP。LKD业内大牛robert love的扛鼎之作,篇幅不长,却对内核开发的重点内容提纲挈领,实属不易。接下来是ULK,经典中的经典,读起来稍显晦涩,每读一次,都有新的收获,虽然书有些老了,没有跟进最新的Linux版本,但是概念学习足矣,LDD实战性很强,适合边学边做,加深概念的理解,ULNI是Linux网络方面的专著,ULVMM是Linux虚拟内存方面的专著,相对于各自的专题都有更加深入的剖析。至于LSP,也是出自于robert love,讲解细致到位,毫无拖沓之感,读起来十分舒服,顺畅。

总结

本文总结了Linux Kernel 开发进阶的6本书籍,笔者每本书都读过不止一遍,收获满满,体会颇多,希望对大家有所帮助。

Linux内核开发的更多相关文章

  1. 如何参与Linux内核开发(转)

    本文来源于linux内核代码的Document文件夹下的Hoto文件.Chinese translated version of Documentation/HOWTO If you have any ...

  2. 嵌入式系统Linux内核开发工程师必须掌握的三十道题(转)

    嵌入式系统Linux内核开发工程师必须掌握的三十道题 如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师,试试看! 1) Linux中主要有哪几种内核 ...

  3. 如何参与linux 内核开发

    如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维护者.   英文版维护者: Gre ...

  4. Linux内核开发进阶书籍推荐(不适合初学者)

    Linux内核开发进阶书籍推荐(不适合初学者) 很早之前就想写一篇文章总结一下Linux Kernel开发的相关资料,项目的原因,再加上家里的一些事情,一直没能找到闲暇,今天终于有些时间,希望可以完成 ...

  5. 如何参与linux内核开发

    如何参与linux 内核开发   如果想评论或更新本文的内容,请直接联系原文档的维护者.如果你使用英文 交流有困难的话,也可以向中文版维护者求助.如果本翻译更新不及时或者翻 译存在问题,请联系中文版维 ...

  6. 编码风格——linux内核开发的coding style

    总结linux内核开发的coding style, 便于以后写代码时参考. 下面只是罗列一些规则, 具体说明可以参考: 内核源码(Documentation/CodingStyle) 01 - 缩进 ...

  7. [arm驱动]Linux内核开发之阻塞非阻塞IO----轮询操作【转】

    本文转载自:http://7071976.blog.51cto.com/7061976/1392082 <[arm驱动]Linux内核开发之阻塞非阻塞IO----轮询操作>涉及内核驱动函数 ...

  8. 嵌入式Linux内核开发工程师必须掌握的三十道题

    如果你能正确回答以下问题并理解相关知识点原理,那么你就可以算得上是基本合格的Linux内核开发工程师. 1. Linux中主要有哪几种内核锁?(进程同步与互斥) (1)自旋锁:非睡眠锁 (2)信号量: ...

  9. 浅谈 Linux 内核开发之网络设备驱动

    转自http://www.ibm.com/developerworks/cn/linux/l-cn-networkdriver/ 网络设备介绍 网络设备是计算机体系结构中必不可少的一部分,处理器如果想 ...

随机推荐

  1. svn / git SourceTree

    开发使用SourceTree 忽略文件这块老弄错,这次专门博客一下,使用CocoaPods 开发项目, 忽略步骤如下:  忽略文件内容如下 *.xcworkspace xcuserdata *.loc ...

  2. Javascript 小数保留2位

    1.字符串截取法 function get(){    var s = 22.127456 + "";    var str = s.substring(0,s.indexOf(& ...

  3. Oracle11g:分区表数据操作出现ORA-14400异常处理

    Oracle11g:分区表数据操作出现ORA-14400异常处理 问题: 当对已分区的表数据进行操作(例如新增,修改),出现异常提示: ORA: 插入的分区关键字未映射到任何分区 分析: 意思说的是插 ...

  4. Apache 浏览器访问限制配置

    浏览器访问限制配置 user_agent收入的浏览器中,我们通过百度,谷歌很容易就可以查到相关的一些资料,方便了我们对知识的查找,但在某些特定情况下,我们并不希望有人可以通过某写搜索引擎直接访问到我们 ...

  5. Apache 静态缓存配置

    静态文件缓存 静态缓存在客户端下进行缓存,可以设置缓存文件类型与缓存时间,提升客户端访问站点速度. 语法格式 ExpiresByType type/encoding “<base> [pl ...

  6. Windows7中pagefil.sys和Hiberfil.sys文件删除与转移

    第一步.在开始的功能表的搜索栏里输入 cmd,然后在搜索结果中的 cmd 按下右键,点选[以系统管理员身分运行] 第二步.在命令提示符窗口里输入下面命令然后按下Enter: powercfg –h o ...

  7. Pandas描述性统计

    有很多方法用来集体计算DataFrame的描述性统计信息和其他相关操作. 其中大多数是sum(),mean()等聚合函数,但其中一些,如sumsum(),产生一个相同大小的对象. 一般来说,这些方法采 ...

  8. Pandas IO工具

    Pandas I/O API是一套像pd.read_csv()一样返回Pandas对象的顶级读取器函数. 读取文本文件(或平面文件)的两个主要功能是read_csv()和read_table().它们 ...

  9. angular components

    最近写了一套angular 组件,希望大家支持: Github: https://github.com/zhantewei2/ng-ztw webSite:http://39.108.193.57:3 ...

  10. python脚本4_求1到5阶乘之和

    #求1到5阶乘之和 # a = 1 sum = 0 for i in range(1,6): a = i*a sum = sum+a print(sum)