【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

很多学习linux kernel的同学都会陷入到一个误区当中。一方面,他们希望自己学习的东西大而全,恨不能理解全部的kernel代码;另外一方面,他们常常无法将学习到的知识应用到工作当中,这会导致一种感觉,好像学习了很多东西,但是基本上都没有什么用。

所以,这里我建议同学们可以从这几个角度去理解内核就可以了。既可以学习到知识,也可以在现实中发挥作用。

1)注重对kernel整体结构的把握

这主要包括kernel怎么启动,怎么加载驱动,怎么加载文件系统,怎么编译等等。

2)了解kernel内核层、中断的处理流程

这主要包括了kernel是如何处理系统调用和中断的。

3)了解kernel的编译和调试。

大多数同学喜欢看linux的书籍,却不怎么去调试,其实用qemu仿真学习是最好的学习方法,没有之一。

4)了解vmlinux.txt

了解vmlinux.txt,即kernel dump出来的文件,这是学习汇编最好的方法,没有之一。

5)了解arch目录下某一个体系结构的代码

现在的代码分工非常严格,比如kernel支持很多的cpu,每一个cpu又可以有很多的soc,每一个soc又可以有很多的platform。一定要了解一款。

6)了解kernel驱动代码

大部分kernel开发的同学都是以驱动开发为主,所以platform device/ platform driver/bus一定要好好掌握。

7)signal机制

signal机制是unix/linux os的重要特性,一定要好好掌握。

8)实践比理论更重要

看太多的书,不如自己实践一下。代码十行不如手写一行,手写十行不如汇编一行,说的就是这个基本道理。

希望大家都能找到适合自己的kernel学习方法。:-)

随想录(如何学习内核)相关推荐

  1. 随想录(学习wrk的代码)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 早几年,有一份差不多200m大小的文件在网上疯传,这份文件不是别的,正是windows的ker ...

  2. 手机安卓学习 内核开发

    官网开源代码 Documentation - MiCode/Xiaomi_Kernel_OpenSource - Sourcegraph   Xiaomi 11T Pro GitHub - MiCod ...

  3. 随想录(学习《许式伟的架构课》)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 市面上关于软件架构的课程大概有这么几种, 1.设计模式类,比如<设计模式>.< ...

  4. 随想录(学习nxp rt1052 soc)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 在国内市场上,stm32是谜一样的存在.工控领域,除了51单片机,大概就是stm32的应用最广. ...

  5. 随想录(学习消费类soc芯片)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 要说起消费类的soc,国内做的比较好的企业还是有一些的,比如瑞芯微.全志.新岸线等等.目前,这些 ...

  6. 随想录(学习使用virtualbox软件)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 就我个人认为,虚拟软件是一个伟大的发明.无论是学习.应用方面,虚拟软件为这个社会创造了巨大的价 ...

  7. 随想录(学习英文的好处)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 我曾经和我的外甥女说,千万不要把英文丢了.因为不管你承认不承认,如果出国的话,相互沟通的主要工 ...

  8. go语言学习--内核态和用户态(协程)

    go中的一个特点就是引入了相比于线程更加轻量级的协程(用户态的线程),那么什么是用户态和内核态呢? 一.什么是用户态和内核态 当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核 ...

  9. 内核函数输出怎么看到_谈谈如何学习Linux内核

    学习内核的好处很多,在学习过程中不仅可以夯实大量理论基础,还可以学习到很多编码惯用法,提升学习能力和分析能力. 一.确立高度,明确目标 高度决定视角,视角决定行动 在学习内核过程中最容易犯的错误,也是 ...

最新文章

  1. redmine的知识库插件-Redmine Knowledgebase plugin,程序员们的知识需要管理
  2. php学习笔记之static的问题
  3. 文献记录(part75)--基于最大平均熵率的大数据关联聚类算法
  4. IPM: Technical model of IP right scope on Contract Item level
  5. 收集一些常用的前端知识
  6. 统一配置中心的设计方案
  7. 【NOIP2015】D2-T1跳石头,二分答案
  8. 怎么python安装mysql库_python在windows上怎么安装mysql数据库
  9. 第2章 系统的分层结构
  10. Web前端-HTML基础
  11. 经典的同态滤波算法的优化及其应用参数配置
  12. M语言中的操作符说明:大括号{}-列List,方括号[]-记录Record
  13. 小程序之100推荐:901~1000
  14. java 扁平化_java 扁平化输出json所有节点key/value
  15. 在光伏并网柜保护监测领域安科瑞给出的解决方案
  16. oracle stdevp函数,SQL Server和Oracle的常用函数对比
  17. php中文搜索工具,Laravel 下 TNTSearch+jieba-PHP 实现中文全文搜索
  18. 程鑫峰:3.1余威未散鲍威尔再度归来,伦敦金、长江金业行情分析
  19. Smart3D系列教程6之 《案例实战演练3——倾斜数据正射影像及DSM的生产》
  20. Fortran中输出Tecplot格式

热门文章

  1. 想要更好的云基础设施管理!你检查IT工具集了吗?
  2. 【DB】部分MySQL操作记录
  3. ADF12C+GLASSFISH4.1配置数据源
  4. 《编写可测试的JavaScript代码》——1.3 卓越的应用程序代码
  5. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)【转】
  6. TYVJ P1073 加分二叉树 Label:区间dp
  7. CCNP实验4-2:配置多区域和NBMA OSPF
  8. 建立网站的全套流程与详细解释(转载)
  9. iphone使用linux命令apt-get也没有问题
  10. 解决:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):