linux内核编译详解.pdf

linux内核编译详解 。。。。。 Linux 编译内核详解 内核简介 内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和 网络系统,决定着系统的性能和稳定性。 Linux 的 一 个 重 要 的 特 点 就 是 其 源 代 码 的 公 开 性 , 所 有 的 内 核 源 程 序 都 可 以 在 /usr/src/linux 下找到,大部分应用软件也都是遵循 GPL 而设计的,你都可以获取相应的源程 序代码。 全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中, 由此引发的 一个明显的好处就是 Linux 修补漏洞的快速以及对最新软件技术的利用。 Linux 的内核则 而 是这些特点的最直接的代表。 想象一下, 拥有了内核的源程序对你来说意味着什么?首先, 我们可以了解系统是如何 工作的。通过通读源代码,我们就可以了解系统的工作原理,这在 Windows 下简直是天方 夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新 编译内核。在 Windows 下是什么情况呢?相信很多人都被越来越庞大的 Windows 整得莫名 其妙过。再次,我们可以对内核进行修改,以符合自己的需要。这意味着什么?没错,相当 于自己开发了一个操作系统, 但是大部分的工作已经做好了, 你所要做的就是要增加并实现 自己需要的功能。在 Windows 下,除非你是微软的核心技术人员,否则就不用痴心妄想了。 内核版本号 由于 Linux 的源程序是完全公开的, 任何人只要遵循 GPL, 就可以对内核加以修改并发 布给他人使用。Linux 的开发采用的是集市模型(bazaar,与 cathedral--教堂模型--对应) ,为 了确保这些无序的开发过程能够有序地进行, Linux 采用了双树系统。 一个树是稳定树 (stable ,另一个树是非稳定树(unstable tree)或者开发树(development tree) 。一些新特性、 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内核编译详解知识点总结 #### 一、内核概述 - **定义与作用**:内核作为操作系统的核心,负责管理系统中的进程、内存、设备驱动程序、文件和网络系统,直接影响系统的性能和稳定性。 - **源代码公开性**:Linux内核的最大特点是其源代码完全公开,所有内核源程序都可在`/usr/src/linux`目录下找到。大部分应用软件也是基于GPL(General Public License)许可证设计,用户可以自由获取源代码。 - **社区贡献**:全球各地的软件工程师可以将他们认为优秀的代码贡献给Linux内核项目,这一特性使得Linux能够快速修补漏洞并及时利用最新的软件技术。 #### 二、内核版本管理 - **双树系统**:为了保证有序的开发流程,Linux采用了“双树”系统,包括稳定树(stable tree)和开发树(development tree)。 - **稳定树**:包含经过充分测试和验证的代码,版本号中的`y`为偶数。 - **开发树**:用于引入新特性和实验性改进,版本号中的`y`比稳定树大1(奇数),用于测试新功能。 - **版本更新**:当开发树经过充分测试并发展成熟后,将会成为新的稳定树。内核版本号格式为`x.y.z`,其中`y`区分稳定与开发版本。截至描述文档撰写时,稳定版本为2.2.16,开发版本为2.3.99。 - **非正式版本**:有些网站提供如2.4.0-test9-pre7等非正式版本,这些版本并不作为正式发行版使用。 #### 三、为何重新编译内核 - **获取新特性**:随着内核版本的更新,新特性被引入,用户可以通过重新编译内核来使用这些新特性。 - **提升性能**:用户可以根据自身系统需求定制内核,去除不必要的功能,从而提高系统运行效率。 - **安全性**:去除未使用的功能可以减少潜在的安全风险。 - **兼容性**:新版本内核通常支持更多硬件设备,并改进了对现有硬件的支持。 #### 四、内核编译模式 - **编译到内核中**:将某个功能直接编译到内核中,在启动时即可使用,这种方式的优点是速度快、使用方便,但会使内核体积变大。 - **编译成模块**:将某个功能编译成模块,在需要时动态加载,这种方式可以保持内核体积较小,但需要手动加载。 #### 五、内核编译详解 - **新版本内核的获取**:官方发布地址为`http://www.kernel.org/`,提供完整内核版本和补丁两种形式。完整内核版本通常较大,如`linux-2.4.0-test8.tar.bz2`大小约为18M,适合网速较快的用户下载使用。 - **编译前准备**:在编译新版本内核之前,需要先备份当前系统,以防出现意外问题。同时,检查系统是否满足新内核的编译环境要求,例如编译工具链的版本等。 - **编译配置**:通过`make menuconfig`命令进入内核配置界面,根据系统需求选择合适的配置项。这一步骤至关重要,直接影响最终内核的性能和稳定性。 - **编译与安装**:完成配置后,执行`make`命令进行编译,完成后通过`make modules_install`和`make install`命令安装内核及其模块。修改启动配置文件(如`/boot/grub/grub.conf`),添加新内核为可选启动项。 #### 结论 通过上述介绍,可以看出Linux内核编译是一项复杂但非常有用的技能。它不仅可以帮助用户获得最新的内核功能,还能根据实际需求定制出更加高效、安全的操作系统。掌握内核编译的方法对于Linux爱好者和专业人员来说都是极为重要的。




























剩余8页未读,继续阅读

- zjd3582013-05-20从这里开始,学习 内核编程
- xiaozibuya2013-02-25还可以,写的比较详细
- vanmit2013-05-01很好,可以指导实践
- qinye_12014-04-17很好 谢谢!
- Lu_Qiu2012-12-15版本比较老

- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 操作系统原理习题集+答案.doc
- 基于无线传感网络的空气质量监测系统方案设计书.doc
- 关于西藏职业教育计算机教学探讨.docx
- 教学管理系统的设计与实现-软件技术.doc
- 软件工程及应用-练习题(2)(全答案版).doc
- SCADA-和GIS技术的供水管网调度系统.doc
- PLC在污水处理控制系统中的应用(58页).doc
- 第三章PLC单机控制系统设计与调试.doc
- 旅游电子商务在旅游业中的应用前景.doc
- NOSQL-DB-MongoDB技术原理七问.docx
- 计算机平面设计的创意和应用研究.docx
- 关于高职学生网络安全教育的思考与建议.docx
- 定量叶片泵(双作用叶片泵)设计(送张CAD图).doc
- 本科【计算机应用】入学考试模拟试题.doc
- 关于计算机安全技术在电子商务中的应用分析.docx
- 复杂美:为区块链提供底层开源技术.docx


