Linux是一种极其强大的操作系统,它的核心是内核。内核是系统框架中重要的一部分,直接调用硬件设备,管理外部设备和进程的运行。因此,Linux内核的学习与分析是Linux系统开发的关键部分。本文主要介绍Linux 2.6内核源码,并深入其核心结构和原理,以帮助读者理解Linux内核的内部机制。
创新互联建站长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为延边朝鲜族企业提供专业的成都网站制作、成都网站设计、外贸营销网站建设,延边朝鲜族网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
一、Linux 2.6内核的历史
Linux 2.6内核在2023年12月发布。它与Linux 2.4的区别在于,它具有更好的内存管理和网络性能,支持新的文件系统以及更好的硬件驱动程序。Linux 2.6内核是Linus Torvalds、Andrew Morton和其他Linux社区成员共同开发的,他们从3.0.0到3.7.1之间共同维护了这个版本的内核。
二、Linux 2.6内核架构
Linux 2.6内核由许多不同的模块组成,其中核心模块包括进程管理、文件系统、网络驱动和设备驱动。这些模块连接到内核,通过系统调用和其他核心功能进行通信。下面将分别介绍这几个模块的作用和实现方法。
1.进程管理
进程管理模块是Linux 2.6内核中最基本的模块之一。它的主要作用是确保应用程序能够运行,并与其他进程协调。在Linux内核中,每个进程都有一个唯一的ID,其中0号进程(init)是所有其他进程的父进程。当应用程序启动时,它将被分配一个新的进程ID,并在虚拟内存中分配资源,如堆栈空间和代码段。
在Linux内核中,进程管理器使用调度程序对进程进行排队,并决定哪个进程将适当地运行。当一个进程已经完成了它的任务并退出时,可以通过取回资源来回收内存和协议栈。不仅如此,Linux内核中的进程管理器还允许跨进程通信,通过IPC机制和套接字API等工具实现。
2.文件系统
在用户空间的文件操作被转化为系统调用,这些调用然后被处理为Linux内核中的文件系统I/O。Linux内核支持许多不同的文件系统,包括ext4、Fat16/32和NTFS等。每个文件系统有一个不同的挂载点,例如,根据文件系统的类型和选项,可以将USB存储设备挂载到“/mnt/u”目录中。
Linux内核中的文件系统模块还负责文件锁定和同步等重要任务。文件锁定使多个进程能够访问相同的文件,而不会产生竞争条件。同步是确保对文件的访问是原子性的,并提供了文件系统的一致性和可靠性保证。
3.网络驱动
网络驱动是定义网络接口和让Linux系统通过网络进行通信的工具。在Linux内核中,网络驱动为套接字API(Sockets API)提供底层支持,Sockets API是一种通用的网络编程接口,可以使应用程序可以从网络上读取或发送数据。
Linux内核中的网络驱动与许多不同的协议套件兼容,包括TCP/IP、IPX/SPX和AppleTalk。Linux还支持几种流行的网络协议,如SSH、FTP、HTTP和TP等,同时也支持防火墙和网络地址转换等功能,以保障网络安全性。
4.设备驱动
Linux系统中的设备驱动程序有很多种,包括磁盘驱动程序、USB驱动程序、键盘驱动程序和鼠标驱动程序等,它们连接到与计算机系统关联的设备。Linux 2.6内核支持各种设备驱动程序,并提供一个灵活的架构,以便任意的设备可以连接和使用。
通常情况下,设备驱动程序代码易于编写,但它们必须与Linux内核密切配合,确保数据的正确传输并提供良好的性能。设备驱动程序也负责减少系统丢失数据的概率,例如,当系统宕机时,保存数据的一致性。
三、Linux 2.6内核的开发者
Linux 2.6内核的开发是一个大型团队的工作。Linus Torvalds是这个团队的核心人员,他是Linux操作系统的创始人。除了他之外,还有一些其他的开发者,他们在为内核中的各种问题提交补丁或其他贡献。这些开发者经常每天都会提交代码和补丁,以确保内核正常运行。
除了Linux社区内的贡献者,还有一些公司也参与了Linux 2.6内核的开发。这些公司如Intel、RedHat、IBM、Oracle等,它们贡献了许多优秀的代码并受到社区的认可。
在程序开发过程中,Linux内核的大量代码贡献者必须不断地维护代码,保持代码的高效性和稳定性。该项目维护者通过ReviewBoard等工具来实现代码审核,以确保代码的质量和可维护性。
四、
Linux 2.6内核是Linux整个操作系统中最重要的部分,通过它,Linux系统可以与硬件设备进行沟通,用户应用程序可以正确地运行和操作。本文对Linux 2.6内核的架构和模块进行了深入分析,为读者提供了一个更详细和全面的了解。在未来的开发过程中,开发者和贡献者们将继续致力于改进内核的性能和功能,使它成为一个强大、高效和安全的操作系统内核。
成都网站建设公司-创新互联为您提供网站建设、网站制作、网页设计及定制高端网站建设服务!
第1篇 系统移植基础篇
第1章 linux内核介绍 2
1.1 系统调用接口 2
1.1.1 linux系统调用 2
1.1.2 用户编程接口 2
1.1.3 系统调用与服务例程的对应关系 3
1.1.4 系统调用过程 3
1.1.5 系统调用传递的参数 4
1.2 进程管理 4
1.2.1 进程 4
1.2.2 进程描述符 5
1.2.3 进程状态 6
1.2.4 进程调度 6
1.2.5 进程地址空间 8
1.3 内存管理 10
1.3.1 内存管理技术 10
1.3.2 内存区管理 12
1.3.3 内核中获取内存的几种方式 13
1.4 虚拟文件系统 14
1.4.1 虚拟文件系统作用 14
.1.4.2 文件系统的注册 15
1.4.3 文件系统的安装和卸载 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开发环境搭建 24
2.1 虚拟机及linux安装 24
2.1.1 虚拟机的安装 24
2.1.2 单独分区安装系统 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 内核、文件系统加载工具 48
2.4.1 烧写bootloader 48
2.4.2 内核和文件系统下载 52
2.4.3 应用程序和文件传输 54
2.5 在开发中使用网络文件系统(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篇 系统移植技术篇
第3章 bootloader移植 64
3.1 bootloader介绍 64
3.1.1 bootloader与嵌入式linux系统的关系 64
3.1.2 bootloader基本概念 64
3.1.3 bootloader启动过程 66
3.2 bootloader之u-boot 67
3.2.1 u-boot优点 67
3.2.2 u-boot的主要功能 68
3.2.3 u-boot目录结构 68
3.3 u-boot移植过程 69
3.3.1 环境配置 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 系统调用、类型、特性、启动相关选项 101
4.2.4 网络协议支持相关选项 102
4.2.5 设备驱动支持相关选项 102
4.2.6 文件系统类型支持相关选项 103
4.2.7 安全相关选项 104
4.2.8 其他选项 104
4.3 内核裁剪及编译 105
4.3.1 安装内核源代码 105
4.3.2 检查编译环境设置 105
4.3.3 配置内核 106
4.3.4 编译内核 115
4.4 内核映像文件移植到arm板 116
4.4.1 移植准备 116
4.4.2 烧写系统 118
4.5 内核升级 121
4.5.1 准备升级内核文件 121
4.5.2 移植过程 122
4.6 小结 125
第5章 嵌入式文件系统制作 126
5.1 文件系统选择 126
5.1.1 flash硬件方案比较 126
5.1.2 嵌入式文件系统的分层结构 127
5.2 基于flash的文件系统 127
5.2.1 jffs文件系统(journalling flash filesystem) 128
5.2.2 yaffs文件系统(yet another flash file system) 130
5.2.3 cramfs文件系统(compressed rom file system) 133
5.2.4 romfs文件系统(rom file system) 134
5.3 基于ram的文件系统 135
5.4 文件系统的制作 135
5.4.1 制作ramdisk文件系统 136
5.4.2 制作yaffs2文件系统 144
5.4.3 制作jffs2文件系统 150
5.4.4 其他文件系统制作 152
5.5 小结 153
第3篇 系统移植与驱动篇
第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参数设置 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驱动开发的主要工作 171
6.4.2 s3c2410fb_init()函数分析 172
6.4.3 s3c2410fb_probe()函数分析 173
6.4.4 s3c2410fb_remove()函数分析 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内核输入子系统介绍 201
7.4.1 input子系统概述 202
7.4.2 输入设备结构体 202
7.4.3 输入链路的创建过程 205
7.4.4 使用input子系统 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协议 217
8.1.1 u协议的系统主要组成部分 217
8.1.2 总线物理拓扑结构 219
8.1.3 u设备、配置、接口、端点 219
8.1.4 u设备状态 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 数据结构 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 驱动分析——硬件的数据结构 276
9.5.3 驱动分析——数据读写函数 277
9.5.4 驱动分析——重置网卡 277
9.5.5 驱动分析——初始化网卡 277
9.5.6 驱动分析——打开和关闭网卡 282
9.5.7 驱动分析——数据包的发送与接收 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初始化函数oss_init() 293
10.2.4 oss释放函数oss_cleanup() 294
10.2.5 打开设备文件函数sound_open() 295
10.2.6 录音函数sound_read() 296
10.2.7 播放函数sound_write() 297
10.2.8 控制函数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卡系统概念 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篇 系统移植高级篇
第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开发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开发minigui程序 368
13.3.1 安装windows开发库 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开发与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平台上的应用开发 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 应用程序开发 392
14.3.5 应用程序移植 395
14.4 小结 395
第15章 嵌入式数据库berkeley db移植 396
15.1 数据库的基本概念 396
15.1.1 利用文档和源代码 396
15.1.2 创建环境句柄 396
15.1.3 创建数据库句柄 397
15.1.4 打开数据库 398
15.1.5 dbt结构 398
15.1.6 存取数据 399
15.1.7 关闭数据库 400
15.2 berkeley db数据库安装 400
15.2.1 安装成c库 400
15.2.2 安装成c++库 401
15.2.3 交叉编译安erkeley db 401
15.3 使用berkeley db数据库 403
15.3.1 代码分析 403
15.3.2 编译运行程序 406
15.4 移植berkeley db数据库 407
15.4.1 数据库设计 407
15.4.2 编写应用程序 407
15.4.3 调试和交叉编译应用程序 409
15.4.4 数据库的移植和测试 410
15.5 小结 410
第16章 嵌入式数据库sqlite移植 411
16.1 sqlite支持的sql语句 411
16.1.1 数据定义语句 411
16.1.2 数据操作语句 412
16.2 sqlite数据库编译、安装和使用 412
16.2.1 安装sqlite 413
16.2.2 利用sql语句操作sqlite数据库 413
16.2.3 利用c接口访问sqlite数据库 414
16.3 移植sqlite 417
16.3.1 交叉编译sqlite 417
16.3.2 交叉编译应用程序 418
16.4 移植sqlite数据库 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与嵌入式数据库结合 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支持的数据类型 455
19.1.3 jvm指令系统 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 函数interpret() 466
19.4.2 函数fastinterpret() 467
19.4.3 函数slowinterpret () 469
19.5 java编程浅析 470
19.5.1 java程序命令 470
19.5.2 java构造函数 470
19.5.3 java主函数 470
19.5.4 java程序编译与运行 471
19.6 kvm执行过程 471
19.6.1 kvm启动过程 471
19.6.2 kvm用到的计数器清零 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安装和环境变量设置 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的优势 487
20.1.4 voip的实现方式 487
20.1.5 voip的关键技术 488
20.2 osip协议概述 488
20.3 osip状态机 489
20.3.1 ict(invite client (outgoing) transaction)状态机 489
20.3.2 nict(non-invite client (outgoing) transaction)状态机 498
20.3.3 ist(invite server (incoming) transaction)状态机 499
20.3.4 nist(non-invite server (incoming) transaction)状态机 500
20.4 osip解析器 500
20.4.1 初始化解析类型函数osip_body_init() 500
20.4.2 释放函数osip_body_free() 501
20.4.3 字符串到body类型转换函数osip_body_parse() 501
20.4.4 body类型到字符串类型转换函数osip_body_to_str() 502
20.4.5 克隆函数osip_body_clone() 504
20.4.6 osip解析器分类 505
20.5 osip事务层 506
20.6 sip建立会话的过程 508
20.7 rtp协议 510
20.7.1 rtp基本概念 510
20.7.2 发送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 进一步的测试和开发 523
20.9 linphone交叉编译 523
20.9.1 linphone的交叉编译 523
20.9.2 linphone的测试 526
20.10 小结 527
有的,你安装系统后源码统一岩码和放到了一个目录里
/usr/src就是源码模谨的放置目录
比如说Linux kernel 2.6.18-92.e15的目录就粗盯是
/usr/src/linux-2.6.18-92.e15
www.kernel.org
里有linux的内核源代码,人家编译内核都要去那里下载最新的内核代码。至于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系统移植的目录,linux的源代码的信息别忘了在本站进行查找喔。
创新互联-老牌IDC、云计算及IT信息化服务领域的服务供应商,业务涵盖IDC(互联网数据中心)服务、云计算服务、IT信息化、AI算力租赁平台(智算云),软件开发,网站建设,咨询热线:028-86922220
分享标题:深入解析Linux2.6内核源码(linux2.6源码分析)
浏览地址:http://www.shufengxianlan.com/qtweb/news10/142410.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联