1. 通读《linux 内核完全注释》,请看薄的那本

2. 选读《Linux 内核情景分析》, 想了解哪一块就读哪一节

三、驱动

驱动包含两部分:硬件本身的操作、驱动程序的框架。

又是硬件,还是要看得懂原理图、读得懂芯片手册,多练吧。

①硬件本身的操作

说到驱动框架,有一些书介绍一下。LDD3,即《Linux 设备驱动》,老外写的那本,里面介绍了不少概念,值得一读。但是,它的作用 也就限于介绍概念了。入门之前可以用它来熟悉一下概念。

②驱动程序的框架

驱动方面比较全的介绍,应该是宋宝华的《linux 设备驱动开发详解》了。要想深入了解某一块,《Linux 内核情景分析》绝对是超 5 星级推荐。别指望把它读完,1800 多页,上下两册呢。某一块不清楚时,就去翻一下它。任何一部分,这书都可以讲上 2、3 百页,非常详细。并且是以某个目标来带你分析内核源码。它以 linux2.4 为例,但是原理相通,同样适用于其它版本的 linux。

把手上的开发板所涉及的硬件,都去尝试写一个驱动吧。有问题就先“痛苦地思考”,思考的过程中会把很多不相关的知识串联起来,最终贯通。

四、根文件系统

大家有没有想过这 2 个问题:

Q:对于 Linux 做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢?

A:内核不知道也不管应该启动哪一个用户程序。它只启动 init 这一个应用程序,它对应 /sbin/init。

显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等,这个问题提示我们,文件系统的内容是有一些约定的,比如要有 /sbin/init,要有配置文件 。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查