当前位置: 首页 > 科技观察

Linux内核开发工具介绍

时间:2023-03-12 07:52:04 科技观察

开发嵌入式Linux产品,往往需要对内核进行剪裁和定制,以满足嵌入式产品的功能和性能需求。本文介绍了几种阅读Linux内核源码的工具和方法。这里所说的“Linux内核开发”只是指嵌入式Linux产品开发中与内核和驱动相关的开发工作,与Linux领导的内核开发团队的内核开发有很大区别。俗话说,工欲善其事,必先利其器。面对数百兆的Linux内核代码,要阅读、查看或搜索代码,大多数初次接触Linux内核代码的开发人员都有无从下手的感觉。下面推荐一些源码阅读和索引工具,可以为后续的内核开发提供一些便利。一、SourceInsightSourceInsight是Windows平台下一款非常流行的源代码阅读和编辑工具。许多Linux开发者仍然习惯于在Windows下编辑源代码,甚至查看和编辑Linux内核源代码也仍然是在SourceInsight中完成的。注意:SourceInsight是版权软件,版权问题需要您自行解决。安装好SourceInsight软件后,新建一个工程,命名并指定数据存放位置,如图1.1所示。图1.1新建工程图1.2工程设置点击确定按钮,进入工程设置界面,如图1.2所示。然后添加源代码。浏览选择Linux内核源码文件夹后,点击“添加树”按钮,将内核源码树的所有文件添加到项目中,如图1.3所示。图1.3添加内核源码添加后可以在SourceInsight中阅读和编辑源码,如图1.4所示。图1.4在SourceInsight2.Eclipse中阅读源代码Eclipse是一个跨平台的IDE,可以在Windows和Linux上运行。很多习惯于图形界面操作的开发者习惯于在Linux下使用Eclipse查看和编辑Linux源代码。如果只是在Eclipse中查看Linux内核源码,则不需要提前安装交叉编译器,否则必须提前安装交叉编译器。创建内核源项目。点击FileàNewàProject开始创建工程,在工程创建界面选择创建C工程,如图1.5所示。点击Next,在CProject界面的Projectname栏中填写工程名称,取消勾选“Usedefaultlocation”,点击Browse将Location设置为Linux内核源代码目录,如图1.6所示。如果不在Eclipse中编译内核,可以使用LinuxGCC,否则请使用安装好的CrossGCC。图1.6导入Linux内核源码点击Finish完成Linux内核源码的导入,即可在Eclipse中阅读和编辑代码,如图1.7所示。图1.7在Eclipse中浏览内核源代码要在Eclipse中跟踪源代码,只需选择一个函数、变量或宏定义并按F3。更多操作可以在Navigate中找到。3、vim+ctags+cscopeVi/Vim是一个文本编辑器,可以在Vim中高效的实现代码编辑。但Vim的功能不仅仅是一个文本编辑器。通过ctags和cscope的配合,Vim可以实现媲美图形IDE环境的源代码编辑和阅读功能,甚至在一定程度上比图形IDE更方便。Vi/Vim的安装不再介绍。如果您不是通过远程登录在远程服务器上工作,而是在本地桌面系统上操作,您也可以使用gvim来启动Vi编辑器。lTaglistTaglist是Vim的一个源代码浏览插件,可以从http://www.vim.org网站获取。下载压缩包后,在本地解压,然后将解压目录下的plugin目录复制到~/.vim目录下。如果用户主目录下没有.vim目录,就新建一个这样的目录即可。lCtagsCtags是一个用来生成tags文件的软件,可以下载源码编译安装,Ubuntu下可以通过apt-get安装:$sudoapt-getinstallexuberant-ctagsl源码阅读跟踪回车在你要查看的源代码目录下,首先生成一个tags文件:$ctags-R执行时长取决于源代码的多少。执行后,在当前目录下可以看到一个tags文件。源代码越多,执行时间越长,生成的标签文件越大。注意:如果修改了源代码,代码行号发生变化,需要重新生成tags文件。(1)查看函数的定义等用Vi/Vim打开一个C文件。如果想知道某个函数、变量、结构或宏定义在哪里定义,先将光标移到函数(变量、结构或宏定义)上,然后按CTRL+]。查看完后,按CTRL+o回到原来的位置。(2)查看文件函数列表。打开C文件后,在Vi/Vim的命令状态下输入:TlistToggle(Vi/Vim的命令输入支持补全),在Vi/Vim的左侧会出现函数列表侧边栏,如图1.8.按CTRL+ww(两次w)在列表和代码查看之间切换。图1.8Vi/Vim的函数列表边栏如果在本地桌面用Gvim打开C文件,更接近IDE集成环境。鼠标双击函数跳转到定义函数的地方,CTRL+鼠标右键返回原处。更多实用功能需要在实际操作中体验。4.LXRLXR是LinuxCrossReferencer的缩写。是一款比较流行的Linux源码查看工具,当然不仅仅局限于查看Linux源码。LXR的下载地址是:http://lxr.sourceforge.net,参考这个网站的安装说明,很容易在本机上搭建一个本地的LXR,供查看源代码。如果不想搭建本地LXR,可以直接浏览已经搭建好的LXR网站。推荐两个网站:一个是开源中文网站http://lxr.oss.org.cn提供的Linux源码,另一个是http://lxr.oss.org.cn/lxr.free-electrons.com网站,前者速度较快,但提供的Linux内核版本较少,而后者提供的版本较多。网站提供源码阅读、关键字搜索和自由文本搜索功能。两者的网页截图分别如图1.9和图1.10所示。图1.9lxr.oss.org.cn网页截图图1.10lxr.free-electrons.com网页截图