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

創(chuàng)新互聯(lián)建站長期為千余家客戶提供的網站建設服務,團隊從業(yè)經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網生態(tài)環(huán)境。為延邊朝鮮族企業(yè)提供專業(yè)的成都網站制作、成都網站設計、外貿營銷網站建設,延邊朝鮮族網站改版等技術服務。擁有十多年豐富建站經驗和眾多成功案例,為您定制開發(fā)。
一、Linux 2.6內核的歷史
Linux 2.6內核在2023年12月發(fā)布。它與Linux 2.4的區(qū)別在于,它具有更好的內存管理和網絡性能,支持新的文件系統(tǒng)以及更好的硬件驅動程序。Linux 2.6內核是Linus Torvalds、Andrew Morton和其他Linux社區(qū)成員共同開發(fā)的,他們從3.0.0到3.7.1之間共同維護了這個版本的內核。
二、Linux 2.6內核架構
Linux 2.6內核由許多不同的模塊組成,其中核心模塊包括進程管理、文件系統(tǒng)、網絡驅動和設備驅動。這些模塊連接到內核,通過系統(tǒng)調用和其他核心功能進行通信。下面將分別介紹這幾個模塊的作用和實現(xiàn)方法。
1.進程管理
進程管理模塊是Linux 2.6內核中最基本的模塊之一。它的主要作用是確保應用程序能夠運行,并與其他進程協(xié)調。在Linux內核中,每個進程都有一個唯一的ID,其中0號進程(init)是所有其他進程的父進程。當應用程序啟動時,它將被分配一個新的進程ID,并在虛擬內存中分配資源,如堆棧空間和代碼段。
在Linux內核中,進程管理器使用調度程序對進程進行排隊,并決定哪個進程將適當?shù)剡\行。當一個進程已經完成了它的任務并退出時,可以通過取回資源來回收內存和協(xié)議棧。不僅如此,Linux內核中的進程管理器還允許跨進程通信,通過IPC機制和套接字API等工具實現(xiàn)。
2.文件系統(tǒng)
在用戶空間的文件操作被轉化為系統(tǒng)調用,這些調用然后被處理為Linux內核中的文件系統(tǒng)I/O。Linux內核支持許多不同的文件系統(tǒng),包括ext4、Fat16/32和NTFS等。每個文件系統(tǒng)有一個不同的掛載點,例如,根據(jù)文件系統(tǒng)的類型和選項,可以將USB存儲設備掛載到“/mnt/u”目錄中。
Linux內核中的文件系統(tǒng)模塊還負責文件鎖定和同步等重要任務。文件鎖定使多個進程能夠訪問相同的文件,而不會產生競爭條件。同步是確保對文件的訪問是原子性的,并提供了文件系統(tǒng)的一致性和可靠性保證。
3.網絡驅動
網絡驅動是定義網絡接口和讓Linux系統(tǒng)通過網絡進行通信的工具。在Linux內核中,網絡驅動為套接字API(Sockets API)提供底層支持,Sockets API是一種通用的網絡編程接口,可以使應用程序可以從網絡上讀取或發(fā)送數(shù)據(jù)。
Linux內核中的網絡驅動與許多不同的協(xié)議套件兼容,包括TCP/IP、IPX/SPX和AppleTalk。Linux還支持幾種流行的網絡協(xié)議,如SSH、FTP、HTTP和TP等,同時也支持防火墻和網絡地址轉換等功能,以保障網絡安全性。
4.設備驅動
Linux系統(tǒng)中的設備驅動程序有很多種,包括磁盤驅動程序、USB驅動程序、鍵盤驅動程序和鼠標驅動程序等,它們連接到與計算機系統(tǒng)關聯(lián)的設備。Linux 2.6內核支持各種設備驅動程序,并提供一個靈活的架構,以便任意的設備可以連接和使用。
通常情況下,設備驅動程序代碼易于編寫,但它們必須與Linux內核密切配合,確保數(shù)據(jù)的正確傳輸并提供良好的性能。設備驅動程序也負責減少系統(tǒng)丟失數(shù)據(jù)的概率,例如,當系統(tǒng)宕機時,保存數(shù)據(jù)的一致性。
三、Linux 2.6內核的開發(fā)者
Linux 2.6內核的開發(fā)是一個大型團隊的工作。Linus Torvalds是這個團隊的核心人員,他是Linux操作系統(tǒng)的創(chuàng)始人。除了他之外,還有一些其他的開發(fā)者,他們在為內核中的各種問題提交補丁或其他貢獻。這些開發(fā)者經常每天都會提交代碼和補丁,以確保內核正常運行。
除了Linux社區(qū)內的貢獻者,還有一些公司也參與了Linux 2.6內核的開發(fā)。這些公司如Intel、RedHat、IBM、Oracle等,它們貢獻了許多優(yōu)秀的代碼并受到社區(qū)的認可。
在程序開發(fā)過程中,Linux內核的大量代碼貢獻者必須不斷地維護代碼,保持代碼的高效性和穩(wěn)定性。該項目維護者通過ReviewBoard等工具來實現(xiàn)代碼審核,以確保代碼的質量和可維護性。
四、
Linux 2.6內核是Linux整個操作系統(tǒng)中最重要的部分,通過它,Linux系統(tǒng)可以與硬件設備進行溝通,用戶應用程序可以正確地運行和操作。本文對Linux 2.6內核的架構和模塊進行了深入分析,為讀者提供了一個更詳細和全面的了解。在未來的開發(fā)過程中,開發(fā)者和貢獻者們將繼續(xù)致力于改進內核的性能和功能,使它成為一個強大、高效和安全的操作系統(tǒng)內核。
成都網站建設公司-創(chuàng)新互聯(lián)為您提供網站建設、網站制作、網頁設計及定制高端網站建設服務!
Linux系統(tǒng)移植的目錄
第1篇 系統(tǒng)移植基礎篇
第1章 linux內核介紹 2
1.1 系統(tǒng)調用接口 2
1.1.1 linux系統(tǒng)調用 2
1.1.2 用戶編程接口 2
1.1.3 系統(tǒng)調用與服務例程的對應關系 3
1.1.4 系統(tǒng)調用過程 3
1.1.5 系統(tǒng)調用傳遞的參數(shù) 4
1.2 進程管理 4
1.2.1 進程 4
1.2.2 進程描述符 5
1.2.3 進程狀態(tài) 6
1.2.4 進程調度 6
1.2.5 進程地址空間 8
1.3 內存管理 10
1.3.1 內存管理技術 10
1.3.2 內存區(qū)管理 12
1.3.3 內核中獲取內存的幾種方式 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 設備驅動程序 17
1.5.1 字逗余符設備驅動程序 17
1.5.2 塊設備驅動程序 18
1.5.3 網絡設備驅動程序 21
1.5.4 內存與i/o操作 22
1.6 小結 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 內核、文件系統(tǒng)加載工具 48
2.4.1 燒寫bootloader 48
2.4.2 內核和文件系統(tǒng)下載 52
2.4.3 應用程序和文件傳輸 54
2.5 在開發(fā)中使用網絡文件系統(tǒng)(nfs) 56
2.5.1 虛擬機設置 56
2.5.2 虛擬機的ip地址設置 56
2.5.3 驗證網絡連接 59
2.5.4 設置共享目錄 59
2.5.5 啟動nfs服務 60
2.5.6 修改共享配置后 61
2.5.7 掛載nfs 61
2.5.8 雙網卡掛載nfs 61
2.6 小結 62
第2篇 系統(tǒng)移植技術篇
第3章 bootloader移植 64
3.1 bootloader介紹 64
3.1.1 bootloader與嵌入式linux系統(tǒng)的關系 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目錄結構 68
3.3 u-boot移植過程 69
3.3.1 環(huán)境配置 69
3.3.2 修改cpu/arm920t/start.s 70
3.3.4 具體平臺相關修改 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 小結 95
第4章 linux內核裁剪與移植 96
4.1 linux內核結構 96
4.1.1 內核的主要組成部分 96
4.1.2 內核源碼目錄介紹 97
4.2 內核配置選項 99
4.2.1 一般選項 99
4.2.2 內核模塊加載方式支持選項 100
4.2.3 系統(tǒng)調用、類型、特性、啟動相關選項 101
4.2.4 網絡協(xié)議支持相關選項 102
4.2.5 設備驅動支持相關選項 102
4.2.6 文件系統(tǒng)類型支持相關選項 103
4.2.7 安全相關選項 104
4.2.8 其他選項 104
4.3 內核裁剪及編譯 105
4.3.1 安裝內核源代碼 105
4.3.2 檢查編譯環(huán)境設置 105
4.3.3 配置內核 106
4.3.4 編譯內核 115
4.4 內核映像文件移植到arm板 116
4.4.1 移植準備 116
4.4.2 燒寫系統(tǒng) 118
4.5 內核升級 121
4.5.1 準備升級內核文件 121
4.5.2 移植過程 122
4.6 小結 125
第5章 嵌入式文件系統(tǒng)制作 126
5.1 文件系統(tǒng)選擇 126
5.1.1 flash硬件方案比較 126
5.1.2 嵌入式文件系統(tǒng)的分層結構 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 小結 153
第3篇 系統(tǒng)移植與驅動篇
第6章 lcd驅動移植 156
6.1 認識lcd相關硬件原理 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 內核lcd驅動機制 167
6.3.1 framebuffer概述 167
6.3.2 framebuffer 設備驅動的結構 167
6.4 linux 2.6.25的lcd驅動源碼分析 171
6.4.1 lcd驅動開發(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 移植內核中的lcd驅動 179
6.5.1 lcd硬件電路圖 179
6.5.2 修改lcd源碼 179
6.5.3 配置內核 184
6.6 小結 187
第7章 觸摸屏驅動移植 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內核觸摸屏驅動源碼分析(s3c2410_ts.c源碼分析) 196
7.4 linux內核輸入子系統(tǒng)介紹 201
7.4.1 input子系統(tǒng)概述 202
7.4.2 輸入設備結構體 202
7.4.3 輸入鏈路的創(chuàng)建過程 205
7.4.4 使用input子系統(tǒng) 206
7.4.5 編寫輸入設備驅動需要完成的工作 208
7.5 觸摸屏驅動移植和內核編譯 209
7.5.1 修改初始化源碼 209
7.5.2 修改硬件驅動源碼s3c2440_ts.c 211
7.5.3 修改kconfig和makefile 213
7.5.4 配置編譯內核 214
7.5.5 觸摸屏測試程序設計 215
7.6 小結 216
第8章 u設備驅動移植 217
8.1 u協(xié)議 217
8.1.1 u協(xié)議的系統(tǒng)主要組成部分 217
8.1.2 總線物理拓撲結構 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主機驅動 230
8.2.1 u主機驅動結構和功能 230
8.2.2 主機控制器驅動(u_hcd) 231
8.2.3 ohci主機控制器驅動 233
8.2.4 s3c24xx ohci主機控制器驅動實例 234
8.3 u設備驅動 237
8.3.1 u骨架程序分析 237
8.3.2 u驅動移植的時鐘設置 241
8.4 u鼠標鍵盤驅動 242
8.4.1 u鼠標驅動代碼分析 242
8.4.2 u鍵盤驅動代碼分析 245
8.4.3 內核中添加u鼠標鍵盤驅動 248
8.5 u盤驅動 249
8.5.1 內核配置 249
8.5.2 移植和測試 250
8.6 小結 252
第9章 網卡驅動程序移植 253
9.1 以太網概述 253
9.1.1 以太網連接 253
9.1.2 以太網技術概述 254
9.1.3 以太網的幀結構 256
9.2 網絡設備驅動程序體系結構 258
9.2.1 嵌入式linux網絡驅動程序介紹 258
9.2.2 linux網絡設備驅動的體系結構 259
9.2.3 網絡設備驅動程序編寫方法 259
9.2.4 網絡設備驅動程序應用實例 261
9.3 net_device 數(shù)據(jù)結構 262
9.3.1 全局信息 262
9.3.2 硬件信息 263
9.3.3 接口信息 263
9.3.4 設備方法 266
9.3.5 公用成員 268
9.4 dm9000網卡概述 268
9.4.1 dm9000網卡總體介紹 269
9.4.2 dm9000網卡的特點 269
9.4.3 內部寄存器 270
9.4.4 功能描述 274
9.5 dm9000網卡驅動程序移植 275
9.5.1 dm9000網卡連接 275
9.5.2 驅動分析——硬件的數(shù)據(jù)結構 276
9.5.3 驅動分析——數(shù)據(jù)讀寫函數(shù) 277
9.5.4 驅動分析——重置網卡 277
9.5.5 驅動分析——初始化網卡 277
9.5.6 驅動分析——打開和關閉網卡 282
9.5.7 驅動分析——數(shù)據(jù)包的發(fā)送與接收 283
9.5.8 dm9000網卡驅動程序移植 285
9.6 小結 288
第10章 音頻設備驅動程序移植 289
10.1 音頻設備接口 289
10.1.1 pcm(脈沖編碼調制)接口 289
10.1.2 iis(inter-ic sound)接口 289
10.1.3 ac97(audio codec 1997)接口 289
10.1.4 linux音頻設備驅動框架 290
10.2 linux音頻設備驅動——oss驅動框架 291
10.2.1 oss驅動架構硬件 291
10.2.2 oss驅動架構代碼 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音頻設備驅動——alsa驅動框架 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 音頻設備驅動移植 318
10.5.1 添加uda1341結構體 318
10.5.2 修改錄音通道 319
10.5.3 內核中添加uda1341驅動支持 320
10.5.4 移植新內核并進行測試 321
10.6 音頻播放程序madplay的移植 322
10.6.1 準備移植需要的源文件 322
10.6.2 交叉編譯 322
10.6.3 移植和測試 323
10.6.4 編譯中可能遇到的問題 324
10.7 小結 324
第11章 sd卡驅動移植 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卡驅動程序分析 329
11.2.1 host驅動部分 330
11.2.2 core驅動部分 333
11.2.3 card驅動部分 337
11.3 sd卡移植步驟 339
11.3.1 添加延時和中斷 339
11.3.2 配置內核 340
11.3.3 燒寫新內核 341
11.4 小結 342
第12章 nandflash驅動移植 343
12.1 nandflash介紹 343
12.1.1 nandflash命令介紹 343
12.1.2 nandflash控制器 344
12.2 nandflash驅動介紹 345
12.2.1 nand芯片結構 345
12.2.2 nandflash驅動分析 346
12.3 nandflash驅動移植 351
12.3.1 內核的修改 351
12.3.2 內核的配置和編譯 353
12.4 小結 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 小結 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 編譯內核 392
14.3.4 應用程序開發(fā) 392
14.3.5 應用程序移植 395
14.4 小結 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結構 398
15.1.6 存取數(shù)據(jù) 399
15.1.7 關閉數(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 調試和交叉編譯應用程序 409
15.4.4 數(shù)據(jù)庫的移植和測試 410
15.5 小結 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 小結 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結合 433
17.5.1 通過cgi程序訪問sqlite 434
17.5.2 編譯和測試 436
17.6 小結 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ù)庫結合 450
18.5.1 通過cgi程序訪問sqlite 450
18.5.2 編譯和測試 452
18.6 小結 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棧結構 456
19.1.6 jvm碎片回收堆 459
19.1.7 jvm異常拋出和異常捕獲 459
19.2 類裝載 460
19.2.1 裝載類的結構體 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構造函數(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初始化內存管理 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 小結 485
第20章 voip技術與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的關鍵技術 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類型轉換函數(shù)osip_body_parse() 501
20.4.4 body類型到字符串類型轉換函數(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 小結 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的內核源代碼,人家編譯內核都要去那里下載最新的內核代碼。至于Linux下其他軟件的源代碼,你可以去相關的地址下載。更好巧汪使用google.com,英文的,不要用中文的百度或谷歌。還有很多人寫了關于閱讀linux源代碼的書,比如趙炯寫的一本分析早期內核1.01的。
ps文件是postscript語言格式的文件,圓寬返在Linux下,可以用ps2pdf轉換成pdf文件,也可以用GhostView、橘饑GSview或者RoPS直接打開。
學習linux有很多種方法,我以前看過一遍文章,不過上面的書我都沒讀過,你自己看吧。
哦,趙炯博士的主頁:
他那本完全注釋linux源代碼:
呵呵,我不知道你下載的是什么,我上面這個地址可是pdf文件,你看后綴就知道了。
源代碼我只知道是編程用的,像學網絡賀老的就用不到了,具體在哪找我也說為太清楚禪野升脊胡,我本人就特好LINUX,我學的是網絡,至于方法,鳥哥的私房菜不錯,你可以去看看?。?!
這里有很多源代碼瞎凱,只升森要你吵神畝能消化
linux2.6源碼分析的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于linux2.6源碼分析,深入解析Linux 2.6內核源碼,Linux系統(tǒng)移植的目錄,linux的源代碼的信息別忘了在本站進行查找喔。
創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務領域的服務供應商,業(yè)務涵蓋IDC(互聯(lián)網數(shù)據(jù)中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網站建設,咨詢熱線:028-86922220
分享題目:深入解析Linux2.6內核源碼(linux2.6源碼分析)
網站路徑:http://m.fisionsoft.com.cn/article/dhcpdss.html


咨詢
建站咨詢
