当前位置:  技术问答>linux和unix

请推荐一款看源代码的工具,,

    来源: 互联网  发布时间:2015-03-03

    本文导语:  如题,,附上下载地址更佳! | 随着linux的逐步普及,现在有不少人对于Linux的安装及设置已经比较熟悉了。与Linux 的蓬勃发展相适应,想深入了解Linux的也越来越多。而要想深入了解Linux,就需要阅读和分析...

如题,,附上下载地址更佳!

|
随着linux的逐步普及,现在有不少人对于Linux的安装及设置已经比较熟悉了。与Linux 的蓬勃发展相适应,想深入了解Linux的也越来越多。而要想深入了解Linux,就需要阅读和分析linux内核的源代码。 

  Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。另外还可以从互连网上下载,解压缩后文件一般也都位于linux目录下。内核源代码有很多版本,目前最新的稳定版是2.2.14。 

  许多人对于阅读Linux内核有一种恐惧感,其实大可不必。当然,象Linux内核这样大而复杂的系统代码,阅读起来确实有很多困难,但是也不象想象的那么高不可攀。只要有恒心,困难都是可以克服的。也不用担心水平不够的问题,事实上,有很多事情我们不都是从不会到会,边干边学的吗? 

  任何事情做起来都需要有方法和工具。正确的方法可以指导工作,良好的工具可以事半功倍。对于Linux 内核源代码的阅读也同样如此。下面我就把自己阅读内核源代码的一点经验介绍一下,最后介绍Window平台下的一种阅读工具。 

  对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。对于linux内核源代码来讲,我认为,基本要求是:1、操作系统的基本知识;2、对C语言比较熟悉,最好要有汇编语言的知识和GNU C对标准C的扩展的知识的了解。另外在阅读之前,还应该知道Linux内核源代码的整体分布情况。我们知道现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序、网络等组成。看一下Linux内  核源代码就可看出,各个目录大致对应了这些方面。Linux内核源代码的组成如下(假设相对于linux目录): 

  arch 这个子目录包含了此核心源代码所支持的硬件体系结构相关的核心代码。如对于X86平台就是i386。 

  include 这个目录包括了核心的大多数include文件。另外对于每种支持的体系结构分别有一个子目录。 

  init 此目录包含核心启动代码。 

  mm 此目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下,如对应于X86的就是arch/i386/mm/fault.c 。 

  drivers 系统中所有的设备驱动都位于此目录中。它又进一步划分成几类设备驱动,每一种也有对应的子目录,如声卡的驱动对应于drivers/sound。 

  ipc 此目录包含了核心的进程间通讯代码。 

  modules 此目录包含已建好可动态加载的模块。 

  fs Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext2文件系统对应的就是ext2子目录。 

  kernel 主要核心代码。同时与处理器结构相关代码都放在arch/*/kernel目录下。 

  net 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。 

  lib 此目录包含了核心的库代码。与处理器结构相关库代码被放在arch/*/lib/目录下。 

  scripts此目录包含用于配置核心的脚本文件。 

  Documentation 此目录是一些文档,起参考作用。 

  清楚了源代码的结构组成后就可以着手阅读。对于阅读方法或者说顺序,有所谓的纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是分模块进行。其实他们之间不是绝对的,而是经常结合在一起进行。对于Linux源代码来讲,启动的代码就可以顺着linux的启动顺序一步一步来,它的大致流程如下(以X86平台为例): 

  ./larch/i386/boot/bootSect.S-->./larch/i386/boot/setup.S-->./larch/i386/kernel/head.S-->./init/main.c中的start_kernel()。而对于象内存管理等部分,则可以单独拿出来进行阅读分析。我的体会是:开始最好按顺序阅读启动代码,然后进行专题阅读,如进程部分,内存管理部分等。在每个功能函数内部应该一步步来。实际上这是一个反复的过程,不可能读一遍就理解。 

  俗话说:“工欲善其事,必先利其器”。 阅读象Linux核心代码这样的复杂程序令人望而生畏。它象一个越滚越大的雪球,阅读核心某个部分经常要用到好几个其他的相关文件,不久你将会忘记你原来在干什么。所以没有一个好的工具是不行的。由于大部分爱好者对于Window平台比较熟悉,并且还是常用Window系列平台,所以在此我介绍一个Window下的一个工具软件:Source Insight。这是一个有30天免费期的软件,可以从www.sourcedyn.com下载。安装非常简单,和别的安装一样,双击安装文件名,然后按提示进行就可以了。安装完成后,就可启动该程序。这个软件使用起来非常简单,是一个阅读源代码的好工具。它的使用简单介绍如下:先选择Project菜单下的new,新建一个工程,输入工程名,接着要求你把欲读的源代码加入(可以整个目录加)后,该软件就分析你所加的源代码。分析完后,就可以进行阅读了。对于打开的阅读文件,如果想看某一变量的定义,先把光标定位于该变量,然后点击工具条上的相应选项,该变量的定义就显示出来。对于函数的定义与实现也可以同样操作。别的功能在这里就不说了,有兴趣的朋友可以装一个Source Insight,那样你阅读源代码的效率会有很大提高的。怎么样,试试吧! 
