仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4235|回复: 19
打印 上一主题 下一主题

[其他Linux] Linux设计浏览Linux源代码的工具---lxr和glimpse简介仓酷云

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:38:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
要多动手,不要怕什么搞坏了怎么办,你不搞坏,不去动手,就永远不会有收获,既然你在linux中是自由的,那就发挥自己的权利;
  我们在浏览linux源代码时都有如许的体味:中心的构造绝对松懈,在看一个文件时常常要扳连到其他的头文件、源代码文件。云云往返跳转寻觅变量、常量、函数的界说非常不便利,如许折腾几回,便使读代码的心境降到了低点。

  lxr(linuxcrossreference)就是一个办理这个成绩的工具:他对你指定的源代码文件创建索引数据库,使用perl剧本CGI静态天生包括源码的web页面,你能够用任何一种扫瞄器查阅。在此web页中,一切的变量、常量、函数都以超毗连的情势给出,非常便利查阅。好比你在浏览/usr/src/linux/net/socket.c的源代码,发明函数get_empty_inode不晓得是怎样和在那里界说的,这时候候你只需点击get_empty_inode,lxr将前往此函数的界说、完成和各次援用是在甚么文件的哪一行,注重,这些信息也是超毗连,点击将间接跳转到响应的文件响应的行。别的lxr还供应标识符搜刮、文件搜刮,分离程序glimpse还能够供应对一切的源码文件举行全文检索,乃至包含正文!

  上面将分离实例先容一下lxr和glimpse的基础安装和利用,因为glimpse对照复杂,就从它入手下手:

  起首会见站点:http://glimpse.cs.arizona.edu/失掉glimpse的源码,好比我失掉的是glimpse-4.12.5.tar.gz.用root登录,在任一目次下用tarzxvfglimpse-4.12.5.tar.gz解开紧缩包,在以后目次下呈现新目次glimpse-4.12.5.进进该目次,实行make便可。进进bin目次,将文件glimpse和glimpseindex拷贝到/bin或/usr/bin下便可。假如独自利用glimpse,那末只需复杂的实行glimpseindexfoo便可,个中foo是你想要索引的目次,好比说是/usr/src/linux.glimpseindex的实行了局是在你的肇端目次下发生多少.glimpse*的索引文件。
  然后你只需实行glimpseyourstring便可查找/usr/src/linux下一切包括字符串yourstring的文件。
  关于lxr,你能够会见lxr.linux.no失掉它的源代码解包后,遵守以下步骤:
/*上面的笔墨来历于lxr的匡助文档和自己的安装体味*/

1)修正Makefile中的变量PERLBIN和INSTALLPREFIX,使它们分离为perl程序的地位和你想lxr安装的地位.在我的呆板上,PERLBIN的值为/usr/bin/perl.至于INSTALLPREFIX,有以下准绳,lxr的安装路径必需是web服务器能有权限会见。因而它的值复杂一点可取/home/httpd/html/lxr(关于Apachewebserver)。

2)实行makeinstall

3)修正$INSTALLPREFIX/http/lxr.conf:
baseurl:http://yourIP/lxr/http/
htmlhead:/home/httpd/html/lxr/http/template-head
htmltail:/home/httpd/html/lxr/http/template-tail
htmldir:/home/httpd/html/lxr/http/template-dir
sourceroot:/usr/src/linux #假设对linux中心代码索引
dbdir:/home/httpd/html/lxr/dbdir/ #dbdirk可恣意起名,且地位恣意glimpsebin:/usr/bin/glimpse #可实行程序glimpse的地位
4)在$INSTALLPREFIX/http/下增添一个文件.htaccess内容:
<Files~(source|search|ident|diff|find)$>***
SetHandlercgi-script
</Files>
下面这个文件包管Apacheserver将几个perl文件作为cgi-script.

5)依照lxr.conf中的设置创建dbdir,依照上例,创建目次
/home/httpd/html/lxr/dbdir
进进这个目次实行$INSTALLPREFIX/bin/genxrefyourdir

个中yourdir是源码目次,好比/usr/src/linux

假如要分离glimpse,则实行glimpseindex-H.yourdir

6)修正/etc/httpd/conf/access.conf,到场

<Directory/home/httpd/html/lxr/http>

OptionsAll

AllowOverrideAll

orderallow,deny

allowfromall

</Directory>

7)进进/etc/rc.d/init.d/实行

killallhttpd

./httpdstart

进进X,用扫瞄器http://yourIP/lxr/http/blurb.html

半途而废,这下你能够舒心的读源码了。

注重:以上只是lxr和glimpse的基础用法,进一步的申明能够参考联机文档。若有成绩请与sea_cloud@263.net接洽。

功能实在太强了,在配合exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
若天明 该用户已被删除
沙发
发表于 2015-1-21 11:46:37 | 只看该作者
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。
乐观 该用户已被删除
板凳
发表于 2015-1-25 10:34:06 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
活着的死人 该用户已被删除
地板
发表于 2015-2-2 21:39:20 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-7 18:25:26 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
分手快乐 该用户已被删除
6#
发表于 2015-2-22 20:37:55 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
只想知道 该用户已被删除
7#
发表于 2015-3-6 21:40:16 | 只看该作者
这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。?
简单生活 该用户已被删除
8#
发表于 2015-3-13 21:38:48 | 只看该作者
有疑问前,知识学习前,先用搜索。
admin 该用户已被删除
9#
发表于 2015-3-14 15:24:17 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
深爱那片海 该用户已被删除
10#
发表于 2015-3-21 11:17:16 | 只看该作者
学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。
再见西城 该用户已被删除
11#
发表于 2015-3-22 04:14:13 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
金色的骷髅 该用户已被删除
12#
发表于 2015-4-18 16:39:41 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
飘飘悠悠 该用户已被删除
13#
发表于 2015-4-25 09:51:34 | 只看该作者
用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。
爱飞 该用户已被删除
14#
发表于 2015-4-26 19:06:38 | 只看该作者
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
飘灵儿 该用户已被删除
15#
发表于 2015-5-5 00:56:38 | 只看该作者
把这个问题放在其他Linux社区请求帮助也是一种选择。如果Linux得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
海妖 该用户已被删除
16#
发表于 2015-5-7 15:12:03 | 只看该作者
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
精灵巫婆 该用户已被删除
17#
发表于 2015-6-13 23:51:36 | 只看该作者
随着Linux应用的扩展,出现了不少Linux社区。有一些非常优秀的社区往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。
莫相离 该用户已被删除
18#
发表于 2015-6-23 09:19:45 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
变相怪杰 该用户已被删除
19#
发表于 2015-7-3 09:11:43 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
20#
发表于 2015-7-6 18:37:48 | 只看该作者
随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 09:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表