導航:首頁 > 編程系統 > linux舊版源碼

linux舊版源碼

發布時間:2024-04-17 15:41:22

linux源碼包的源代碼在哪個文件

如果是別人發布的二進制包,可執行文件通常都安裝到Linux系統 /usr/bin 下面;如果是自己從源代碼安裝的,可執行文件通常都在 /usr/local/bin 下面,除非配置時指定了安裝位置。
例如:
rpm -ivh xxx1.rpm
可執行文件通常都安裝到 /usr/bin 下面
./configure (或者 ./configure --prefix=/usr/local)
make
make install
可執行文件通常都在 /usr/local/bin 下面,因為默認參數就是 --prefix=/usr/local
./configure --prefix=/usr (或者 ./configure --prefix=/opt 也可以指定其他位置,如你的家目錄 --prefix=~,~就是 /home/xxx<即你的家目錄>的縮寫)
make
make install
可執行文件通常都在 /usr/bin 下面(或者相應地位於 /opt/bin 下面,或者 /home/xxx/bin 下面,xxx 是你的家目錄)
無論那種方法,在 bash 控制台下只要輸入可執行文件頭幾個字母,然後連續按兩次 Tab 鍵,就可以列出可能的所有命令,如果只有一種可能,則自動顯示該文件全名,這稱為命令補全。想執行當前目錄下的可執行文件,則必須使用 ./ 作為命令前導,例如:
./myprogram
除此之外,一般的可執行文件都處在系統的搜索路徑里,只要在控制台直接輸入命令名就可執行。例如你編譯安裝了一個叫 synaptic 的軟體,只需要在 KDE 的 konsole 虛擬控制台下輸入 synaptic 即可。
如果不幸,你的可執行文件不在系統的搜索路徑里,就會報告沒有這個命令。那麼你需要把那個可執行文件的位置加入環境變數 PATH 里,用冒號作分割符,例如:
在你的家目錄的 .profile 文件或 .bashrc 文件里添加如下命令
PATH="~/bin:$PATH" 就可以把你的家目錄的 bin 目錄追加到搜索路徑里。
無論任何時候想知道系統里某個「命令文件」的位置,都可以使用 which 命令,例如:
$which pwd
/usr/bin/pwd
說明 pwd 命令位於 /usr/bin 下面。
需要解決更多linux問題,詳情請看 http://www.linuxprobe.com/chapter-00.html

㈡ 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 此目錄是一些文檔,起參考作用。

㈢ linux中源代碼包安裝的基本步驟是什麼

詳解linux源碼包安裝過程

1. 解壓縮包

可以通過下載或其他方式獲得了一個軟體包,通常它是一個壓縮文件,大部分可能是存檔的和壓縮的,這些文件一般以 .tar .gz為擴展名。

首先拷貝它到一個目錄,然後 untar 和 gunzip 解壓它。 通常這個命令是

tar xzvf filename [filename 是軟體文件名稱]

解壓後的文件一般會在當前目錄下的創建子目錄,並以這個包名來命名。 你也可以用用這個命令預先查看結果 tar tzvf filename,顯示包里有那些解壓文件。

源文件如果是新的 bzip2 (.bz2) 格式,可用

bzip2 -cd filename | tar xvf -,或更簡單的 tar xyvf filename ,這很不錯的tar命令被不斷的完善。

說明:

A:有時候一些文件必須安裝在用戶的 home 目錄下,或更多的是在一個固定的目錄,比如 /, /usr/src, 或 /opt 。所以必須仔細閱讀安裝包的配置信息。當一個軟體包里如果有config 和 Makefiles 文件則最好去編輯它,這里包括了安裝指令和說明。提示:你改變 makefile 會導致不同的結果。大部分軟體包允許用 make install 自動處理安置二進制文件在適當的系統位置。

B:你可能碰到過一些共享文件、shell 存檔文件、尤其是 Internet 上的源碼新聞組。它們保留的原因是具有人性化的可讀性,並且允許新聞組緩沖並通過它們篩選和剔除出不合格的。它們可能用 unshar filename.shar 命令來解壓。

