新聞中心
Linux是一種極其強大的操作系統(tǒng),它的核心是內(nèi)核。內(nèi)核是系統(tǒng)框架中重要的一部分,直接調(diào)用硬件設備,管理外部設備和進程的運行。因此,Linux內(nèi)核的學習與分析是Linux系統(tǒng)開發(fā)的關(guān)鍵部分。本文主要介紹Linux 2.6內(nèi)核源碼,并深入其核心結(jié)構(gòu)和原理,以幫助讀者理解Linux內(nèi)核的內(nèi)部機制。

創(chuàng)新互聯(lián)建站長期為千余家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為延邊朝鮮族企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設,延邊朝鮮族網(wǎng)站改版等技術(shù)服務。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
一、Linux 2.6內(nèi)核的歷史
Linux 2.6內(nèi)核在2023年12月發(fā)布。它與Linux 2.4的區(qū)別在于,它具有更好的內(nèi)存管理和網(wǎng)絡性能,支持新的文件系統(tǒng)以及更好的硬件驅(qū)動程序。Linux 2.6內(nèi)核是Linus Torvalds、Andrew Morton和其他Linux社區(qū)成員共同開發(fā)的,他們從3.0.0到3.7.1之間共同維護了這個版本的內(nèi)核。
二、Linux 2.6內(nèi)核架構(gòu)
Linux 2.6內(nèi)核由許多不同的模塊組成,其中核心模塊包括進程管理、文件系統(tǒng)、網(wǎng)絡驅(qū)動和設備驅(qū)動。這些模塊連接到內(nèi)核,通過系統(tǒng)調(diào)用和其他核心功能進行通信。下面將分別介紹這幾個模塊的作用和實現(xiàn)方法。
1.進程管理
進程管理模塊是Linux 2.6內(nèi)核中最基本的模塊之一。它的主要作用是確保應用程序能夠運行,并與其他進程協(xié)調(diào)。在Linux內(nèi)核中,每個進程都有一個唯一的ID,其中0號進程(init)是所有其他進程的父進程。當應用程序啟動時,它將被分配一個新的進程ID,并在虛擬內(nèi)存中分配資源,如堆??臻g和代碼段。
在Linux內(nèi)核中,進程管理器使用調(diào)度程序?qū)M程進行排隊,并決定哪個進程將適當?shù)剡\行。當一個進程已經(jīng)完成了它的任務并退出時,可以通過取回資源來回收內(nèi)存和協(xié)議棧。不僅如此,Linux內(nèi)核中的進程管理器還允許跨進程通信,通過IPC機制和套接字API等工具實現(xiàn)。
2.文件系統(tǒng)
在用戶空間的文件操作被轉(zhuǎn)化為系統(tǒng)調(diào)用,這些調(diào)用然后被處理為Linux內(nèi)核中的文件系統(tǒng)I/O。Linux內(nèi)核支持許多不同的文件系統(tǒng),包括ext4、Fat16/32和NTFS等。每個文件系統(tǒng)有一個不同的掛載點,例如,根據(jù)文件系統(tǒng)的類型和選項,可以將USB存儲設備掛載到“/mnt/u”目錄中。
Linux內(nèi)核中的文件系統(tǒng)模塊還負責文件鎖定和同步等重要任務。文件鎖定使多個進程能夠訪問相同的文件,而不會產(chǎn)生競爭條件。同步是確保對文件的訪問是原子性的,并提供了文件系統(tǒng)的一致性和可靠性保證。
3.網(wǎng)絡驅(qū)動
網(wǎng)絡驅(qū)動是定義網(wǎng)絡接口和讓Linux系統(tǒng)通過網(wǎng)絡進行通信的工具。在Linux內(nèi)核中,網(wǎng)絡驅(qū)動為套接字API(Sockets API)提供底層支持,Sockets API是一種通用的網(wǎng)絡編程接口,可以使應用程序可以從網(wǎng)絡上讀取或發(fā)送數(shù)據(jù)。
Linux內(nèi)核中的網(wǎng)絡驅(qū)動與許多不同的協(xié)議套件兼容,包括TCP/IP、IPX/SPX和AppleTalk。Linux還支持幾種流行的網(wǎng)絡協(xié)議,如SSH、FTP、HTTP和TP等,同時也支持防火墻和網(wǎng)絡地址轉(zhuǎn)換等功能,以保障網(wǎng)絡安全性。
4.設備驅(qū)動
Linux系統(tǒng)中的設備驅(qū)動程序有很多種,包括磁盤驅(qū)動程序、USB驅(qū)動程序、鍵盤驅(qū)動程序和鼠標驅(qū)動程序等,它們連接到與計算機系統(tǒng)關(guān)聯(lián)的設備。Linux 2.6內(nèi)核支持各種設備驅(qū)動程序,并提供一個靈活的架構(gòu),以便任意的設備可以連接和使用。
通常情況下,設備驅(qū)動程序代碼易于編寫,但它們必須與Linux內(nèi)核密切配合,確保數(shù)據(jù)的正確傳輸并提供良好的性能。設備驅(qū)動程序也負責減少系統(tǒng)丟失數(shù)據(jù)的概率,例如,當系統(tǒng)宕機時,保存數(shù)據(jù)的一致性。
三、Linux 2.6內(nèi)核的開發(fā)者
Linux 2.6內(nèi)核的開發(fā)是一個大型團隊的工作。Linus Torvalds是這個團隊的核心人員,他是Linux操作系統(tǒng)的創(chuàng)始人。除了他之外,還有一些其他的開發(fā)者,他們在為內(nèi)核中的各種問題提交補丁或其他貢獻。這些開發(fā)者經(jīng)常每天都會提交代碼和補丁,以確保內(nèi)核正常運行。
除了Linux社區(qū)內(nèi)的貢獻者,還有一些公司也參與了Linux 2.6內(nèi)核的開發(fā)。這些公司如Intel、RedHat、IBM、Oracle等,它們貢獻了許多優(yōu)秀的代碼并受到社區(qū)的認可。
在程序開發(fā)過程中,Linux內(nèi)核的大量代碼貢獻者必須不斷地維護代碼,保持代碼的高效性和穩(wěn)定性。該項目維護者通過ReviewBoard等工具來實現(xiàn)代碼審核,以確保代碼的質(zhì)量和可維護性。
四、
Linux 2.6內(nèi)核是Linux整個操作系統(tǒng)中最重要的部分,通過它,Linux系統(tǒng)可以與硬件設備進行溝通,用戶應用程序可以正確地運行和操作。本文對Linux 2.6內(nèi)核的架構(gòu)和模塊進行了深入分析,為讀者提供了一個更詳細和全面的了解。在未來的開發(fā)過程中,開發(fā)者和貢獻者們將繼續(xù)致力于改進內(nèi)核的性能和功能,使它成為一個強大、高效和安全的操作系統(tǒng)內(nèi)核。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
Linux系統(tǒng)移植的目錄
第1篇 系統(tǒng)移植基礎篇
第1章 linux內(nèi)核介紹 2
1.1 系統(tǒng)調(diào)用接口 2
1.1.1 linux系統(tǒng)調(diào)用 2
1.1.2 用戶編程接口 2
1.1.3 系統(tǒng)調(diào)用與服務例程的對應關(guān)系 3
1.1.4 系統(tǒng)調(diào)用過程 3
1.1.5 系統(tǒng)調(diào)用傳遞的參數(shù) 4
1.2 進程管理 4
1.2.1 進程 4
1.2.2 進程描述符 5
1.2.3 進程狀態(tài) 6
1.2.4 進程調(diào)度 6
1.2.5 進程地址空間 8
1.3 內(nèi)存管理 10
1.3.1 內(nèi)存管理技術(shù) 10
1.3.2 內(nèi)存區(qū)管理 12
1.3.3 內(nèi)核中獲取內(nèi)存的幾種方式 13
1.4 虛擬文件系統(tǒng) 14
1.4.1 虛擬文件系統(tǒng)作用 14
.1.4.2 文件系統(tǒng)的注冊 15
1.4.3 文件系統(tǒng)的安裝和卸載 15
1.5 設備驅(qū)動程序 17
1.5.1 字逗余符設備驅(qū)動程序 17
1.5.2 塊設備驅(qū)動程序 18
1.5.3 網(wǎng)絡設備驅(qū)動程序 21
1.5.4 內(nèi)存與i/o操作 22
1.6 小結(jié) 23
第2章 嵌入式linux開發(fā)環(huán)境搭建 24
2.1 虛擬機及l(fā)inux安裝 24
2.1.1 虛擬機的安裝 24
2.1.2 單獨分區(qū)安裝系統(tǒng) 30
2.1.3 虛擬機和主機通信設置 31
2.1.4 vmware tools工具安裝 33
2.1.5 虛擬機與主機共享文件 35
2.1.6 虛擬機與主機文件傳輸 36
2.2 交叉編譯工具 38
2.2.1 交叉編譯工具安裝 38
2.2.2 交中改叉編譯器測試 43
2.3 超級終端和minicom 44
2.3.1 超級終端軟件的安裝 44
2.3.2 minicom使用 45
2.3.3 securecrt使用 48
2.4 內(nèi)核、文件系統(tǒng)加載工具 48
2.4.1 燒寫bootloader 48
2.4.2 內(nèi)核和文件系統(tǒng)下載 52
2.4.3 應用程序和文件傳輸 54
2.5 在開發(fā)中使用網(wǎng)絡文件系統(tǒng)(nfs) 56
2.5.1 虛擬機設置 56
2.5.2 虛擬機的ip地址設置 56
2.5.3 驗證網(wǎng)絡連接 59
2.5.4 設置共享目錄 59
2.5.5 啟動nfs服務 60
2.5.6 修改共享配置后 61
2.5.7 掛載nfs 61
2.5.8 雙網(wǎng)卡掛載nfs 61
2.6 小結(jié) 62
第2篇 系統(tǒng)移植技術(shù)篇
第3章 bootloader移植 64
3.1 bootloader介紹 64
3.1.1 bootloader與嵌入式linux系統(tǒng)的關(guān)系 64
3.1.2 bootloader基本概念 64
3.1.3 bootloader啟動過程 66
3.2 bootloader之u-boot 67
3.2.1 u-boot優(yōu)點 67
3.2.2 u-boot的主要功能 68
3.2.3 u-boot目錄結(jié)構(gòu) 68
3.3 u-boot移植過程 69
3.3.1 環(huán)境配置 69
3.3.2 修改cpu/arm920t/start.s 70
3.3.4 具體平臺相關(guān)修改 79
3.3.5 其他部分修山培滾改 81
3.3.6 u-boot的編譯 84
3.4 bootloader之vivi 85
3.4.1 vivi簡介 85
3.4.2 vivi配置與編譯 85
3.4.3 代碼分析 88
3.5 vivi的運行 88
3.5.1 bootloader啟動的階段一 89
3.5.2 bootloader啟動的階段二 95
3.6 小結(jié) 95
第4章 linux內(nèi)核裁剪與移植 96
4.1 linux內(nèi)核結(jié)構(gòu) 96
4.1.1 內(nèi)核的主要組成部分 96
4.1.2 內(nèi)核源碼目錄介紹 97
4.2 內(nèi)核配置選項 99
4.2.1 一般選項 99
4.2.2 內(nèi)核模塊加載方式支持選項 100
4.2.3 系統(tǒng)調(diào)用、類型、特性、啟動相關(guān)選項 101
4.2.4 網(wǎng)絡協(xié)議支持相關(guān)選項 102
4.2.5 設備驅(qū)動支持相關(guān)選項 102
4.2.6 文件系統(tǒng)類型支持相關(guān)選項 103
4.2.7 安全相關(guān)選項 104
4.2.8 其他選項 104
4.3 內(nèi)核裁剪及編譯 105
4.3.1 安裝內(nèi)核源代碼 105
4.3.2 檢查編譯環(huán)境設置 105
4.3.3 配置內(nèi)核 106
4.3.4 編譯內(nèi)核 115
4.4 內(nèi)核映像文件移植到arm板 116
4.4.1 移植準備 116
4.4.2 燒寫系統(tǒng) 118
4.5 內(nèi)核升級 121
4.5.1 準備升級內(nèi)核文件 121
4.5.2 移植過程 122
4.6 小結(jié) 125
第5章 嵌入式文件系統(tǒng)制作 126
5.1 文件系統(tǒng)選擇 126
5.1.1 flash硬件方案比較 126
5.1.2 嵌入式文件系統(tǒng)的分層結(jié)構(gòu) 127
5.2 基于flash的文件系統(tǒng) 127
5.2.1 jffs文件系統(tǒng)(journalling flash filesystem) 128
5.2.2 yaffs文件系統(tǒng)(yet another flash file system) 130
5.2.3 cramfs文件系統(tǒng)(compressed rom file system) 133
5.2.4 romfs文件系統(tǒng)(rom file system) 134
5.3 基于ram的文件系統(tǒng) 135
5.4 文件系統(tǒng)的制作 135
5.4.1 制作ramdisk文件系統(tǒng) 136
5.4.2 制作yaffs2文件系統(tǒng) 144
5.4.3 制作jffs2文件系統(tǒng) 150
5.4.4 其他文件系統(tǒng)制作 152
5.5 小結(jié) 153
第3篇 系統(tǒng)移植與驅(qū)動篇
第6章 lcd驅(qū)動移植 156
6.1 認識lcd相關(guān)硬件原理 156
6.1.1 lcd概述 156
6.1.2 lcd控制器 157
6.1.3 lcd控制器方塊圖 157
6.1.4 lcd控制器操作 158
6.1.5 lcd控制寄存器 163
6.2 lcd參數(shù)設置 166
6.3 內(nèi)核lcd驅(qū)動機制 167
6.3.1 framebuffer概述 167
6.3.2 framebuffer 設備驅(qū)動的結(jié)構(gòu) 167
6.4 linux 2.6.25的lcd驅(qū)動源碼分析 171
6.4.1 lcd驅(qū)動開發(fā)的主要工作 171
6.4.2 s3c2410fb_init()函數(shù)分析 172
6.4.3 s3c2410fb_probe()函數(shù)分析 173
6.4.4 s3c2410fb_remove()函數(shù)分析 178
6.5 移植內(nèi)核中的lcd驅(qū)動 179
6.5.1 lcd硬件電路圖 179
6.5.2 修改lcd源碼 179
6.5.3 配置內(nèi)核 184
6.6 小結(jié) 187
第7章 觸摸屏驅(qū)動移植 188
7.1 觸摸屏概述 188
7.1.1 觸摸屏工作原理 188
7.1.2 觸摸屏的主要類型 188
7.2 s3c2440 adc接口使用 191
7.2.1 s3c2440觸摸屏接口概述 191
7.2.2 s3c2440觸摸屏接口操作 192
7.3 2.6內(nèi)核觸摸屏驅(qū)動源碼分析(s3c2410_ts.c源碼分析) 196
7.4 linux內(nèi)核輸入子系統(tǒng)介紹 201
7.4.1 input子系統(tǒng)概述 202
7.4.2 輸入設備結(jié)構(gòu)體 202
7.4.3 輸入鏈路的創(chuàng)建過程 205
7.4.4 使用input子系統(tǒng) 206
7.4.5 編寫輸入設備驅(qū)動需要完成的工作 208
7.5 觸摸屏驅(qū)動移植和內(nèi)核編譯 209
7.5.1 修改初始化源碼 209
7.5.2 修改硬件驅(qū)動源碼s3c2440_ts.c 211
7.5.3 修改kconfig和makefile 213
7.5.4 配置編譯內(nèi)核 214
7.5.5 觸摸屏測試程序設計 215
7.6 小結(jié) 216
第8章 u設備驅(qū)動移植 217
8.1 u協(xié)議 217
8.1.1 u協(xié)議的系統(tǒng)主要組成部分 217
8.1.2 總線物理拓撲結(jié)構(gòu) 219
8.1.3 u設備、配置、接口、端點 219
8.1.4 u設備狀態(tài) 222
8.1.5 u枚舉過程 223
8.1.6 u請求塊(urb) 226
8.2 u主機驅(qū)動 230
8.2.1 u主機驅(qū)動結(jié)構(gòu)和功能 230
8.2.2 主機控制器驅(qū)動(u_hcd) 231
8.2.3 ohci主機控制器驅(qū)動 233
8.2.4 s3c24xx ohci主機控制器驅(qū)動實例 234
8.3 u設備驅(qū)動 237
8.3.1 u骨架程序分析 237
8.3.2 u驅(qū)動移植的時鐘設置 241
8.4 u鼠標鍵盤驅(qū)動 242
8.4.1 u鼠標驅(qū)動代碼分析 242
8.4.2 u鍵盤驅(qū)動代碼分析 245
8.4.3 內(nèi)核中添加u鼠標鍵盤驅(qū)動 248
8.5 u盤驅(qū)動 249
8.5.1 內(nèi)核配置 249
8.5.2 移植和測試 250
8.6 小結(jié) 252
第9章 網(wǎng)卡驅(qū)動程序移植 253
9.1 以太網(wǎng)概述 253
9.1.1 以太網(wǎng)連接 253
9.1.2 以太網(wǎng)技術(shù)概述 254
9.1.3 以太網(wǎng)的幀結(jié)構(gòu) 256
9.2 網(wǎng)絡設備驅(qū)動程序體系結(jié)構(gòu) 258
9.2.1 嵌入式linux網(wǎng)絡驅(qū)動程序介紹 258
9.2.2 linux網(wǎng)絡設備驅(qū)動的體系結(jié)構(gòu) 259
9.2.3 網(wǎng)絡設備驅(qū)動程序編寫方法 259
9.2.4 網(wǎng)絡設備驅(qū)動程序應用實例 261
9.3 net_device 數(shù)據(jù)結(jié)構(gòu) 262
9.3.1 全局信息 262
9.3.2 硬件信息 263
9.3.3 接口信息 263
9.3.4 設備方法 266
9.3.5 公用成員 268
9.4 dm9000網(wǎng)卡概述 268
9.4.1 dm9000網(wǎng)卡總體介紹 269
9.4.2 dm9000網(wǎng)卡的特點 269
9.4.3 內(nèi)部寄存器 270
9.4.4 功能描述 274
9.5 dm9000網(wǎng)卡驅(qū)動程序移植 275
9.5.1 dm9000網(wǎng)卡連接 275
9.5.2 驅(qū)動分析——硬件的數(shù)據(jù)結(jié)構(gòu) 276
9.5.3 驅(qū)動分析——數(shù)據(jù)讀寫函數(shù) 277
9.5.4 驅(qū)動分析——重置網(wǎng)卡 277
9.5.5 驅(qū)動分析——初始化網(wǎng)卡 277
9.5.6 驅(qū)動分析——打開和關(guān)閉網(wǎng)卡 282
9.5.7 驅(qū)動分析——數(shù)據(jù)包的發(fā)送與接收 283
9.5.8 dm9000網(wǎng)卡驅(qū)動程序移植 285
9.6 小結(jié) 288
第10章 音頻設備驅(qū)動程序移植 289
10.1 音頻設備接口 289
10.1.1 pcm(脈沖編碼調(diào)制)接口 289
10.1.2 iis(inter-ic sound)接口 289
10.1.3 ac97(audio codec 1997)接口 289
10.1.4 linux音頻設備驅(qū)動框架 290
10.2 linux音頻設備驅(qū)動——oss驅(qū)動框架 291
10.2.1 oss驅(qū)動架構(gòu)硬件 291
10.2.2 oss驅(qū)動架構(gòu)代碼 291
10.2.3 oss初始化函數(shù)oss_init() 293
10.2.4 oss釋放函數(shù)oss_cleanup() 294
10.2.5 打開設備文件函數(shù)sound_open() 295
10.2.6 錄音函數(shù)sound_read() 296
10.2.7 播放函數(shù)sound_write() 297
10.2.8 控制函數(shù)sound_ioctl() 297
10.3 linux音頻設備驅(qū)動——alsa驅(qū)動框架 298
10.3.1 card和組件 299
10.3.2 pcm設備 303
10.3.3 控制接口 306
10.3.4 ac97 api音頻接口 308
10.4 音頻設備應用程序編寫 312
10.4.1 dsp接口編程 312
10.4.2 mixer接口編程 315
10.4.3 alsa應用程序編程 316
10.5 音頻設備驅(qū)動移植 318
10.5.1 添加uda1341結(jié)構(gòu)體 318
10.5.2 修改錄音通道 319
10.5.3 內(nèi)核中添加uda1341驅(qū)動支持 320
10.5.4 移植新內(nèi)核并進行測試 321
10.6 音頻播放程序madplay的移植 322
10.6.1 準備移植需要的源文件 322
10.6.2 交叉編譯 322
10.6.3 移植和測試 323
10.6.4 編譯中可能遇到的問題 324
10.7 小結(jié) 324
第11章 sd卡驅(qū)動移植 325
11.1 sd卡簡介 325
11.1.1 sd卡系統(tǒng)概念 325
11.1.2 sd卡寄存器 325
11.1.3 sd功能描述 326
11.2 sd卡驅(qū)動程序分析 329
11.2.1 host驅(qū)動部分 330
11.2.2 core驅(qū)動部分 333
11.2.3 card驅(qū)動部分 337
11.3 sd卡移植步驟 339
11.3.1 添加延時和中斷 339
11.3.2 配置內(nèi)核 340
11.3.3 燒寫新內(nèi)核 341
11.4 小結(jié) 342
第12章 nandflash驅(qū)動移植 343
12.1 nandflash介紹 343
12.1.1 nandflash命令介紹 343
12.1.2 nandflash控制器 344
12.2 nandflash驅(qū)動介紹 345
12.2.1 nand芯片結(jié)構(gòu) 345
12.2.2 nandflash驅(qū)動分析 346
12.3 nandflash驅(qū)動移植 351
12.3.1 內(nèi)核的修改 351
12.3.2 內(nèi)核的配置和編譯 353
12.4 小結(jié) 353
第4篇 系統(tǒng)移植高級篇
第13章 minigui與移植 356
13.1 minigui在上位機中的安裝 356
13.1.1 安裝需要的安裝文件 356
13.1.2 minigui的運行模式 357
13.1.3 編譯并安裝minigui 357
13.1.4 編譯安裝minigui需要的圖片支持庫 360
13.1.5 編譯minigui應用程序例子 360
13.2 eclipse開發(fā)minigui程序 361
13.2.1 linux下安裝eclipse介紹 361
13.2.2 使用eclipse編譯minigui程序 363
13.2.3 設置外部工具 367
13.2.4 運行程序 368
13.3 vc++6.0開發(fā)minigui程序 368
13.3.1 安裝windows開發(fā)庫 368
13.3.2 建立新工程 369
13.3.3 添加文件和設置工程 370
13.3.4 編譯和運行程序 371
13.3.5 minigui程序編程風格舉例 372
13.4 minigui的交叉編譯和移植 374
13.4.1 交叉編譯minigui 375
13.4.2 移植minigui程序 376
13.5 小結(jié) 378
第14章 qt開發(fā)與qtopia移植 379
14.1 qt安裝與編程 379
14.1.1 下載安裝qt 379
14.1.2 qt編程 380
14.1.3 使用qmake生成makefile 382
14.2 qtopia core在x86平臺上的安裝和應用 383
14.2.1 qtopia core安裝準備 383
14.2.2 編譯qtopia core 384
14.2.3 qtopia在x86平臺上的應用開發(fā) 385
14.3 qtopia core在嵌入式linux上的移植 388
14.3.1 qtopia core移植準備 389
14.3.2 交叉編譯qtopia core 389
14.3.3 編譯內(nèi)核 392
14.3.4 應用程序開發(fā) 392
14.3.5 應用程序移植 395
14.4 小結(jié) 395
第15章 嵌入式數(shù)據(jù)庫berkeley db移植 396
15.1 數(shù)據(jù)庫的基本概念 396
15.1.1 利用文檔和源代碼 396
15.1.2 創(chuàng)建環(huán)境句柄 396
15.1.3 創(chuàng)建數(shù)據(jù)庫句柄 397
15.1.4 打開數(shù)據(jù)庫 398
15.1.5 dbt結(jié)構(gòu) 398
15.1.6 存取數(shù)據(jù) 399
15.1.7 關(guān)閉數(shù)據(jù)庫 400
15.2 berkeley db數(shù)據(jù)庫安裝 400
15.2.1 安裝成c庫 400
15.2.2 安裝成c++庫 401
15.2.3 交叉編譯安erkeley db 401
15.3 使用berkeley db數(shù)據(jù)庫 403
15.3.1 代碼分析 403
15.3.2 編譯運行程序 406
15.4 移植berkeley db數(shù)據(jù)庫 407
15.4.1 數(shù)據(jù)庫設計 407
15.4.2 編寫應用程序 407
15.4.3 調(diào)試和交叉編譯應用程序 409
15.4.4 數(shù)據(jù)庫的移植和測試 410
15.5 小結(jié) 410
第16章 嵌入式數(shù)據(jù)庫sqlite移植 411
16.1 sqlite支持的sql語句 411
16.1.1 數(shù)據(jù)定義語句 411
16.1.2 數(shù)據(jù)操作語句 412
16.2 sqlite數(shù)據(jù)庫編譯、安裝和使用 412
16.2.1 安裝sqlite 413
16.2.2 利用sql語句操作sqlite數(shù)據(jù)庫 413
16.2.3 利用c接口訪問sqlite數(shù)據(jù)庫 414
16.3 移植sqlite 417
16.3.1 交叉編譯sqlite 417
16.3.2 交叉編譯應用程序 418
16.4 移植sqlite數(shù)據(jù)庫 418
16.4.1 文件移植 419
16.4.2 運行應用程序 419
16.4.3 測試sqlite3 419
16.5 小結(jié) 421
第17章 嵌入式web服務器boa移植 422
17.1 boa介紹 422
17.1.1 boa的功能 422
17.1.2 boa流程分析 423
17.1.3 boa配置信息 426
17.2 boa編譯和html頁面測試 428
17.2.1 編譯boa源代碼 428
17.2.2 設置boa配置信息 429
17.2.3 測試boa 429
17.3 cgi腳本測試 431
17.3.1 編寫測試代碼 431
17.3.2 編譯測試程序 431
17.3.3 測試cgi腳本 431
17.4 boa交叉編譯與移植 431
17.4.1 交叉編譯boa 432
17.4.2 準備測試程序 432
17.4.3 配置boa 432
17.4.4 測試 433
17.5 boa與sqlite結(jié)合 433
17.5.1 通過cgi程序訪問sqlite 434
17.5.2 編譯和測試 436
17.6 小結(jié) 437
第18章 嵌入式web服務器thttpd移植 438
18.1 thttpd介紹 438
18.1.1 web服務器比較 438
18.1.2 thttpd的特點 438
18.1.3 thttpd核心代碼分析 439
18.2 thttpd編譯和html頁面測試 442
18.2.1 配置文件介紹 442
18.2.2 thttpd編譯 443
18.2.3 運行和測試thttpd 443
18.3 cgi腳本測試 446
18.3.1 編寫測試代碼 446
18.3.2 編譯測試程序 447
18.3.3 測試cgi腳本 447
18.4 thttpd交叉編譯與移植 447
18.4.1 交叉編譯thttpd 447
18.4.2 交叉編譯cgi程序 448
18.4.3 移植thttpd 448
18.4.4 測試 449
18.5 thttpd與嵌入式數(shù)據(jù)庫結(jié)合 450
18.5.1 通過cgi程序訪問sqlite 450
18.5.2 編譯和測試 452
18.6 小結(jié) 453
第19章 jvm及其移植 454
19.1 jvm介紹 454
19.1.1 jvm原理 454
19.1.2 jvm支持的數(shù)據(jù)類型 455
19.1.3 jvm指令系統(tǒng) 456
19.1.4 jvm寄存器 456
19.1.5 jvm棧結(jié)構(gòu) 456
19.1.6 jvm碎片回收堆 459
19.1.7 jvm異常拋出和異常捕獲 459
19.2 類裝載 460
19.2.1 裝載類的結(jié)構(gòu)體 460
19.2.2 裝載類的操作 461
19.3 垃圾回收 463
19.3.1 mark-and-sweep回收算法 464
19.3.2 分代回收算法 465
19.3.3 增量收集 466
19.4 解析器 466
19.4.1 函數(shù)interpret() 466
19.4.2 函數(shù)fastinterpret() 467
19.4.3 函數(shù)slowinterpret () 469
19.5 java編程淺析 470
19.5.1 java程序命令 470
19.5.2 java構(gòu)造函數(shù) 470
19.5.3 java主函數(shù) 470
19.5.4 java程序編譯與運行 471
19.6 kvm執(zhí)行過程 471
19.6.1 kvm啟動過程 471
19.6.2 kvm用到的計數(shù)器清零 474
19.6.3 kvm初始化內(nèi)存管理 475
19.6.4 kvm中的哈希表初始化 476
19.6.5 kvm中的事件初始化 477
19.6.6 kvm中的資源釋放 477
19.7 pc機安裝jvm 477
19.7.1 jvm在windows上的安裝 478
19.7.2 jvm在linux上的安裝 479
19.8 kvm移植和測試 480
19.8.1 sdk安裝和環(huán)境變量設置 480
19.8.2 修改makefile和代碼 480
19.8.3 kvm編譯 481
19.8.4 測試 481
19.8.5 移植 483
19.9 小結(jié) 485
第20章 voip技術(shù)與linphone編譯 486
20.1 voip介紹 486
20.1.1 voip基本原理 486
20.1.2 voip的基本傳輸過程 487
20.1.3 voip的優(yōu)勢 487
20.1.4 voip的實現(xiàn)方式 487
20.1.5 voip的關(guān)鍵技術(shù) 488
20.2 osip協(xié)議概述 488
20.3 osip狀態(tài)機 489
20.3.1 ict(invite client (outgoing) transaction)狀態(tài)機 489
20.3.2 nict(non-invite client (outgoing) transaction)狀態(tài)機 498
20.3.3 ist(invite server (incoming) transaction)狀態(tài)機 499
20.3.4 nist(non-invite server (incoming) transaction)狀態(tài)機 500
20.4 osip解析器 500
20.4.1 初始化解析類型函數(shù)osip_body_init() 500
20.4.2 釋放函數(shù)osip_body_free() 501
20.4.3 字符串到body類型轉(zhuǎn)換函數(shù)osip_body_parse() 501
20.4.4 body類型到字符串類型轉(zhuǎn)換函數(shù)osip_body_to_str() 502
20.4.5 克隆函數(shù)osip_body_clone() 504
20.4.6 osip解析器分類 505
20.5 osip事務層 506
20.6 sip建立會話的過程 508
20.7 rtp協(xié)議 510
20.7.1 rtp基本概念 510
20.7.2 發(fā)送rtp 511
20.7.3 接收rtp 513
20.8 linphone編譯與測試 515
20.8.1 編譯linphone需要的軟件包 516
20.8.2 x86平臺上編譯和安裝 516
20.8.3 linphone測試 519
20.8.4 進一步的測試和開發(fā) 523
20.9 linphone交叉編譯 523
20.9.1 linphone的交叉編譯 523
20.9.2 linphone的測試 526
20.10 小結(jié) 527
linux的源代碼
有的,你安裝系統(tǒng)后源碼統(tǒng)一巖碼和放到了一個目錄里
/usr/src就是源碼模謹?shù)姆胖媚夸?/p>
比如說Linux kernel 2.6.18-92.e15的目錄就粗盯是
/usr/src/linux-2.6.18-92.e15
www.kernel.org
里有l(wèi)inux的內(nèi)核源代碼,人家編譯內(nèi)核都要去那里下載最新的內(nèi)核代碼。至于Linux下其他軟件的源代碼,你可以去相關(guān)的地址下載。更好巧汪使用google.com,英文的,不要用中文的百度或谷歌。還有很多人寫了關(guān)于閱讀linux源代碼的書,比如趙炯寫的一本分析早期內(nèi)核1.01的。
ps文件是postscript語言格式的文件,圓寬返在Linux下,可以用ps2pdf轉(zhuǎn)換成pdf文件,也可以用GhostView、橘饑GSview或者RoPS直接打開。
學習linux有很多種方法,我以前看過一遍文章,不過上面的書我都沒讀過,你自己看吧。
哦,趙炯博士的主頁:
他那本完全注釋linux源代碼:
呵呵,我不知道你下載的是什么,我上面這個地址可是pdf文件,你看后綴就知道了。
源代碼我只知道是編程用的,像學網(wǎng)絡賀老的就用不到了,具體在哪找我也說為太清楚禪野升脊胡,我本人就特好LINUX,我學的是網(wǎng)絡,至于方法,鳥哥的私房菜不錯,你可以去看看?。。?/p>
這里有很多源代碼瞎凱,只升森要你吵神畝能消化
linux2.6源碼分析的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于linux2.6源碼分析,深入解析Linux 2.6內(nèi)核源碼,Linux系統(tǒng)移植的目錄,linux的源代碼的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務領域的服務供應商,業(yè)務涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設,咨詢熱線:028-86922220
網(wǎng)站欄目:深入解析Linux2.6內(nèi)核源碼(linux2.6源碼分析)
文章來源:http://www.dlmjj.cn/article/dhcpdss.html


咨詢
建站咨詢
