共计 2623 个字符,预计需要花费 7 分钟才能阅读完成。
Linux 内核开发工具具体有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
进行嵌入式 Linux 产品开发,往往需要对内核进行裁剪和定制,以满足嵌入式产品的功能和性能需求。本文介绍几种阅读 Linux 内核源码的工具和方法。
这里所说的“Linux 内核开发”仅仅是指嵌入式 Linux 产品开发中内核和驱动相关开发工作,与 Linux 所领导的内核开发团队的内核开发有很大不同。
俗话说“工欲善其事,必先利其器”,面对几百兆的 Linux 内核代码,要阅读、查看或者搜索其中的代码,大部分初次接触到 Linux 内核代码的开发人员,都有无从下手的感觉。下面推荐几个源码阅读和索引工具,能为后续内核开发提供一些便利。
1、Source Insight
Source Insight 是 Windows 平台下一款流行度极高的源码阅读和编辑工具。不少 Linux 开发人员还是习惯于在 Windows 下进行源码编辑,甚至查看和编辑 Linux 内核源码,依然在 Source Insight 中完成。
说明:Source Insight 是一款版权软件,需要自行解决版权问题。
安装 Source Insight 软件后,新建一个工程,取名并指定数据存放位置,如图 1.1 所示。
图 1.1 新建工程
图 1.2 工程设置
点击 OK 按钮,进入工程设置界面,如图 1.2 所示。
然后添加源码。浏览选中 Linux 内核源码文件夹后,点击“Add Tree”按钮,将内核源码树的全部文件添加到工程中,如图 1.3 所示。
图 1.3 添加内核源码
添加完成,即可在 Source Insight 中进行源码阅读和编辑了,如图 1.4 所示。
图 1.4 在 Source Insight 中阅读源码
2、Eclipse
Eclipse 是一个跨平台 IDE,既能运行于 Windows 平台,也能在 Linux 下运行。不少习惯于图形界面操作的开发人员,在 Linux 下则习惯于用 Eclipse 来查看和编辑 Linux 源码。
如果仅仅是在 Eclipse 中查看 Linux 内核源码,则可以不必事先安装交叉编译器,否则则须事先安装好交叉编译器。
创建内核源码工程。点击 File agrave;New agrave;Project,开始创建工程,在工程创建界面选择创建 C 工程,如图 1.5 所示。
点击 Next,在 C Project 界面的 Project name 栏中填写工程名称,去掉“Use default locaTIon”的勾,点击 Browse 将 LocaTIon 设置为 Linux 内核源码目录,如图 1.6 所示。如果不在 Eclipse 中编译内核,则使用 Linux GCC 即可,否则请使用安装好的 Cross GCC。
图 1.6 导入 Linux 内核源码
然后点击 Finish,完成 Linux 内核源码导入,在 Eclipse 中即可进行代码阅读和编辑了,如图 1.7 所示。
图 1.7 在 Eclipse 中浏览内核源码
在 Eclipse 中进行源码跟踪,只需选择函数、变量或者宏定义后按 F3 即可。更多的操作可在 Navigate 中找到。
3、vim+ctags+cscope
Vi/Vim 是一个文本编辑器,在 Vim 中能高效的实现代码编辑。但 Vim 的功能不仅仅是一个文本编辑器,借助 ctags 和 cscope 的配合,Vim 能实现堪比图形 IDE 环境的源码编辑和阅读功能,在某种程度上甚至比图形 IDE 更方便。
Vi/Vim 的安装不再介绍了。如果不是通过远程登录在远程服务器上工作,而是在本地桌面系统操作,还可以用 gvim 启动 Vi 编辑器。
l Taglist
Taglist 是 Vim 的一个源码浏览插件,可从 http://www.vim.org 网站获得。下载到压缩包后,在本地解压,然后将解压得到目录中的 plugin 目录复制到~/.vim 目录。如果用户主目录下没有.vim 目录,则建立一个这样的目录即可。
l Ctags
Ctags 是一个用于产生 tags 文件的软件,可以下载源码进行编译安装,在 Ubuntu 下,可通过 apt-get 进行安装:
$ sudo apt-get install exuberant-ctags
l 源码阅读和跟踪
进入准备查看的源码所在目录,首先生成 tags 文件:
$ ctags -R
执行时间长短取决于源码数量的多少,执行完毕,在当前目录下可看到一个 tags 文件。源码越多,执行时间越长,产生的 tags 文件也越大。
注意:如果修改了源码,代码行号发生了变化,需要重新生成 tags 文件。
(1)查看函数等定义。用 Vi/Vim 打开一个 C 文件。若想知道某个函数、变量、结构或者宏定义在什么地方定义,先将光标移动到函数 (变量、结构或者宏定义) 上,然后按 CTRL+]即可。查看后,按 CTRL+ o 可回到原来所在位置。
(2)查看文件函数列表。打开 C 文件后,在 Vi/Vim 的命令状态下输入:TlistToggle(Vi/Vim 的命令输入支持补全),在 Vi/Vim 左边就会出现函数列表侧栏,如图 1.8 所示。按 CTRL+ww(2 次 w),可在列表和代码查看区间切换。
图 1.8 Vi/Vim 的函数列表侧栏
如果在本地桌面,用 Gvim 打开 C 文件,使用起来比较接近 IDE 集成环境。用鼠标双击函数即可跳转到函数定义的地方,CTRL+ 鼠标右键即可回退到原来所在位置。更多实用特性,还需要在实际操作中体验。
4、LXR
LXR 是 Linux Cross Referencer 的缩写,是一个比较流行的 Linux 源码查看工具,当然也不仅仅局限于查看 Linux 源码。LXR 的下载地址为:http://lxr.sourceforge.net,参考该网站的安装说明,很容易在本机搭建一个本地 LXR 用于源码查看。
如果不想搭建本地 LXR,可以直接浏览已经搭好的 LXR 网站,推荐两个网站:一个是开源中国网站提供的 Linux 源码在线阅读 http://lxr.oss.org.cn,另一个是 http://lxr.free-electrons.com 网站,前者速度较快,但是提供的 Linux 内核版本较少,后者则提供的版本较多。网站提供了源码阅读、关键字搜索和自由文本搜索功能。两者的网页快照分别如图 1.9 和图 1.10 所示。
图 1.9 lxr.oss.org.cn 网页快照
图 1.10 lxr.free-electrons.com 网页快照
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。