壓縮包解壓後裡面就是源碼啊,windows下用好壓可以直接解壓縮,linux下根據壓縮包具體格式用tar -jxvf或者tar -zxvf命令解壓。解壓後裡面的文件都是源碼,什麼語言寫的文件就是什麼樣後綴的文件格式(這個不知道就別想著改代碼了)。
另外糾正一下,linux是開源的是對的,但是怎麼就得出linux上的應用也是開源的這樣的結論?linux開源指的是linux操作系統內核開源,在此之上提供的各種服務和應用不一定開源(當然有很多開源的,至於為什麼你可以了解下OTSS off the shelve system和GPL)
B. 如何查看各種Linux命令的源碼
用linux一段時間了,有時候想看看ls、cat、more等命令的源代碼,在下載的內核源碼中用cscope沒能找到,在網上搜索了一下,將方 法總結如下:以搜索ls命令源碼為例,先搜索命令所在包,命令如下:
lpj@lpj-linux:~$ which ls /bin/ls用命令搜索該軟體所在包,代碼如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls從上一步中可以知道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.gzOK,這幾步執行完後,就可以進入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令對應的源代碼了。關於更多Linux的學習,請查閱書籍《linux就該這么學》。
C. 我安裝了Linux系統,怎樣才可以找到他的源代碼
/usr/src/kernel下面
D. 如何找到linux命令的源代碼
linux下不是所有的程序都有源代碼,能再具體描述你的問題嗎? 腳本類的軟體有源代碼,編譯類的,類似c語言的一般經過編譯連接,發布的不帶源代碼。
E. 如何查看Linux命令源代碼
以find命令為例:
第一步,確定命令屬於哪個rpm包:
#rpm -qf /usr/bin/find
fintils-4.1-34
第二步,查找fintils的源碼包fintils-4.1-34.src.rpm,這個一般在發行版的網站上可以找到(比如FC6的源碼在這里可以找到:http://ftp.kddilabs.jp/Linux/packages/fedora/core/6/source/SRPMS/)。
也可以到rpmfind.net上查找,輸入rpm包的名字就可以找到相關的源碼包,有的也可以得到軟體對應的網站。
第三步,安裝源碼包:
rpm -ivh fintils-4.1-34.src.rpm
安裝好之後可以到/usr/src/RedHat/SOURCE下找到相關的源碼包
或者直接編譯源碼包:
rpmbuild -bb fintils-4.1-34.src.rpm
F. 如何查看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的啟動順序一步步來閱讀;對於像內存管理部分,可以單獨拿出來進行閱讀分析。實際上這是一個反復的過程,不可能讀一遍就理解。
G. 如何查看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內核。
H. 如何查看linux命令源代碼
以搜索ls命令源碼為例,先搜索命令所在包,命令如下: lpj@lpj-linux:~$ which ls/bin/ls用命令搜索該軟體所在包,代碼如下: lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls 從上一步中可以知道ls命令的實現在包coreutils中,用apt安裝(說安裝有些歧義,主要是區分apt-get -d)該包的源代碼然後解壓,代碼如下: sudo apt-get source coreutils ####cd /usr/src/coreutils-XXX #XXX表示版本號cd . sudo tar zxvf coreutils-XXX.tar.gz 或者只下載源碼,然後手動打補丁再解壓,代碼如下:
I. 如何查看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中查看各命令對應的源代碼了
J. linux系統的源代碼哪裡可以下載
如果要下載指定版本的內核源代碼,就去官網下載,地址:
http://www.kernel.org/
如果要查看本機(某個發行版的內核源代碼),可以在目錄
/usr/src/kernels下面找到。
如果要查看某些安裝文件的源代碼,可以使用命令查看該文件
的安裝源,以查看cat源碼為例,命令:rpm -qif `which cat`
之後會有相關信息列印出來,訪問其源碼路徑,下載即可。
附本人博客「獲取Linux命令源代碼的方法」鏈接如下:
http://blog.csdn.net/shallowgrave/article/details/7854548