當前位置:首頁 » 操作系統 » linux內核源碼下載

linux內核源碼下載

發布時間: 2022-07-06 09:24:00

A. 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的啟動順序一步步來閱讀;對於像內存管理部分,可以單獨拿出來進行閱讀分析。實際上這是一個反復的過程,不可能讀一遍就理解。

B. linux 內核源碼下載 我需要3.18.13版本的頭文件 linux官網上怎麼找不到這個

這個是下載的地址
https://www.kernel.org/pub/linux/kernel/v3.0/linux-3.18.13.tar.gz
這個是3.X的內核源代碼總的目錄
https://www.kernel.org/pub/linux/kernel/v3.0/
下載其他的內核有關的可以在一些目錄下找
https://www.kernel.org/pub/linux/kernel
不知道啥繼續問

C. 在哪裡可以下到Linux的核心代碼

內核簡介
內核,是一個操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網路系統,決定著系統的性能和穩定性。

Linux的一個重要的特點就是其源代碼的公開性,所有的內核源程序都可以在/usr/src/linux下找到,大部分應用軟體也都是遵循GPL而設計的,你都可以獲取相應的源程序代碼。全世界任何一個軟體工程師都可以將自己認為優秀的代碼加入到其中,由此引發的一個明顯的好處就是Linux修補漏洞的快速以及對最新軟體技術的利用。而Linux的內核則是這些特點的最直接的代表。

想像一下,擁有了內核的源程序對你來說意味著什麼?首先,我們可以了解系統是如何工作的。通過通讀源代碼,我們就可以了解系統的工作原理,這在Windows下簡直是天方夜譚。其次,我們可以針對自己的情況,量體裁衣,定製適合自己的系統,這樣就需要重新編譯內核。在Windows下是什麼情況呢?相信很多人都被越來越龐大的Windows整得莫名其妙過。再次,我們可以對內核進行修改,以符合自己的需要。這意味著什麼?沒錯,相當於自己開發了一個操作系統,但是大部分的工作已經做好了,你所要做的就是要增加並實現自己需要的功能。在Windows下,除非你是微軟的核心技術人員,否則就不用痴心妄想了。

內核版本號

由於Linux的源程序是完全公開的,任何人只要遵循GPL,就可以對內核加以修改並發布給他人使用。Linux的開發採用的是集市模型(bazaar,與cathedral--教堂模型--對應),為了確保這些無序的開發過程能夠有序地進行,Linux採用了雙樹系統。一個樹是穩定樹(stable tree),另一個樹是非穩定樹(unstable tree)或者開發樹(development tree)。一些新特性、實驗性改進等都將首先在開發樹中進行。如果在開發樹中所做的改進也可以應用於穩定樹,那麼在開發樹中經過測試以後,在穩定樹中將進行相同的改進。一旦開發樹經過了足夠的發展,開發樹就會成為新的穩定樹。開發數就體現在源程序的版本號中;源程序版本號的形式為x.y.z:對於穩定樹來說,y是偶數;對於開發樹來說,y比相應的穩定樹大一(因此,是奇數)。到目前為止,穩定樹的最高版本是2.2.16,最新發布的Redhat7.0所採用的就是2.2.16的內核;開發樹的最新版本是2.3.99。也許你已經發現和多網站上都有2.4.0-test9-pre7之類的內核,但是這並不是正式版本。內核版本的更新可以訪問http://www.kernel.org。

為什麼重新編譯內核

Linux作為一個自由軟體,在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯內核。

通常,更新的內核會支持更多的硬體,具備更好的進程管理能力,運行速度更快、 更穩定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是Linux使用者的必要操作內容。

為了正確的合理地設置內核編譯配置選項,從而只編譯系統需要的功能的代碼,一般主要有下面四個考慮:

自己定製編譯的內核運行更快(具有更少的代碼)
系統將擁有更多的內存(內核部分將不會被交換到虛擬內存中)
不需要的功能編譯進入內核可能會增加被系統攻擊者利用的漏洞
將某種功能編譯為模塊方式會比編譯到內核內的方式速度要慢一些

內核編譯模式