C: 一些源碼存檔文件是用非標準的 DOS,Mac 或其他壓縮的比如:

zip, arc, lha, arj, zoo, rar, and shk.

D: 有時候,你可能需要使用一個 patch 或顯示改變了的 diff 文件來升級或修復存檔的源碼文件。這 doc 文件或者 README 文件將告訴你怎麼去使用。一個很好的命令用標准語法來調用的命令是 patch < patchfile.

2: 關於 rpm 安裝包

一些 Linux 用戶懼怕通過使用源碼來手動安裝軟體包,不過現在有方便的 rpm 和 deb 或 新格式的 slp 包。例如:rpm 安裝運行平穩又快,作為一個軟體安裝在某幾個有名的操作系統。

作為方便的RPM包也存在很多不好的缺點,例如:

A: 要了解軟體中更多更詳細的內容你必須去在二進制中去了解,而不是rpm包。

B: 還有安裝一個 rpm 包如果需要依賴關系那麼安裝就可能會導致失敗。

C: 當 rpm 請求你系統中不同版本的庫,那麼安裝將不能繼續,除非你為錯誤的庫位置創建連接符號到正確的位置。

說明:必須使用root 安裝 rpm 和 deb 。因為它需要必須的寫入許可權。

最簡單的,用命令 rpm -i packagename.rpm 和 dpkg --install packagename.deb 會自動解包和安裝。

3:關於安裝 Linux 包出現的一些問題及解決方案

假設 make 失敗有個鏈接錯誤: -lX11: No such file or directory,正好在 xmkmf 之後已被調用,這可能意味著 Imake 不能被完全建立。檢查第一部分 Makefile 文件的的行是這樣:

· LIB= -L/usr/X11/lib
· INCLUDE= -I/usr/X11/include/X11
· LIBS= -lX11 -lc -lm

這個 -L 和 -I 開關告訴編譯器和鏈接分別在哪裡找到 library 和 include 文件。在這個例子里, X11 庫應該在 /usr/X11/lib 目錄,且 X11 包含文件應該在 /usr/X11/include/X11 目錄里。假如對於你的機器上的這個錯誤,請處理修改 Makefile 並重新再 make。

沒有聲明涉及的數學庫函數,像下列各項:
/tmp/cca011551.o(.text 0x11): undefined reference to `cos'

要修復它,需要明確鏈接到匹配的庫,在 Makefile (看先前的例子) 里增加一個 -lm 到 LIB 或 LIBS 標記 。

用其他方法嘗試

仍然失敗 如果失敗,參考下列腳本:
make -DUseInstalled -I/usr/X386/lib/X11/config
這個直接方式的類別相當於。

在少數例子里,用 root 運行 ldconfig 可能會解決:
# ldconfig 更新共享庫鏈接符號。

一些 Makefiles 使用你系統里未被承認的庫別名。一個例子,構建可能需要 libX11.so.6 ,但是在 /usr/X11R6/lib 不存在文件或鏈接。然而,在那裡是 libX11.so.6.1。解決方法是用 root 運行ln -s /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/lib/libX11.so.6 ,接著需要運行 ldconfig 。
有一些包需要你安裝一個或更多庫的升級版本。需要拷貝一個或更多的庫到適當的目錄里,刪除舊的庫,重新設置動態鏈接庫。
4:一些其他的問題處理

安裝一個shell 腳本如果出現:No such file or directory 的錯誤消息。這是可以檢查文件許可權確定文件事可執行的,並檢查文件頭確定是否 shell 或程序是腳本在指定的位置被調用。一個例子,這個腳本可能是這樣開始的:

#!/usr/local/bin/EDEN

如EDEN的實際安裝位置是在你的 /usr/bin 目錄,用一個 /usr/local/bin 替代

這個腳本不能運行有兩個方法來糾正!!

A: 文件頭改成 #!/usr/bin/EDEN

B: 或增加一個鏈接符, ln -s /usr/bin/EDEN

5:一個典型的例子 Xloadimage

首先說明下面的例子來源於國外網站的一個技術實例,這里我做了翻譯和整理。

這個例子展現一個簡單的問題。xloadimage 程序對我的圖形工具的調整設置是有用的附加。從源碼目錄拷貝文件,用 tar xzvf 解壓文件,可是在運行 make 的時候出現令人討厭的錯誤並停止了。

gcc -c -O -fstrength-rece -finline-functions -fforce-mem

-fforce-addr -DSYSV -I/usr/X11R6/include

-DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

In file included from /usr/include/stdlib.h:32,

from image.h:23,

from xloadimage.h:15,

from mcidas.c:7:

/usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:

conflicting types for `wchar_t'

