1.1 Linux 内核开发简介 这里所说的“ Linux 内核开发”仅仅是指嵌入式 Linux 产品开发中内核和驱动相关开发 工作,与 Linus 所领导的内核开发团队的内核开发有很大不同。 产品开发中对内核进行二次开发, 需要开发人员具备如下一些基本技能和背景知识: a. 具备操作系统的基本知识,理解操作系统原理,最好了解 Linux 操作系统; b. 内核绝大部分都是 C 语言编写的, C 语言是必备技能; c. 内核是用 GNU C 编写的,尽管符合 ISO C89 标准,但还是使用了一些 GNU 扩展, 所以对 GNU C 的一些扩展也必须有所了解; d. 对 Linux 内核源码基本分布有大致了解; e. 产品级的内核开发通常还包括一些内核驱动工作,对外设工作原理和驱动编写也必 须有一定的了解。
1.2 Linux 源码阅读工具 1.2.1 Source Insight Source Insight 是 Windows 平台下一款流行度极高的源码阅读和编辑工具。不少 Linux 开发人员还是习惯于在 Windows 下进行源码编辑,甚至查看和编辑 Linux 内核源码,依然 在 Source Insight 中完成。
1.2.2 Eclipse Eclipse 是一个跨平台 IDE,既能运行于 Windows 平台,也能在 Linux 下运行。不少习 惯于图形界面操作的开发人员,在 Linux 下则习惯于用 Eclipse 来查看和编辑 Linux 源码。 如果仅仅是在 Eclipse 中查看 Linux 内核源码,则可以不必事先安装交叉编译器, 否则 则须事先安装好交叉编译器。 1.2.3 vim+ctags+cscope Vi/Vim 是一个文本编辑器,在 Vim 中能高效的实现代码编辑。但 Vim 的功能不仅仅是 一个文本编辑器,借助 ctags 和 cscope 的配合, Vim 能实现堪比图形 IDE 环境的源码编辑和 阅读功能,在某种程度上甚至比图形 IDE 更方便。 1.2.4 LXR LXR 是 Linux Cross Referencer 的缩写,是一个比较流行的 Linux 源码查看工具,当然 也不仅仅局限于查看 Linux 源码。 LXR 的下载地址为: ,参考该网站 的安装说明,很容易在本机搭建一个本地 LXR 用于源码查看。 1.3 Linux 内核源码 1.3.1 目录树概览 解压 Linux 内核源码压缩包,将得到内核源码。内核源码很复杂,包含多级目录,形成 一个庞大的树状结构,通常称为 Linux 源码目录树。