要增加對某部分功能的支持,比如網路之類,可以把相應部分編譯到內核中(build-in),也可以把該部分編譯成模塊(mole),動態調用。如果編譯到內核中,在內核啟動時就可以自動支持相應部分的功能,這樣的優點是方便、速度快,機器一啟動,你就可以使用這部分功能了;缺點是會使內核變得龐大起來,不管你是否需要這部分功能,它都會存在,這就是Windows慣用的招數,建議經常使用的部分直接編譯到內核中,比如網卡。如果編譯成模塊,就會生成對應的.o文件,在使用的時候可以動態載入,優點是不會使內核過分龐大,缺點是你得自己來調用這些模塊。

內核編譯詳解

新版本內核的獲取和更新

Linux內核版本發布的官方網站是http://www.kernel.org,國內各大ftp上一般都可以找到某些版本的內核。新版本的內核的發布有兩種形式,一種是完整的內核版本,另外一種是patch文件,即補丁。完整的內核版本比較大,比如linux-2.4.0-test8.tar.bz2就有18M之多,網速快的用戶可以下載使用。完整內核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,二者分別是使用gzip或者bzip2進行壓縮的文件,使用時需要解壓縮。patch文件則比較小,一般只有幾十K到幾百K,極少的會超過1M,網速慢的用戶可以使用patch文件來升級內核。但是patch文件是針對於特定的版本的,你需要找到自己對應的版本才能使用。

編譯內核需要root許可權,以下操作都假定你是root用戶。請把你需要升級的內核拷貝到/usr/src/下(下文中以2.4.0test8的內核的linux-2.4.0test8.tar.gz為例),命令為

#cp linux-2.4.0test8.tar.gz /usr/src

讓我們先來查看一下當前/usr/src的內容,注意到有一個linux的符號鏈接,它指向一個類似於linux-2.2.14(對應於你現在使用的內核版本號)的目錄。首先刪除這個鏈接:

#cd /usr/src
#rm -f linux

現在解壓我們下載的源程序文件。如果所下載的是.tar.gz(.tgz)文件,請使用下面的命令:

#tar -xzvf linux-2.4.0test8.tar.gz

如果你所下載的是.bz2文件,例如linux-2.4.0test8.tar.bz2,請使用下面的命令

#bzip2 -d linux-2.4.0test8.tar.bz2
#tar -xvf linux.2.4.0.test8.tar

現在讓我們再來看一下/usr/src下的內容,你會發現現在有了一個名為linux的目錄,裡面就是我們需要升級到的版本的內核的源程序。還記得那個名為linux的鏈接么?之所以使用那個鏈接就是防止在升級內核的時候會不慎把原來版本內核的源程序給覆蓋掉了。我們也需要同樣處理:

#mv linux linux-2.4.0test8
#ln -s linux-2.4.0test8 linux

這樣我們也有了一個名為linux的符號鏈接,就不用擔心以後會把它覆蓋掉了(也許你會覺得重新建立linux的符號鏈接沒有必要,但實際上這是必不可少的,下文中會有介紹)。如果你還下載了patch文件,比如patch-2.4.0test8,你就可以進行patch操作(下面假設patch-2.4.0test8已經位於/usr/src目錄下了,否則你需要先把該文件拷貝到/usr/src下):

#patch -p0 < patch-2.4.0test8

現在,我們已經把內核源程序升級到最新版本了,下面就讓我們開始內核編譯的旅程吧。

准備工作

通常要運行的第一個命令是:

#cd /usr/src/linux;make mrproper

該命令確保源代碼目錄下沒有不正確的.o文件以及文件的互相依賴。由於我們使用剛下載的完整的源程序包進行編譯,所以本步可以省略。而如果你多次使用了這些源程序編譯內核,那麼最好要先運行一下這個命令。
確保/usr/include/目錄下的asm、linux和scsi等鏈接是指向要升級的內核源代碼的。它們分別鏈向源代碼目錄下的真正的、該計算機體系結構(對於PC機來說,使用的體系結構是i386)所需要的真正的include子目錄。如:asm指向/usr/src/linux/include/asm-i386等。若沒有這些鏈接,就需要手工創建,按照下面的步驟進行:

# cd /usr/include/
# rm -r asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi

這是配置非常重要的一部分。刪除掉/usr/include下的asm、linux和scsi鏈接後,再創建新的鏈接指向新內核源代碼目錄下的同名的目錄。這些頭文件目錄包含著保證內核在系統上正確編譯所需要的重要的頭文件。現在你應該明白為什麼我們上面又在/usr/src下"多餘"地創建了個名為linux的鏈接了吧?
配置

接下來的內核配置過程比較煩瑣,但是配置的適當與否與日後Linux的運行直接相關,有必要了解一下一些主要的且經常用到的選項的設置。
配置內核可以根據需要與愛好使用下面命令中的一個:

