linux源碼
⑴ linux的源代碼是什麼
Linux 的源代碼就是 Linux 的源代碼……
Linux 的源代碼 != Linux 的內核源代碼。
一般所說的 Linux ,是指一整套 GNU/Linux 套件的。
⑵ linux系統的源代碼哪裡可以下載
如果要下載指定版本的內核源代碼,就去官網下載,地址:
http://www.kernel.org/
如果要查看本機(某個發行版的內核源代碼),可以在目錄
/usr/src/kernels下面找到。
如果要查看某些安裝文件的源代碼,可以使用命令查看該文件
的安裝源,以查看cat源碼為例,命令:rpm -qif `which cat`
之後會有相關信息列印出來,訪問其源碼路徑,下載即可。
附本人博客「獲取Linux命令源代碼的方法」鏈接如下:
http://blog.csdn.net/shallowgrave/article/details/7854548
⑶ 如何編譯linux源代碼
首先uname -r看一下你當前的linux內核版本
1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。
重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。
最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
⑷ Linux系統的所有源代碼
Linux是一個開放的,自由的類Unix操作系統,它的源代碼是公開的, 各個版本的Linux,包括從內核到許許多多的應用程序的源代碼, 以及可執行文件都可以免費從互聯網上下載。 你也可以通過光碟得到Linux系統,和一般的軟體不同的是, 你可以合法的和你的朋友分享Linux光碟。很顯然Linux光碟的價格不會很高, 第一,因為你可以免費從網上下載;第二,你可以和你的朋友合夥湊錢買一套Linux光碟, 再和你的朋友分享使用。 Linux和一般的軟體不同,是可以和你的朋友分享的。 舉個例子來說: 如果朋友家有張非常漂亮的窗子,但是這窗子是95牌的, 那麼你仿製是違法的,如果這窗子是X牌的,或者說牌子是GPL, 那麼你仿製就不違法。如果你不想違法,但又想要漂亮的窗子, 答案是選擇自由軟體。選擇Linux。 Linux准確的說,是一個系統內核,它是最初在91年, 由芬蘭的了不起的學生Linus Torvalds發起, 接著又有全世界的志願者加入進來開發的。 現在有一些軟體公司在做Linux的生意, 著名的有RedHat,SuSE以及Caldera等等, 這些公司發布自己的基於Linux內核的一整套的Linux系統: 這些整套的系統通常包括有:一個C語言及C++編譯器,Perl腳本解釋程序, 外殼Shell,圖形用戶界面X窗口系統,包括有X Server以及眾多的應用程序等等。 這些整套的Linux系統按照習慣叫做Linux發布(distribution)。 目前使用最廣泛的Linux發布是RedHat公司的RedHat Linux。 以前使用廣泛的Slackware,現在也還有許多人在使用, 我自己的第一個Linux系統就是Slackware,現在我玩的是Debian, Debian和其他的Linux發布的不同之處在於:Debian是完全由志願者開發的, 不像RedHat和SuSE,是由軟體公司所支持的。 RedHat是使用最廣泛的Linux發布,並且RedHat公司現在得到了Netscape, 以及Intel的支持,前景看好,根據一般的看法Redhat也是最容易上手的Linux發布。 SLackware和RedHat相比要稍微復雜一些,這主要是指軟體的安裝方面, 由於RedHat使用rpm打包系統,安裝新軟體簡單到只要一行命令即可。 而Slackware往往要從源代碼重新編譯,稍微費事一些。 SuSE也是基於rpm打包系統,SuSE的特別之處在於它對X窗口系統的支持非常好, SuSE的吉祥物是一隻綠色的蜥蜴,非常可愛。 Debian基於自己的Deb格式的打包系統,但是它也可以安裝rpm軟體包。 Linux可以運行在DEC公司的Alpha機上,也可以運行在Sun公司的Sparc機器上。 當然也可以運行在Intel公司的386以上的機器上。 編寫的好的源代碼可以不經修改的在各種不同的Linux平台上直接編譯安裝運行, 但是顯然,不同的硬體平台之間的可執行文件是不兼容的。 但是一個特別針對Intel機器的rpm軟體包是可以輕易的在for Intel的RedHat,SuSE,Debian, 以及Slackware上安裝運行起來的。 RedHat,SuSE,Slackware以及Debian等各個發布之間的另一個不同是, 它們都帶有自己的系統管理工具。 RedHat使用著名的控制面板+Linuxconf, Debian使用臭名昭著的dselect(為什麼說臭名昭著?因為它非常難控制, 我自己只要有可能,就盡量不碰它) Slackware使用pkgtool, SuSE也有自己的管理工具。 Linux是一個開放的操作系統,它的各個部分:內核,應用程序, 庫程序是有機的結合的。並不是固定的死死的,碰都不能碰。Linux的內核的版本號是XX.XX.XX格式的,由三個數字組成, 第一個數字是主版本好,第三個數字是輔版本號,中間的數字如果是奇數, 表示這是一個開發版的內核,如果是偶數,表示是一個相對穩定的,可靠的內核。 一般來講,除非你正在研究Linux內核,或有特別的需要, 否則不要擺弄奇數版本的內核。 今天演示的第三個部分是Linux下的軟體。常常有人抱怨Linux缺乏有效的軟體的支持, 這在一定情況下的確如此,但是另一方面也是我們對Linux了解太少, Linux平台上現在已經有了相當多的應用軟體。 並且Linux正在得到越來越多的廠家的支持。 這段時間炒的非常火的Oracle,Sybase等等大型資料庫的Linux版本就是一例。 Linux下不但有類似於PhotoShop的免費的圖像編輯軟體:gimp, 還有免費的類似於3DS的三維設計軟體:MoonLight。 並且所有這些軟體,你都可以得到源代碼。 Linux下的圖形用戶界面是基於X窗口系統的, 這也秉承了Linux的一貫傳統:開放的,有機結合的。 XFree86隻是圖形界面的伺服器,上面可以運行各種不同的窗口管理器, 現在著名的窗口管理器有AfterStep,WindowMaker,以及Enlightenment。 有的窗口管理器做得非常的漂亮,真是叫做不看不知道,一看嚇一跳。 另外,如果你不喜歡花哨的窗口管理器,你可以選擇wm2或者9wm, 它們只佔用非常少的系統資源,我自己經常使用的就是9wm。 有了X伺服器和一個窗口管理器,你就有了圖形用戶界面。 你就可以運行Gimp或者Moonlight了,甚至你還可以運行Doom和quake! 現在還有一批程序員正在為Linux開發免費的,開放源代碼的紅色警報。 對Linux的一個最主要的批評是:Linux缺乏支持。 坦白的說,就我自己作為一個個人用戶來講,我覺得Linux的支持非常的好。 我曾經在安裝Debian的時候遇到幾個問題, 到Debian的Mail List里發信詢問了一下,幾個小時後就得到了答案。
⑸ 如何查看 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核心代碼這樣的復雜程序令人望而生畏。它象一個越滾越大的雪球,閱讀核心某個部分經常要用到好幾個其他的相關文件,不久你將會忘記你原來在干什麼。所以沒有一個好的工具是不行的。由於大部分愛好者對於Window平台比較熟悉,並且還是常用Window系列平台,所以在此我介紹一個Window下的一個工具軟體:Source Insight。這是一個有30天免費期的軟體,可以從www.sourcedyn.com下載。安裝非常簡單,和別的安裝一樣,雙擊安裝文件名,然後按提示進行就可以了。安裝完成後,就可啟動該程序。這個軟體使用起來非常簡單,是一個閱讀源代碼的好工具。它的使用簡單介紹如下:先選擇Project菜單下的new,新建一個工程,輸入工程名,接著要求你把欲讀的源代碼加入(可以整個目錄加)後,該軟體就分析你所加的源代碼。分析完後,就可以進行閱讀了。對於打開的閱讀文件,如果想看某一變數的定義,先把游標定位於該變數,然後點擊工具條上的相應選項,該變數的定義就顯示出來。對於函數的定義與實現也可以同樣操作。別的功能在這里就不說了,有興趣的朋友可以裝一個Source Insight,那樣你閱讀源代碼的效率會有很大提高的。怎麼樣,試試吧!
⑹ linux源代碼
直接打出來?????
您真有創意……
現在穩定版的Linux內核源碼在600萬行左右
即便是最初的那個可以穩定運行的v0.11版Linux內核的代碼也有2萬多行
還不要網址,還直接打出來……
你當Linux操作系統是你平時練手的小程序呢……
想學習源碼建議不要直接看最新版的代碼,
600萬行的代碼量相信你不會願意一行一行的去看……那樣能看到你八十歲生日去……
但有挑選的看的話對新手來說不現實,既不知道怎麼挑,挑出來也未必能看懂
建議去看Linux v0.11版的源代碼或者Minix的源代碼
(Linux和Minix內核結構有所不同,如果是為了學習操作系統對硬體的操作原理,可以學Minix,因為這個系統寫出來就是為了給學生們上課學慣用的。而如果是為了學習Linux內核原理,那還是看Linux早期版本的源碼吧,畢竟和Minix在構造上還是有區別的)
推薦去OldLinux網站看v0.11的源代碼
還有一本書:同濟大學的趙炯博士寫的《Linux內核完全注釋》
網上有電子版,也能買大出版的書籍。這本書就是對Linux v0.11內核代碼的完全注釋和解析,對於學習Linux內核非常有幫助
⑺ 如何查看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源代碼
一般在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是一個開放的,自由的類Unix操作系統,它的源代碼是公開的, 各個版本的Linux,包括從內核到許許多多的應用程序的源代碼, 以及可執行文件都可以免費從互聯網上下載。
你也可以通過光碟得到Linux系統,和一般的軟體不同的是, 你可以合法的和你的朋友分享Linux光碟。很顯然Linux光碟的價格不會很高, 第一,因為你可以免費從網上下載;第二,你可以和你的朋友合夥湊錢買一套Linux光碟, 再和你的朋友分享使用。
Linux和一般的軟體不同,是可以和你的朋友分享的。 舉個例子來說:
如果朋友家有張非常漂亮的窗子,但是這窗子是95牌的, 那麼你仿製是違法的,如果這窗子是X牌的,或者說牌子是GPL, 那麼你仿製就不違法。如果你不想違法,但又想要漂亮的窗子, 答案是選擇自由軟體。選擇Linux。
Linux准確的說,是一個系統內核,它是最初在91年, 由芬蘭的了不起的學生Linus Torvalds發起, 接著又有全世界的志願者加入進來開發的。
現在有一些軟體公司在做Linux的生意, 著名的有RedHat,SuSE以及Caldera等等, 這些公司發布自己的基於Linux內核的一整套的Linux系統: 這些整套的系統通常包括有:一個C語言及C++編譯器,Perl腳本解釋程序, 外殼Shell,圖形用戶界面X窗口系統,包括有X Server以及眾多的應用程序等等。
這些整套的Linux系統按照習慣叫做Linux發布(distribution)。 目前使用最廣泛的Linux發布是RedHat公司的RedHat Linux。 以前使用廣泛的Slackware,現在也還有許多人在使用, 我自己的第一個Linux系統就是Slackware,現在我玩的是Debian, Debian和其他的Linux發布的不同之處在於:Debian是完全由志願者開發的, 不像RedHat和SuSE,是由軟體公司所支持的。
RedHat是使用最廣泛的Linux發布,並且RedHat公司現在得到了Netscape, 以及Intel的支持,前景看好,根據一般的看法Redhat也是最容易上手的Linux發布。
SLackware和RedHat相比要稍微復雜一些,這主要是指軟體的安裝方面, 由於RedHat使用rpm打包系統,安裝新軟體簡單到只要一行命令即可。 而Slackware往往要從源代碼重新編譯,稍微費事一些。
SuSE也是基於rpm打包系統,SuSE的特別之處在於它對X窗口系統的支持非常好, SuSE的吉祥物是一隻綠色的蜥蜴,非常可愛。
Debian基於自己的Deb格式的打包系統,但是它也可以安裝rpm軟體包。
Linux可以運行在DEC公司的Alpha機上,也可以運行在Sun公司的Sparc機器上。 當然也可以運行在Intel公司的386以上的機器上。 編寫的好的源代碼可以不經修改的在各種不同的Linux平台上直接編譯安裝運行, 但是顯然,不同的硬體平台之間的可執行文件是不兼容的。 但是一個特別針對Intel機器的rpm軟體包是可以輕易的在for Intel的RedHat,SuSE,Debian, 以及Slackware上安裝運行起來的。
RedHat,SuSE,Slackware以及Debian等各個發布之間的另一個不同是, 它們都帶有自己的系統管理工具。 RedHat使用著名的控制面板+Linuxconf, Debian使用臭名昭著的dselect(為什麼說臭名昭著?因為它非常難控制, 我自己只要有可能,就盡量不碰它) Slackware使用pkgtool, SuSE也有自己的管理工具。
Linux是一個開放的操作系統,它的各個部分:內核,應用程序, 庫程序是有機的結合的。並不是固定的死死的,碰都不能碰。Linux的內核的版本號是XX.XX.XX格式的,由三個數字組成, 第一個數字是主版本好,第三個數字是輔版本號,中間的數字如果是奇數, 表示這是一個開發版的內核,如果是偶數,表示是一個相對穩定的,可靠的內核。 一般來講,除非你正在研究Linux內核,或有特別的需要, 否則不要擺弄奇數版本的內核。
今天演示的第三個部分是Linux下的軟體。常常有人抱怨Linux缺乏有效的軟體的支持, 這在一定情況下的確如此,但是另一方面也是我們對Linux了解太少, Linux平台上現在已經有了相當多的應用軟體。 並且Linux正在得到越來越多的廠家的支持。 這段時間炒的非常火的Oracle,Sybase等等大型資料庫的Linux版本就是一例。
Linux下不但有類似於PhotoShop的免費的圖像編輯軟體:gimp, 還有免費的類似於3DS的三維設計軟體:MoonLight。 並且所有這些軟體,你都可以得到源代碼。
Linux下的圖形用戶界面是基於X窗口系統的, 這也秉承了Linux的一貫傳統:開放的,有機結合的。 XFree86隻是圖形界面的伺服器,上面可以運行各種不同的窗口管理器, 現在著名的窗口管理器有AfterStep,WindowMaker,以及Enlightenment。 有的窗口管理器做得非常的漂亮,真是叫做不看不知道,一看嚇一跳。 另外,如果你不喜歡花哨的窗口管理器,你可以選擇wm2或者9wm, 它們只佔用非常少的系統資源,我自己經常使用的就是9wm。
有了X伺服器和一個窗口管理器,你就有了圖形用戶界面。 你就可以運行Gimp或者Moonlight了,甚至你還可以運行Doom和quake!
現在還有一批程序員正在為Linux開發免費的,開放源代碼的紅色警報。
對Linux的一個最主要的批評是:Linux缺乏支持。 坦白的說,就我自己作為一個個人用戶來講,我覺得Linux的支持非常的好。 我曾經在安裝Debian的時候遇到幾個問題, 到Debian的Mail List里發信詢問了一下,幾個小時後就得到了答案。
⑽ linux的源代碼
www.kernel.org里有linux的內核源代碼,人家編譯內核都要去那裡下載最新的內核代碼。至於Linux下其他軟體的源代碼,你可以去相關的地址下載。最好使用google.com,英文的,不要用中文的網路或谷歌。還有很多人寫了關於閱讀linux源代碼的書,比如趙炯寫的一本分析早期內核1.01的。
ps文件是postscript語言格式的文件,在Linux下,可以用ps2pdf轉換成pdf文件,也可以用GhostView、GSview或者RoPS直接打開。
學習linux有很多種方法,我以前看過一遍文章,不過上面的書我都沒讀過,你自己看吧。http://blog.chinaunix.net/u2/83205/showart.php?id=1918540
哦,趙炯博士的主頁:http://www.oldlinux.org/homepage/
他那本完全注釋linux源代碼: http://oldlinux.org/download/clk011c-1.9.5.pdf
呵呵,我不知道你下載的是什麼,我上面這個地址可是pdf文件,你看後綴就知道了。