当前位置:首页 » 操作系统 » linux代码阅读

linux代码阅读

发布时间: 2023-05-05 06:04:02

⑴ 如何查看linux命令源代码和函数源代码

1. 以搜索ls命令源码为例,先搜索命令所在包,命令如下:

lpj@lpj-linux:~$ which ls
/bin/ls

2. 用命令搜索该软件所在包,代码如下:

lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls

3. 从上一步中可以知道ls命令的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包的源代码然后解压,代码如下:

sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本号
sudo tar zxvf coreutils-XXX.tar.gz

或者只下载源码,然后手动打补丁再解压,代码如下:

sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #这一步会生成coreutils-XXX.diff文件
patch -p0 < coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz

OK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码了

⑵ 大家在Linux系统下用什么工具阅读内核源码

我在linux下阅读源码依然是
source
insight
--
wine,不过没读过kernel.还在读一些小的开源代码。

⑶ Linux下有没有类似SourceInsight的代码阅读工具

系统之争

Linux啊,这个系统其实挺好用的,无奈的就是微软的windows传播的太广,用户依赖度太高,不然的话我们可以看到两分天下的盛况。有一个软件叫Docfader,事实上,这不是一个特殊的代码阅读软件,但它是一个桌面搜索引擎,你可以添加任何文件目录df数据库中生成的,然后你就可以像使用谷歌搜索的内部文件名称和内容。由于源代码纯文本的性质,很适合使用搜索引擎辅助阅读。因为我已经有了这个东西,所以我不喜欢查看VisualStudio、Eclipse或任何其他IDE中的代码(尽管VS 2015的峰值定义特性非常酷),不需要进行调试。SourceInsight甚至根本没有打开它。






希望你用的开心。

⑷ 在Windows下如何阅读Linux下的源代码

windows下一般使用source insight来阅读linux源码。
Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库,并自动显示有用的上下文信息。

⑸ Linux下有没有类似SourceInsight的代码阅读工具

有啊,kscope和Source Insight类似,也是图形界面的,用它来阅读代码,可以像Source Insight那样,用鼠标点击就可以跳转到函数、类、变量的定义处。还有用Vim+cscope+ctags的,但是cscope不够准确,还有蚂悉纳,cscope是用闷没命陆尘令来跳转到代码定义地方的。

⑹ linux下阅读别人的代码时,你们怎么跳转

vim也有插件可以实现纤敬,代码高亮、自动补全。。。这些都可以灶和实现的,不过配置起来稍微麻烦点。
自动跳转那个插件需要把你要用到的头文件都采集了做个隐竖盯关联,用的时候就可以跳转了。可以查查ctags或者其他的插件

python查看linux执行二进制文件的源代码

python查看linux执行二进制文件的源代码的步骤如基袭下。
1、打开终端,使用cd命令进入存放搏巧兄二进制文件的目录。
2、执行命令,将二宽弊进制文件转换成汇编代码:binary_file是要查看的二进制文件名,output_file是转换后的汇编代码输出到的文件名。
3、打开output_file文件,阅读其中的汇编代码即可了解二进制文件的运行机制和实现原理。

⑻ 怎么读Linux内核代码

一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到http://www.kernel.org/去下载,最好使用它的镜像站点下载。请在http://www.kernel.org/mirrors/里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。
代码目录结构
在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管碧郑理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):
1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。
4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。
5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应枣慧改凳判于drivers/sound。
6.ipc目录包含了核心进程间的通信代码。
7.moles目录存放了已建好的、可动态加载的模块。
8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。
Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。
9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。
10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
11.scripts目录包含用于配置核心的脚本文件。
12.documentation目录下是一些文档,是对每个目录作用的具体说明。
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。

⑼ Linux下有没有类似SourceInsight的代码阅读工具

Linux上有很多这样的软件,比微软发布的VScode,它也是一个文本编辑器软件,可以阅读任何语言写成的代码,而且有“打开文件夹”的功能(相当于文件管理器插件)阅读代码非常方便。它有32位Linux版和64位Linux版,可以到VScode官网上下载deb或rpm软件包来安装,或者是下载tar.gz格式的tar包,解压后直接运行(不需要安装)。还有一个叫Atom的很有名的编辑器,同样支行裤持所有的编程语言,不管是阅读代码还是写代码都很强大,不过目前只有64位的Linux版本,没有32位版。和带竖还有唤大Sublime text,目前有Sublime text 2和Sublime text 3两个版本,不过它是收费软件。最后再介绍一个,几乎每一种Linux发行版上,都预装的文本编辑器软件,那就是gedit,表面上看功能不多,但是各种插件不少,需要设置一下才能发挥它的强大功能。这些工具网上有设置、使用教程,网络一下就知道了。

⑽ 如何读懂linux内核源码

Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。

对于源代码的阅读,要想比较顺利,事先最好对源代码的知识背景有一定的了解。对于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 此目录包含了核心的进程间通讯代码。
moles 此目录包含已建好可动态加载的模块。
fs Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext2文件系统对应的就是ext2子目录。
kernel 主要核心代码。同时与处理器结构相关代码都放在arch/-/kernel目录下。
net 核心的网络部分代码。里面的每个子目录对应于网络的一个方面。
lib 此目录包含了核心的库代码。与处理器结构相关库代码被放在arch/-/lib/目录下。
scripts 此目录包含用于配置核心的脚本文件。
Documentation 此目录是一些文档,起参考作用。

热点内容
吃鸡低配置手机如何开极致画质 发布:2025-05-16 18:15:20 浏览:191
空密码访问 发布:2025-05-16 18:08:51 浏览:892
腾讯云服务器安全规则设置 发布:2025-05-16 17:51:33 浏览:650
k3服务器不可用怎么办 发布:2025-05-16 17:51:30 浏览:537
编辑html源码 发布:2025-05-16 17:45:45 浏览:65
边的存储方法 发布:2025-05-16 17:33:16 浏览:927
海量服务器怎么拆 发布:2025-05-16 17:31:07 浏览:211
运行与编译的区别 发布:2025-05-16 17:25:02 浏览:824
c语言for中continue 发布:2025-05-16 17:20:14 浏览:648
ftp储存 发布:2025-05-16 17:04:08 浏览:505