如果你要,留下地址,我给你发过去!

    
 
 

您可能感兴趣的文章:

  • 推荐一下研究LINUX源代码的好书
  • 大家推荐几本详解Linux或unix 操作系统源代码的书籍!!!!
  • 请大家推荐一些比较好的下载源代码的网站好吗??谢谢!!!
  • 请推荐一些精灵进程编程的书籍,最好电子书籍,或者提供源代码,高分
  • 推荐免费源代码下载网站WWW.CPPN.NET
  • 大家推荐一下linux下面开源的文件加密工具,谢谢了
  • 请各位推荐几种 java 的压力测试工具。
  • 推荐几个linux下的c开发工具吧
  • 请推荐生成makefile的工具
  • 达人能否推荐一下硬件故障模拟工具
  • 请推荐一个linux下数据包转发工具
  • 前辈们给推荐一个linux下UML建模工具
  • 能否推荐几本学习Java的好教材呢?那一种Java的开发工具更好呢?
  • 推荐一本字典型工具书 Linux in a Nutshell
  • 大家推荐一个windows下的java开发平台。工具本身是为windows优化的。jbuilder太慢。
  • 推荐几个源码阅读分析工具
  • 谁能推荐一个linux下的mysql的图形化操作工具?类似于mysql-front之类!!!并告诉我在哪儿可以下载??
  • 请问不同unix平台推荐的内存泄露检测工具?
  • 小弟初学JAVA,请问用那种开发工具比较好?并请推荐一下书籍,谢谢
  • 我不想用盗版又买不起正版怎么办?请推荐一个好的免费工具
  • 希望了解java,能推荐一个好的开发工具和一本好的入门书籍吗?我以前直到现在都在用VC,接下来想在C#和java中选一个做为第二语言。
  • 请推荐一套可在目前主流PC上运行的UNIX(非LINIX)操作系统和开发工具(C,C++),用于学习,最好是盗版,可在那个ftp站上下载
  • 高分求教:如何将JAVA文件(.class)制作成可执行文件(.exe),求教方法或工具推荐
  • 我想要一个把Java编出来的代码,编译成像C++一样的可执行本机代码。推荐一个工具。谢谢!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.print类docflavor的类成员方法:推荐的 docflavor定义及介绍
  • 谁给推荐推荐几本xml的好书?
  • PHP介绍及学习网站推荐
  • 望大家向我推荐推荐!
  • HTML 编辑器-免费的HTML编辑器推荐
  • 麻烦诸位前辈推荐推荐一款适合底层开发的Linux版本!
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 求推荐,我想试着学习怎么写makefile,请问大家有什么书推荐吗?
  • HTML 学习总结及下一步学习教程推荐
  • [推荐]请大家推荐几个学linux的好网站吧
  • 我是菜鸟,要安装Linux,不知道那个版本适合我,大虾们给推荐推荐吧
  • 推荐系统 EasyRec
  • 基于 PostgreSQL 的推荐引擎 RecDB
  • 开源推荐系统 LensKit
  • 推荐系统 Wuawua
  • 开源推荐系统 Myrrix
  • 【一周话题】推荐两本C++的书,大家有什么好书推荐一下吧
  • 推荐系统 SVDFeature
  • 推荐好的Linux书
  • linux书推荐!
  • 我要换手机,大家给推荐一款吧!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3