/usr/X11R6/include/X11/Xlib.h:74: previous declaration of

`wchar_t'

make[1]: *** [mcidas.o] Error 1

make[1]: Leaving directory

`/home/thegrendel/tst/xloadimage.4.1'

make: *** [default] Error 2

這個錯誤消息包含了實質的線索:

查看 image.h 文件的 23 行:
#include < stdlib.h>
在源碼的某處對於 xloadimage, wchar_t 已經在指定標准 include 文件重新定義。 告訴我們首先在 image.h 的 23 行嘗試注釋它,或許 stdlib.h include 是不存在的,畢竟不是所有都是必需的。

在這點,構建中的收益來源於所有任何一個致命錯誤。xloadimage 現在功能正常。

6: 安裝 Linux 包的一些總結

堅持自己動手處理所有的安裝出現的問題,不斷總結努力學習,從錯誤里去仔細研究,努力動手排錯,從每個不足甚至失敗的地方得到擴充和提升,可以增強安裝構建軟體的技巧。

㈣ linux系統的源代碼哪裡可以下載

如果要抄下載指定版襲本的內核源代碼,就去官網下載,地址:
http://www.kernel.org/

如果要查看本機(某個發行版的內核源代碼),可以在目錄
/usr/src/kernels下面找到。

如果要查看某些安裝文件的源代碼,可以使用命令查看該文件
的安裝源,以查看cat源碼為例,命令:rpm -qif `which cat`
之後會有相關信息列印出來,訪問其源碼路徑,下載即可。
附本人博客「獲取Linux命令源代碼的方法」鏈接如下:
http://blog.csdn.net/shallowgrave/article/details/7854548

㈤ 求一段Linux操作系統源代碼分析

這個文件非常小 你們老師分析模板給了很好分析了
一,源代碼文件名稱
Linux/lib/setsid.c
二,源代碼功能描述回
整體功答能:如果調用的進程不是一個組的組長時,setsid創建一個新會話。調用進程將成為該新會話的組長,新進程組的組長,並且沒有控制終端。調用進程的組id和會話id被設置成進程的PID,調用進程將成為新進程組合和新會話中的唯一進程。
函數輸入:pid-t,setsid
函數輸出:調用進程的會話標識符
函數功能:(就一個函數,所以就跟整體功能相同就行了)
三,程序流程圖 (可以省略了)

閱讀全文

與linux舊版源碼相關的資料

熱點內容
大數據線下測試 瀏覽:147
一汽大眾手機互聯app叫什麼 瀏覽:984
大千世界在哪個文件夾 瀏覽:610
cfwpe封包抓取教程 瀏覽:897
哈利波特版本 瀏覽:663
如何從多行列中返回第一列數據 瀏覽:579
一個t的文件能有多少照片 瀏覽:174
安卓qq文件在哪個文件夾里 瀏覽:729
放圖片的文件夾什麼格式 瀏覽:213
win10esp精簡版 瀏覽:865
文件名1688quick 瀏覽:927
del文件是哪個資料庫的 瀏覽:901
java將字元串轉換為整型 瀏覽:175
win7批量修改部分文件名 瀏覽:873
win8需要升級到win10么 瀏覽:85
大數據在海關的運用 瀏覽:38
android使用javamail 瀏覽:3
win10快速訪問共享文件 瀏覽:259
喜馬拉雅電腦文件導出 瀏覽:615
js取商運算 瀏覽:719

友情鏈接