成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

linux查看命令源碼,怎么看linux源碼

如何查看linux系統(tǒng)源碼

一般在Linux系統(tǒng)中的/usr/src/linux*.*.*(*.*.*代表的是內(nèi)核版本,如2.4.23)目錄下就是內(nèi)核源代碼(如果沒(méi)有類(lèi)似目錄,是因?yàn)檫€沒(méi)安裝內(nèi)核代碼)。另外還可從互連網(wǎng)上免費(fèi)下載。注意,不要總到去下載,最好使用它的鏡像站點(diǎn)下載。請(qǐng)?jiān)诶镎乙粋€(gè)合適的下載點(diǎn),再到pub/linux/kernel/v2.6/目錄下去下載2.4.23內(nèi)核。

為松北等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及松北網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、松北網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

代碼目錄結(jié)構(gòu)

在閱讀源碼之前,還應(yīng)知道Linux內(nèi)核源碼的整體分布情況?,F(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動(dòng)程序和網(wǎng)絡(luò)等組成。Linux內(nèi)核源碼的各個(gè)目錄大致與此相對(duì)應(yīng),其組成如下(假設(shè)相對(duì)于Linux-2.4.23目錄):

1.arch目錄包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu),例如i386就是Intel CPU及與之相兼容體系結(jié)構(gòu)的子目錄。PC機(jī)一般都基于此目錄。

2.include目錄包括編譯核心所需要的大部分頭文件,例如與平臺(tái)無(wú)關(guān)的頭文件在include/linux子目錄下。

3.init目錄包含核心的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼),有main.c和Version.c兩個(gè)文件。這是研究核心如何工作的好起點(diǎn)。

4.mm目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄下。

5.drivers目錄中是系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。它又進(jìn)一步劃分成幾類(lèi)設(shè)備驅(qū)動(dòng),每一種有對(duì)應(yīng)的子目錄,如聲卡的驅(qū)動(dòng)對(duì)應(yīng)于drivers/sound。

6.ipc目錄包含了核心進(jìn)程間的通信代碼。

7.modules目錄存放了已建好的、可動(dòng)態(tài)加載的模塊。

8.fs目錄存放Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對(duì)應(yīng),如ext3文件系統(tǒng)對(duì)應(yīng)的就是ext3子目錄。

Kernel內(nèi)核管理的核心代碼放在這里。同時(shí)與處理器結(jié)構(gòu)相關(guān)代碼都放在arch/*/kernel目錄下。

9.net目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個(gè)子目錄對(duì)應(yīng)于網(wǎng)絡(luò)的一個(gè)方面。

10.lib目錄包含了核心的庫(kù)代碼,不過(guò)與處理器結(jié)構(gòu)相關(guān)的庫(kù)代碼被放在arch/*/lib/目錄下。

11.scripts目錄包含用于配置核心的腳本文件。

12.documentation目錄下是一些文檔,是對(duì)每個(gè)目錄作用的具體說(shuō)明。

一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件。這兩個(gè)文件都是編譯時(shí)使用的輔助文件。仔細(xì)閱讀這兩個(gè)文件對(duì)弄清各個(gè)文件之間的聯(lián)系和依托關(guān)系很有幫助。另外有的目錄下還有Readme文件,它是對(duì)該目錄下文件的一些說(shuō)明,同樣有利于對(duì)內(nèi)核源碼的理解。

在閱讀方法或順序上,有縱向與橫向之分。所謂縱向就是順著程序的執(zhí)行順序逐步進(jìn)行;所謂橫向,就是按模塊進(jìn)行。它們經(jīng)常結(jié)合在一起進(jìn)行。對(duì)于Linux啟動(dòng)的代碼可順著Linux的啟動(dòng)順序一步步來(lái)閱讀;對(duì)于像內(nèi)存管理部分,可以單獨(dú)拿出來(lái)進(jìn)行閱讀分析。實(shí)際上這是一個(gè)反復(fù)的過(guò)程,不可能讀一遍就理解。

如何查看linux種一些命令的源代碼

linux的命令,實(shí)際上都是編譯好的程序,一般放在/usr/bin目錄下。系統(tǒng)中并不會(huì)有源代碼。

也有些命令是腳本,比如dstat等。這個(gè)可以直接看。

如果要看linux的命令的源代碼,只有在去查找相關(guān)linux源碼才行,直接在系統(tǒng)中是看不到的。

如何查看linux命令源代碼(轉(zhuǎn)自網(wǎng)絡(luò))

lpj@lpj-linux:~$ which ls /bin/ls用命令搜索該軟件所在包,代碼如下:

lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls從上一步中可以知道ls命令的實(shí)現(xiàn)在包c(diǎn)oreutils中,用apt安裝(說(shuō)安裝有些歧義,主要是區(qū)分apt-get -d)該包的源代碼然后解壓,代碼如下:

sudo apt-get source coreutils cd /usr/src/coreutils-XXX #XXX表示版本號(hào) sudo tar zxvf coreutils-XXX.tar.gz 或者只下載源碼,然后手動(dòng)打補(bǔ)丁再解壓,代碼如下:

sudo apt-get -d source coreutils cd /usr/src tar zxvf coreutils-XXX.tar.gz gzip -d coreutils-XXX.diff.gz #這一步會(huì)生成coreutils-XXX.diff文件 patch -p0 coreutils-XXX.diff cd coreutils-XXX tar zxvf coreutils-XXX.tar.gzOK,這幾步執(zhí)行完后,就可以進(jìn)入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令對(duì)應(yīng)的源代碼了

如何獲取linux下命令源碼

首先在linux命令行中新建一個(gè)目錄 mkdir github(名字可以按你項(xiàng)目名定義),之后敲git命令,確認(rèn)git工具已經(jīng)安裝好了,我使用的是Ubuntu14.04,git工具默認(rèn)安裝好了。若沒(méi)有安裝,可以嘗試自行安裝,安裝方法比較簡(jiǎn)單。如下圖所示

2

在github查看你所需要使用下載源碼項(xiàng)目的URL地址,比如我下載的openwrt,在github中搜索該項(xiàng)目,可以查看到相關(guān)的URL地址: 復(fù)制下該地址,后面需要使用。如下圖所示

3

在linux命令行中使用 git clone 命令,對(duì)該項(xiàng)目源碼clone到本地,等待clone完成。如下圖所示(該項(xiàng)目較大,網(wǎng)絡(luò)不快,還未clone完成,只做參考)

如何查看各種Linux命令的源碼

用linux一段時(shí)間了,有時(shí)候想看看ls、cat、more等命令的源代碼,在下載的內(nèi)核源碼中用cscope沒(méi)能找到,在網(wǎng)上搜索了一下,將方 法總結(jié)如下:以搜索ls命令源碼為例,先搜索命令所在包,命令如下:

lpj@lpj-linux:~$ which ls /bin/ls用命令搜索該軟件所在包,代碼如下:

lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls從上一步中可以知道ls命令的實(shí)現(xiàn)在包c(diǎn)oreutils中,用apt安裝(說(shuō)安裝有些歧義,主要是區(qū)分apt-get -d)該包的源代碼然后解壓,代碼如下:

sudo apt-get source coreutils cd /usr/src/coreutils-XXX #XXX表示版本號(hào) sudo tar zxvf coreutils-XXX.tar.gz 或者只下載源碼,然后手動(dòng)打補(bǔ)丁再解壓,代碼如下:

sudo apt-get -d source coreutils cd /usr/src tar zxvf coreutils-XXX.tar.gz gzip -d coreutils-XXX.diff.gz #這一步會(huì)生成coreutils-XXX.diff文件 patch -p0 coreutils-XXX.diff cd coreutils-XXX tar zxvf coreutils-XXX.tar.gzOK,這幾步執(zhí)行完后,就可以進(jìn)入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令對(duì)應(yīng)的源代碼了。關(guān)于更多Linux的學(xué)習(xí),請(qǐng)查閱書(shū)籍《linux就該這么學(xué)》。

如何查看Linux命令源代碼

以find命令為例:

第一步,確定命令屬于哪個(gè)rpm包:

#rpm -qf /usr/bin/find

findutils-4.1-34

第二步,查找findutils的源碼包findutils-4.1-34.src.rpm,這個(gè)一般在發(fā)行版的網(wǎng)站上可以找到(比如FC6的源碼在這里可以找到:)。

也可以到rpmfind.net上查找,輸入rpm包的名字就可以找到相關(guān)的源碼包,有的也可以得到軟件對(duì)應(yīng)的網(wǎng)站。

第三步,安裝源碼包:

rpm -ivh findutils-4.1-34.src.rpm

安裝好之后可以到/usr/src/RedHat/SOURCE下找到相關(guān)的源碼包

或者直接編譯源碼包:

rpmbuild -bb findutils-4.1-34.src.rpm

網(wǎng)頁(yè)名稱(chēng):linux查看命令源碼,怎么看linux源碼
當(dāng)前鏈接:http://jinyejixie.com/article14/dsedhge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、面包屑導(dǎo)航、全網(wǎng)營(yíng)銷(xiāo)推廣、Google網(wǎng)站排名、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
沿河| 太仓市| 汕头市| 恩平市| 辽阳县| 天门市| 铜川市| 静宁县| 罗城| 临洮县| 贺兰县| 岳普湖县| 古交市| 贺兰县| 黄石市| 阳高县| 娄底市| 兴城市| 巧家县| 阿荣旗| 永福县| 萝北县| 甘洛县| 高清| 阜宁县| 治县。| 遵义市| 永寿县| 英超| 盐城市| 福清市| 肥城市| 湘乡市| 南雄市| 平原县| 桐柏县| 平和县| 巴里| 彭山县| 兴海县| 栾川县|