#make config(基於文本的最為傳統的配置界面,不推薦使用)
#make menuconfig(基於文本選單的配置界面,字元終端下推薦使用)
#make xconfig(基於圖形窗口模式的配置界面,Xwindow下推薦使用)
#make oldconfig(如果只想在原來內核配置的基礎上修改一些小地方,會省去不少麻煩)

這三個命令中,make xconfig的界面最為友好,如果你可以使用Xwindow,那麼就推薦你使用這個命令。

如果你不能使用Xwindow,那麼就使用make menuconfig好了。界面雖然比上面一個差點,總比make config的要好多了。

選擇相應的配置時,有三種選擇,它們分別代表的含義如下:

Y--將該功能編譯進內核
N--不將該功能編譯進內核
M--將該功能編譯成可以在需要時動態插入到內核中的模塊

如果使用的是make xconfig,使用滑鼠就可以選擇對應的選項。如果使用的是make menuconfig,則需要使用空格鍵進行選取。你會發現在每一個選項前都有個括弧, 但有的是中括弧有的是尖括弧,還有一種圓括弧。 用空格鍵選擇時可以發現,中括弧里要麼是空,要麼是"*",而尖括弧里可以是空,"*"和"M"這表示前者對應的項要麼不要,要麼編譯到內核里;後者則多一樣選擇,可以編譯成模塊。而圓括弧的內容是要你在所提供的幾個選項中選擇一項。

在編譯內核的過程中,最煩雜的事情就是這步配置工作了,很多新手都不清楚到底該如何選取這些選項。實際上在配置時,大部分選項可以使用其預設值,只有小部分需要根據用戶不同的需要選擇。選擇的原則是將與內核其它部分關系較遠且不經常使用的部分功能代碼編譯成為可載入模塊,有利於減小內核的長度,減小內核消耗的內存,簡化該功能相應的環境改變時對內核的影響;不需要的功能就不要選;與內核關心緊密而且經常使用的部分功能代碼直接編譯到內核中。下面就讓我們對常用的選項分別加以介紹。

1. Code maturity level options
代碼成熟等級。此處只有一項:prompt for development and/or incomplete code/drivers,如果你要試驗現在仍處於實驗階段的功能,比如khttpd、IPv6等,就必須把該項選擇為Y了;否則可以把它選擇為N。

2. Loadable mole support
對模塊的支持。這裡面有三項:

Enable loadable mole support:除非你准備把所有需要的內容都編譯到內核裡面,否則該項應該是必選的。
Set version information on all mole symbols:可以不選它。
Kernel mole loader:讓內核在啟動時有自己裝入必需模塊的能力,建議選上。

3. Processor type and features
CPU類型。內容蠻多的,不一一介紹了,有關的幾個如下:

Processor family:根據你自己的情況選擇CPU類型。
High Memory Support:大容量內存的支持。可以支持到4G、64G,一般可以不選。
Math emulation:協處理器模擬。協處理器是在386時代的寵兒,現在早已不用了。
MTTR support:MTTR支持。可不選。
Symmetric multi-processing support:對稱多處理支持。除非你富到有多個CPU,否則就不用選了。

4. General setup
這里是對最普通的一些屬性進行設置。這部分內容非常多,一般使用預設設置就可以了。下面介紹一下經常使用的一些選項:

Networking support:網路支持。必須,沒有網卡也建議你選上。
PCI support:PCI支持。如果使用了PCI的卡,當然必選。
PCI access mode:PCI存取模式。可供選擇的有BIOS、Direct和Any,選Any吧。
Support for hot-pluggabel devices:熱插拔設備支持。支持的不是太好,可不選。
PCMCIA/CardBus support:PCMCIA/CardBus支持。有PCMCIA就必選了。
System V IPC
BSD Process Accounting
Sysctl support:以上三項是有關進程處理/IPC調用的,主要就是System V和BSD兩種風格。如果你不是使用BSD,就按照預設吧。
Power Management support:電源管理支持。
Advanced Power Management BIOS support:高級電源管理BIOD支持。

5. Memory Technology Device(MTD)
MTD設備支持。可不選。

6. Parallel port support
串口支持。如果不打算使用串口,就別選了。

7. Plug and Play configuration
即插即用支持。雖然Linux對即插即用目前支持的不如Windows好,但是還是選上吧,這樣你可以拔下滑鼠之類的體驗一下Linux下即插即用的感覺。

