我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 675|回复: 1

[最新新闻] Linux内核开发工具介绍

[复制链接]
  • TA的每日心情
    郁闷
    2024-7-26 17:46
  • 签到天数: 2 天

    [LV.1]初来乍到

    84

    主题

    407

    回帖

    695

    积分

    二级逆天

    积分
    695

    终身成就奖

    QQ
    发表于 2016-12-29 10:31:21 | 显示全部楼层 |阅读模式
    进行嵌入式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 新建工程

    点击OK按钮,进入工程设置界面,如图 1.2所示。

    图 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àNewàProject,开始创建工程,在工程创建界面选择创建C工程,如图 1.5所示。
    图 1.5 创建C工程
      
    点击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编辑器。

    Taglist
    Taglist是Vim的一个源码浏览插件,可从http://www.vim.org网站获得。下载到压缩包后,在本地解压,然后将解压得到目录中的plugin目录复制到~/.vim目录。如果用户主目录下没有.vim目录,则建立一个这样的目录即可。

    Ctags
    Ctags是一个用于产生tags文件的软件,可以下载源码进行编译安装,在Ubuntu下,可通过apt-get进行安装:
    sudo apt-get install exuberant-ctags

    源码阅读和跟踪
    进入准备查看的源码所在目录,首先生成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网页快照
    来源:EEFOCUS
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-8-2 17:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    400

    主题

    4719

    回帖

    9520

    积分

    二级逆天

    积分
    9520

    社区居民社区劳模忠实会员原创达人终身成就奖优秀斑竹奖

    QQ
    发表于 2016-12-30 11:08:13 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    论坛开启做任务可以
    额外奖励金币快速赚
    积分升级了


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表