我安装了linux,怎么才能看到源代码呢?

我安装了linux,怎么才能看到源代码呢?,第1张

linux内核的源代码都在www.hernel.org的/pub/linux目录下软件的源代码在该一般项目主页或发行版的“源”,或其他开源软件的网站or: 随着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,那样你阅读源代码的效率会有很大提高的。怎么样,试试吧!

QT平台的音乐播放器源代码,这个很少见了,里面的代码很不多,画面处理的很好。-QT-platform music player source code, this rarely met, which is very much the code, image processing well.

这个是最常用的最基础的命令

su

su命令是最基本的命令之一,常用于不同用户间切换。例如,如果登录为 user1,要切换为user2,只要用如下命令:

$su user2

然后系统提示输入user2口令,输入正确的口令之后就可以切换到user2。完成之后就可以用exit命令返回到user1。

su命令的常见用法是变成根用户或超级用户。如果发出不带用户名的su命令 ,则系统提示输入根口令,输入之后则可切换为根用户。

如果登录为根用户,则可以用su命令成为系统上任何用户而不需要口令。

pwd

pwd命令也是最常用最基本的命令之一,用于显示用户当前所在的目录。

cd

cd命令不仅显示当前状态,还改变当前状态,它的用发跟dos下的cd命令基本一致。

cd ..可进入上一层目录

cd -可进入上一个进入的目录

cd ~可进入用户的home目录

ls

ls命令跟dos下的dir命令一样,用于显示当前目录的内容。

如果想取得详细的信息,可用ls -l命令, 这样就可以显示目录内容的详细信息。

如果目录下的文件太多,用一屏显示不了,可以用ls -l |more分屏显示 。

find

find命令用于查找文件。这个命令可以按文件名、建立或修改日期、所有者(通常是建立文件的用户)、文件长度或文件类型进行搜索。

find命令的基本结构如下:

$find

其中指定从哪个目录开始搜索。指定搜索条件。表示找到文件怎么处理。一般来说,要用-print动作,显示 整个文件路径和名称。如果没有这个动作,则find命令进行所要搜索而不显示结果,等于白费劲。

例如,要搜索系统上所有名称为ye的文件,可用如下命令:

$find / -name ye -print

这样就可以显示出系统上所有名称为ye的文件。

tar

tar最初用于建立磁带备份系统,目前广泛用于建立文件发布档案。可用如下方法建立tar档案:

$tar cvf

例如,如果要将当前目录中所有文件存档到ye.tar中,可用如下命令:

$tar cvf ye.tar *.*

要浏览档案内容,将c选项变成t。如果要浏览ye.tar档案中的内容,可用如下命令:

$tar tvf ye.tar

要取出档案内的内容,将c选项变成x。如果要将ye.tar档案中的内容取到当前目录中,可用如下命令:

$tar xvf ye.tar

gzip

gzip命令用于压缩文件。 例如,如果要将ye.txt文件压缩,可用如下命令:

$gzip ye.txt

这样就可以压缩文件并在文件名后面加上gz扩展名,变成文件ye.txt.gz。

解压缩文件可用gzip -d命令实现:

$gzip -d ye.txt.gz

这样就可以解压缩文件并删除gz扩展名。除此之外还可以用gunzip命令来解 压缩文件,效果跟用gzip -d命令一样。

旧版的tar命令不压缩档案,可用gzip压缩。例如:

$tar cvf ye.tar *.txt

$gzip ye.tar

则可建立压缩档案ye.tar.gz。

新版的tar可以直接访问和建立gzip压缩的tar档案,只要在tar命令中加上z 选项就可以了。例如:

$tar czvf ye.tar *.txt

生成压缩档案ye.tar.gz,

$tar tzvf ye.tar *.txt

显示压缩档案ye.tar.gz的内容,而

$tar xzvf ye.tar *.txt

取出压缩档案ye.tar.gz的内容。

mkdir

这个命令很简单,跟dos的md命令用法几乎一样,用于建立目录。

cp

cp命令用于复制文件或目录。

cp命令可以一次复制多个文件,例如:

$cp *.txt *.doc *.bak /home

将当前目录中扩展名为txt、doc和bak的文件全部复制到/home目录中。

如果要复制整个目录及其所有子目录,可以用cp -R命令。

rm

rm命令用于删除文件或目录。

rm命令会强制删除文件,如果想要在删除时提示确认,可用rm -i命令。

如果要删除目录,可用rm -r命令。rm -r命令在删除目录时,每删除一个文件或目录都会显示提示,如果目录太大,响应每个提示是不现实的。这时可以用 rm -rf命令来强制删除目录,这样即使用了-i标志也当无效处理。

mv

mv命令用于移动文件和更名文件。例如:

$mv ye.txt /home

将当前目录下的ye.txt文件移动到/home目录下,

$mv ye.txt ye1.txt

将ye.txt文件改名为ye1.txt。

类似于跟cp命令,mv命令也可以一次移动多个文件,在此不再赘叙。

reboot

重启命令

halt

关机命令


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7182268.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存