8. Block devices
塊設備支持。這個就得針對自己的情況來選了,簡單說明一下吧:

Normal PC floppy disk support:普通PC軟盤支持。這個應該必選。
XT hard disk support:
Compaq SMART2 support:
Mulex DAC960/DAC1100 PCI RAID Controller support:RAID鏡像用的。
Loopback device support:
Network block device support:網路塊設備支持。如果想訪問網上鄰居的東西,就選上。
Logical volume manager(LVM)support:邏輯卷管理支持。
Multiple devices driver support:多設備驅動支持。
RAM disk support:RAM盤支持。

9. Networking options
網路選項。這里配置的是網路協議。內容太多了,不一一介紹了,自己看吧,如果你對網路協議有所了解的話,應該可以看懂的。如果懶得看,使用預設選項(肯定要選中TCP/IP networking哦)就可以了。讓我們看看,TCP/IP、ATM、IPX、DECnet、Appletalk……支持的協議好多哦,IPv6也支持了,Qos and/or fair queueing(服務質量公平調度)也支持了,還有kHTTPd,不過這些都還在實驗階段。

10. Telephony Support
電話支持。這個是什麼東東?讓我查查幫助,原來是Linux下可以支持電話卡,這樣你就可以在IP上使用普通的電話提供語音服務了。記住,電話卡可和modem沒有任何關系哦。

11. ATA/IDE/MFM/RLL support
這個是有關各種介面的硬碟/光碟機/磁帶/軟盤支持的,內容太多了,使用預設的選項吧,如果你使用了比較特殊的設備,比如PCMCIA等,就到裡面自己找相應的選項吧。

12. SCSI support
SCSI設備的支持。我沒有SCSI的設備,所以根本就不用選,如果你用了SCSI的硬碟/光碟機/磁帶等設備,自己找好了。

13. IEEE 1394(FireWire)support
這個是什麼?低版本的沒有見過,看看幫助再說。原來是要Fireware硬體來提高串列匯流排的性能,我沒有,不選了。

14. I2O device support
這個也不清楚,幫助里說是這個需要I2O介面適配器才能支持的,在智能Input/Output(I2O)體系介面中使用,又是要硬體,不選了。

15. Network device support
網路設備支持。上面選好協議了,現在該選設備了,可想而知,內容肯定多得很。還好還好,裡面大概分類了,有ARCnet設備、Ethernet(10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support幾大類。我用的是10/100M的乙太網,看來只需要選則這個了。還是10/100M的乙太網設備熟悉,內容雖然多,一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support,為了免得麻煩,編譯到內核裡面好了,不選M了,選Y。耐心點,一般說來你都能找到自己用的網卡。如果沒有,你只好自己到廠商那裡去要驅動了。

16. Amateur Radio support
又一個不懂的,應該是配置業余無線廣播的吧,沒有,不要了。

17. IrDA(infrared)support
這個要紅外支持,免了。

18. ISDN subsystem
如果你使用ISDN上網,這個就必不可少了。自己看著辦好了。

19. Old CD-ROM drivers(not SCSI、not IDE)
做的可真周到,原來那些非SCSI/IDE口的光碟機誰還在用啊,自己選吧,反正我是用的IDE的CD-ROM,不選這個。

20. Character devices
字元設備。這個內容又太多了,先使用預設設置,需要的話自己就修改。把大類介紹一下吧:

I2C support:I2C是Philips極力推動的微控制應用中使用的低速串列匯流排協議。如果你要選擇下面的Video For Linux,該項必選。
Mice:滑鼠。現在可以支持匯流排、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad,自己根據需要選擇。
Joysticks:手柄。即使在Linux下把手柄驅動起來意義也不是太大,游戲太少了。
Watchdog Cards:雖然稱為Cards,這個可以用純軟體來實現,當然也有硬體的。如果你把這個選中,那麼就會在你的/dev下創建一個名為watchdog的文件,它可以記錄你的系統的運行情況,一直到系統重新啟動的1分鍾左右。有了這個文件,你就可以恢復系統到重啟前的狀態了。
Video For Linux:支持有關的音頻/視頻卡。
Ftape, the floppy tape device driver:
PCMCIA character device support:

21. File systems
文件系統。內容又太多了,老法子,在預設選項的基礎上進行修改。介紹以下幾項:

Quota support:Quota可以限制每個用戶可以使用的硬碟空間的上限,在多用戶共同使用一台主機的情況中十分有效。
DOS FAT fs support:DOS FAT文件格式的支持,可以支持FAT16、FAT32。
ISO 9660 CD-ROM file system support:光碟使用的就是ISO 9660的文件格式。
NTFS file system support:ntfs是NT使用的文件格式。
/proc file system support:/proc文件系統是Linux提供給用戶和系統進行交互的通道,建議選上,否則有些功能沒法正確執行。

還有另外三個大類都規到這兒了:Network File Systems(網路文件系統)、Partition Types(分區類型)、Native Language Support(本地語言支持)。值得一提的是Network File Systems裡面的兩種:NFS和SMB分別是Linux和Windows相互以網路鄰居的形式訪問對方所使用的文件系統,根據需要加以選擇。

22. Console drivers
控制台驅動。一般使用VGA text console就可以了,標準的80*25的文本控制台。

23. Sound
音效卡驅動。如果你能在列表中找到音效卡驅動那自然最好,否則就試試OSS了。

24. USB supprot
USB支持。很多USB設備,比如滑鼠、數據機、列印機、掃描儀等,在Linux都可以得到支持,根據需要自行選擇。

25. Kernel hacking
配置了這個,即使在系統崩潰時,你也可以進行一定的工作了。普通用戶是用不著這個功能的。

總算配置完了,現在存檔退出,當然你也可以把現在的配置文件保存起來,這樣下次再配置的時候就省力氣了。

編譯

在繁雜的配置工作完成以後,下面你就可以自己到杯茶耐心等候了。與編譯有關的命令有如下幾個:

#make dep
#make clean
#make zImage
#make bzImage
#make moles
#make moles_install
#depmod -a

第一個命令make dep實際上讀取配置過程生成的配置文件,來創建對應於配置的依賴關系樹,從而決定哪些需要編譯而那些不需要;第二命令make clean完成刪除前面步驟留下的文件,以避免出現一些錯誤;第三個命令make zImage和第四個命令make bzImage實現完全編譯內核,二者生成的內核都是使用gzip壓縮的,只要使用一個就夠了,它們的區別在於使用make bzImage可以生成大一點的內核,比如在編譯2.4.0版本的內核時如果使用make zImage命令,那麼就會出現system too big的錯誤提示。建議大家使用make bzImage命令。

後面三個命令只有在你進行配置的過程中,在回答Enable loadable mole support (CONFIG_MODULES)時選了"Yes"才是必要的,make moles和make moles_install分別生成相應的模塊和把模塊拷貝到需要的目錄中。

嚴格說來,第七個命令和編譯過程並沒有關系,它是生成模塊間的依賴關系,這樣你啟動新內核之後,使用modprobe命令載入模塊時就能正確地定位模塊。

更新

經過以上的步驟,我們終於得到了新版本的內核。為了能夠使用新版本的內核,我們還需要做一些改動:

#cp /usr/src/linux/System.map /boot/System.map-2.4.0test8
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.0test8

以上這兩個文件是我們剛才編譯時新生成的。下面修改/boot下的兩個鏈接System.map和vmlinuz,使其指向新內核的文件:

#cd /boot;rm -f System.map vmlinuz
#ln -s vmlinuz-2.4.0test8 vmlinuz
#ln -s System.map-2.4.0test8 System.map

然後修改/etc/lilo.conf:

#vi /etc/lilo.conf

增加如下一段:

image=/boot/vmlinuz-2.4.0test8
label=linux240
read-only
root=/dev/hda2

其中root=/dev/hda2一行要根據需要自行加以修改。
運行:

#/sbin/lilo -v

確認對/etc/lilo.conf的編輯無誤,現在重新啟動系統:

#shutdown -r now

在機器重啟後出現LILO時按TAB鍵,輸入linux240,我們的新內核發揮作用了,好好享受吧。

D. ARM Linux的內核源代碼怎麼弄

linux的內核源碼要去網上下載,系統里的是編譯過的。如果你C語言很過硬的話可以去研究研究,對於你的益處很大,做ARM開發不用看內核,除非做底層驅動開發的話會需要看一些函數是怎麼實現和調用的。
至於u-boot的話你要先把shell編程看一下,不然你看不懂的,那個對於你理解arm板子上的linux系統是怎麼啟動的有一定幫助,其實在真正開發過程中作用不大。
給嵌入式板子載入linux系統就需要源碼進行編譯,編譯成鏡像然後下載到flash里

E. 哪有linux內核2.4.0版源代碼下載

這個網站有各種版本的Linux內核
http://www.kernel.org/
2.4的在這個地址
http://www.kernel.org/pub/linux/kernel/v2.4/

F. LINUX 2.4內核源代碼在哪裡下載呀

去 官方 網站 找找

源代碼 嘛,隨便 哪個 編輯器 都可以的

Good luck

G. linux2.6內核源碼使用git下載失敗,誰幫我下載

直接下載 tar 包不就行了……幹嘛非要從 git 上面同步?
要知道 git 下載的可不是源代碼。而是整個開發過程記錄。kernel 這種超大項目,提交非常多的。100M 的源代碼,可能需要 1000M 的數據。

H. 哪裡有Linux內核源代碼下載

如果是拿來用或者改寫最新內核的
Linux最新內核代碼:
http://www.kernel.org/
如果是拿來學習研究的
Linux早期版本內核代碼(簡單易學):
http://www.oldlinux.org/index_cn.html

I. 在哪可以下載Linux內核各個版本的源碼

1、u-boot下載

ftp://ftp.denx.de/pub/u-boot/
2、內核下載
www.kernel.org
3、busybox下載
www.busybox.net

有著三個東西你就可以製作自己的一個系統。

J. linux內核版本號命名的規則以及去哪下載內核源碼

內核官方命名規則只有 例如 2.6.23 , 表明屬於內核2.6 , 23rd release

然後對於各發行版 ,則存在一些針對發行版的優化 ,比如在這里的 2.6.23隻有的 9-85 , 通常約定是 當前版本的第9版內核patch 而85則作為 這個當前版本的第85次微調patch , 而FC8很明顯的就指出了當前內核是為FC8特別調校的

至於 2.6.23.9-85.fc8 的內核源碼,fedora官方已經提供了編譯好的源碼rpm包 下載地址為

http://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/source/SRPMS/

然後安裝源碼

$sudo rpm -ivh kernel-2.6.23.9-85.fc8.src.rpm

安裝後還需要一步轉換過程

轉換源碼:
在轉換之前,請確保/usr/src/目錄下有redhat目錄(一般/usr/src/是空目錄)。
$sudo rpmbuild -bp --target=$(uname -m) /usr/src/redhat/SPECS/kernel.spec
這樣會將源碼放置在/usr/src/redhat/BUILD/kernel-2.6.23/。
這里有兩個有用的文件夾:.
A、linux-2.6.23.ARCH——這個是kernel.org 提供的包經過Fedora 補丁和升級得到的。也就是 2.6.23.9-85.fc8 這個打過補丁的內核
ARCH 與uname-m 的輸出結果一致,通常為i686。如果你想得到不同的輸出,你可以使用
「--target=」這個選項來進行指定。
B、vanilla——這個是標準的、由kernel.org 提供的沒有經過補丁和升級的源碼。

---------------------------------------------------------

至於i686之類的,就不必解釋了吧 呵呵

另外反駁樓上的這個說法
"在網上下載內核源碼的話,可以直接到官網:http://www.kernel.org
至於rpm包就不用考慮了,因為內核源碼,你總要編譯安裝的。 "

這對於任何內核做過特殊優化調校的發行版都是不合適的,尤其是fedora ubuntu 這一類的,畢竟他們在內核中打了大量的補丁,做了很多優化,如果直接使用官方源碼 ,你就無法享受到這些東西 , 內核不是越新越好的 越合適越好

熱點內容
u啟動iso解壓 發布:2024-11-18 22:22:03 瀏覽:885
oracle存儲過程rollback 發布:2024-11-18 22:14:05 瀏覽:672
c語言學生管理系統課程設計 發布:2024-11-18 22:13:15 瀏覽:604
怎麼在雲伺服器上掛機手機游戲 發布:2024-11-18 22:03:03 瀏覽:317
ppp撥號伺服器搭建 發布:2024-11-18 22:02:59 瀏覽:586
幻靈游俠腳本 發布:2024-11-18 21:57:39 瀏覽:457
node加密 發布:2024-11-18 21:56:13 瀏覽:978
養女ftp 發布:2024-11-18 21:56:02 瀏覽:818
請描述如何配置安全的防火牆 發布:2024-11-18 21:53:45 瀏覽:144
安卓ios怎麼選 發布:2024-11-18 21:41:54 瀏覽:475