关闭

关闭

封号提示

内容

首页 《Linux内核精髓:精通Linux内核必会的75个绝技》迷你书.pdf

《Linux内核精髓:精通Linux内核必会的75个绝技》迷你书.pdf

《Linux内核精髓:精通Linux内核必会的75个绝技》迷你…

上传者: 用户3709188580 2013-09-20 评分 4.5 0 63 9 285 暂无简介 简介 举报

简介:本文档为《《Linux内核精髓:精通Linux内核必会的75个绝技》迷你书pdf》,可适用于IT/计算机领域,主题内容包含Linux内核精髓精通Linux内核必会的个绝技高桥浩和主编池田宗广、大岩尚宏、岛本裕志竹部晶雄、平松雅巳著杨婷译刘波审校Beijing•Cambr符等。

Linux内核精髓精通Linux内核必会的个绝技高桥浩和主编池田宗广、大岩尚宏、岛本裕志竹部晶雄、平松雅巳著杨婷译刘波审校Beijing•Cambridge•Farnham•Köln•Sebastopol•TokyoO’ReillyMedia,Inc授权机械工业出版社出版图书在版编目(CIP)数据Linux内核精髓:精通Linux内核必会的个绝技(日)高桥浩和等著杨婷译北京:机械工业出版社(O’Reilly精品图书系列)书名原文:LinuxKernelHacksISBNIL… II高… 杨… IIILinux操作系统 IVTP中国版本图书馆CIP数据核字()第号北京市版权局著作权合同登记图字:号byO’ReillyJapan,IncSimplifiedChineseEdition,jointlypublishedbyO’ReillyJapan,IncandChinaMachinePress,AuthorizedtranslationoftheJapaneseedition,O’ReillyJapan,Inc,theownerofallrightstopublishandsellthesameAllrightsreservedincludingtherightsofreproductioninwholeorinpartinanyform日文原版由O’ReillyJapan,Inc出版。简体中文版由机械工业出版社出版。日文原版的翻译得到O’ReillyJapan,Inc的授权。此简体中文版的出版和销售得到出版权和销售权的所有者O’ReillyJapan,Inc的许可。版权所有未得书面许可本书的任何部分和全部不得以任何形式重制。封底无防伪标均为盗版本书法律顾问北京市展达律师事务所书名Linux内核精髓:精通Linux内核必会的个绝技书号ISBN责任编辑谢晓芳出版发行机械工业出版社地址北京市西城区百万庄大街号(邮政编码 )印刷开本毫米毫米 开本 印张版次年月第版 年月第次印刷定价元(册)凡购本书如有缺页、倒页、脱页由本社发行部调换客服热线:()购书热线:()投稿热线:()读者信箱:hzjsjhzbookcomO’ReillyMedia,Inc介绍O’ReillyMedia通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。自年开始O’Reilly一直都是前沿发展的见证者和推动者。超级极客们正在开创着未来而我们关注真正重要的技术趋势通过放大那些“细微的信号”来刺激社会对新科技的应用。作为技术社区中活跃的参与者O’Reilly的发展充满了对创新的倡导、创造和发扬光大。O’Reilly为软件开发人员带来革命性的“动物书”创建第一个商业网站(GNN)组织了影响深远的开放源码峰会以至于开源软件运动以此命名创立了Make杂志从而成为DIY革命的主要先锋公司一如既往地通过多种形式缔结信息与人的纽带。O’Reilly的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖共同描绘出开创新产业的革命性思想。作为技术人士获取信息的选择O’Reilly现在还将先锋专家的知识传递给普通的计算机用户。无论是通过书籍出版在线服务或者面授课程每一项O’Reilly的产品都反映了公司不可动摇的理念信息是激发创新的力量。业界评论“O’ReillyRadar博客有口皆碑。”Wired“O’Reilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。”Business“O’ReillyConference是聚集关键思想领袖的绝对典范。”CRN“一本O’Reilly的书就代表一个有用、有前途、需要学习的主题。”IrishTimes“Tim是位特立独行的商人他不光放眼于最长远、最广阔的视野并且切实地按照YogiBerra的建议去做了:‘如果你在路上遇到岔路口走小路(岔路)。’回顾过去Tim似乎每一次都选择了小路而且有几次都是一闪即逝的机会尽管大路也不错。”LinuxJournal编者与作者介绍主编简介高桥浩和(HirokazuTakahashi)毕业于北海道大学电子工学系。从VAX全盛时代开始致力于各种UNIX系列操作系统的功能强化和内核调整以及大规模系统的实时操作系统的设计等。以ISP的服务器构建为契机开始正式研究Linux。作者简介池田宗广(MunehiroIKEDA)大学时代亲眼看到X的gcc生成比主流编译器还要快好几倍的代码因此开始确信免费软件开源软件的可能性。此后在历经咖啡店店员、生产技术人员、硬件工程师后终于开始从事Linux内核开发。这个行业最吸引人的就是能够跨公司甚至跨国界与世界最优秀的技术人员进行交流。现居住在美国爱好音乐演奏当过鼓手也当过主唱最近几年一直在弹贝斯。不管是作为技术人员还是贝斯手都喜欢做幕后工作只不过天生就不喜欢半途而废。大岩尚宏(NaohiroOoiwa)任职于MiracleLinux株式会社的软件工程师。大学时研究的是类似手机这样使用天线接收无线高频信号的模拟线路。从事Linux开发工作的时候开始深入研究软件。他是《DebugHacks》的作者本书是O’REILLYJAPAN的第二本Hacks系列图书。岛本裕志(HiroshiShimamoto)软件工程师。负责问题分析和调试。主要工作就是在出现故障时根据日志和核心转储找出问题所在。因此在工作中会经常用到二进制和CPU运行的知识。同时也在论坛中从事过一些关于x架构和调度程序的活动。目前关注虚拟化方面的活动。竹部晶雄(AkioTakebe)在Xen、KVM等与虚拟化相关的开源论坛参与开发活动。主要负责IA架构、RAS系列和PCIpassthrough的开发。在开源论坛认识了专门研究省电技术的工程师从而开始对省电方面产生兴趣。现在正使用RubyonRails开发云计算相关软件。平松雅巳(MasamiHiramatsu)Linux内核追踪的相关维护人员。主要工作是对perf和ftrace的动态事件进行维护。也参与了SystemTap的开发最近热衷于将系统SystemTap的用途从专门用于追踪扩展到游戏编程等。主要使用的是bash和vim但是因为bash不能用hjkl移动光标总的来说属于vim用户。喜欢使用Ubuntu和Fedora。现在的研究方向是ARMLinux、Btrfs等。撰稿人简介畑山大辅(HATAYAMADaisuke)crashgcore扩展模块的维护人员。对调试和故障分析感兴趣。最喜欢做的事情就是从元数据对系统进行研究。正在努力练习马拉松长跑争取在搞技术的同时锻炼出健康的体魄。近期目标是四小时内跑完马拉松。藤田朗(AkiraFujita)任职于NEC软件东北株式会社。担任软件工程师。大学毕业之后开始转向软件行业。喜欢Linux文件系统(extext)。喜欢defrag爱好五人足球。技术审校者简介刘波资深Linux内核开发工程师、应用开发工程师和嵌入式开发工程师现在重庆工商大学计算机科学与信息工程学院担任教师从事Linux程序开发和Oracle管理方面的教学工作在读博士。此外他还专注于大规模机器学习、数值分析与计算、最优化理论(凸优化)的研究。致谢本书的编著工作受到了多方的大力支持。计划还未确定时O’REILLYJAPAN就对此表示了很大的兴趣并给予我们参与写作的机会对此我们要向O’REILLYJAPAN的各位表示衷心的感谢。特别是受到担任编辑的赤池凉子女士的很多照顾。写作进度滞后时赤池女士依旧迅速地安排了后面的多次修改非常感谢她。对作为作者参与写作的池田宗广、平松雅巳先生以及非常爽快地同意作为撰稿人紧急参与写作的藤田朗、畑山大辅先生也要表示衷心的感谢。在各位的辛勤努力下本书才能够具有如此丰富和引人入胜的内容。对百忙之中抽出时间负责主编的高桥浩和先生也表示衷心的感激。对写作过程中的技术趋势以及所有章节都进行了详细的指导。也非常感谢三好和人、永野武先生为我们免费提供很多原稿。此外非常感谢《DebugHacks》的作者安部东洋为本书进行指导使得本书质量大幅提高。在从一开始就共同执笔的岛本裕志、竹部晶雄先生的努力下本书才得以顺利出版。感谢你们。最后借此机会向本书写作过程中为我们提供协助的各方人士表示衷心的感谢。大岩尚宏  主编致辞从年Linux内核诞生到现在已经过去了多年现在Linux也即将发布。在这多年间Linux内核已经进化成可以在便携式计算机到大型服务器的各种硬件上运行的操作系统。至今仍有众多开发人员在不断地对Linux内核进行开发。虽然网络上有很多关于Linux的信息但是关于熟练使用Linux内核或者参与Linux内核开发所需的信息并不多。因此我们决定从这些信息中筛选出Linux技术人员可能感兴趣的内容汇编成一本书。关于省电和虚拟化的介绍是非常符合当前市场需求的。高级内核的概要分析功能也是内核开发人员的必需工具。在有限的篇幅内能够介绍的内容并不是很多我们只是希望能够以此为契机激发更多人对Linux内核的兴趣并实际参与内核开发。高桥浩和  前言内核是操作系统的核心操作系统的基本功能都是由内核提供的。文件生成和数据包传输等也是通过内核的功能实现的。但这些都不是简单的任务。平时可能意识不到但这其中确实包含了很多先进技术。例如在文件系统方面配置文件时尽量减少磁盘扫描在网络方面由于路由表的入口数量庞大因此设计时尽量保证对系统整体影响较小的设计。在内存管理、进程管理方面也作出了很多努力。解读这种先进技术也是内核构建的魅力之一。然而最近的Linux所提供的并不只有基本功能。随着功能的不断发展现在已经出现了很多特定领域的便捷功能和独特功能。即使是内核黑客也很少有人能够完全掌握。本书从Linux内核的众多先进功能中选取了一些必备并且有趣的内容进行介绍同时也对内部的运行机制和结构进行了阐述。此外本书还介绍了熟练使用这些功能所需的工具、设置方法以及调整方法等。省电就是其中一项内容。除了使用方法以外本书还介绍了省电的理念、与硬件的关系等。此外还提到了当前广受关注的虚拟化、资源管理、标准文件系统中所采用的ext等已有功能和新功能。对于已有功能本书结合最新的源码介绍它的更改内容和新增功能。其中也包括文档中没有记载且必须对内核内部有一定理解才能得知的信息因此即使是比较了解这个功能的人也可能会有新的发现。另外本书还介绍了内核的相关工具其中gcore在重要的系统中就是非常可靠的工具。最新的Linux内核中安装了强大的追踪、概要分析功能具备很多方便实用的功能。这些功能不仅能够很方便地达到预期的目的而且对于分析内核功能也非常有用。甚至对于内核构建的高手也有一定帮助。全书列举了非常多的实例让读者更快地学会如何使用。对于想要熟练使用内核的读者来说本书也是非常好的参考书。本书还为想要了解Linux内核的读者以及读过本书后开始对Linux内核开发产生兴趣的读者介绍了获取内核源码的方法和内核开发方法等内核构建入门所需的信息。我们希望读者能够通过本书更加了解Linux的世界。在电脑刚刚诞生的时候有一段时期人们认为“如果想要提高编程水平就查看UNIX代码”。因为最快的方式就是参考天才所编写的最先进的代码并进行模仿。而在阅读Linux内核的代码时相信大家也会深有同感。Linux内核是开源软件无论是谁都可以参与开发。Linux内核的代码花费了大量的时间和精力来编写。各领域都由具有专业知识的维护人员进行长期的管理从而得到不断的改进。基于电子邮件的开发也在不断进行因此可以看到各种讨论并了解到当前代码的发展历程。每次看到Linux内核的代码都会让人感叹其中凝聚的智慧和努力也感受到当时的辛苦。希望读者能够从本书开始接触Linux这个不一般的世界诞生更多的内核高手。本书主要内容本书介绍的是Linux内核所提供的功能。不仅有比较基础的功能还有一些功能需要具有一定的知识才能使用。此外还介绍了使用功能时需要用到的信息和命令。除了内核以外本书还将介绍相关的应用程序。基本上是基于TUI进行说明的但也有一部分关于GUI的介绍。涉及的主要版本为Linux内核到写作时最新的Linux内核注。其中一部分还介绍了RedHatEnterpriseLinux(RHEL:基于Linux内核)的功能。示例代码已经在工作中经常使用的RHEL和任何用户都可以使用的Fedora、CentOS等中进行过严格测试。本书不涉及Linux内核的实际安装和以算法等为主体的内容。本书使用方法本书可以按顺序依次阅读另外由于每一节之间都是独立的因此也可以从感兴趣的章节开始阅读。第章介绍了内核的基础知识如果是第一次接触内核建议先学习第章。本书在介绍已有功能时也加入了一些新的信息。相信即使是经验丰富的人也可以在本书中有新的发现因此希望各位读者能够将本书从头到尾完整读一遍。本书还收录了一些作者珍藏的信息。详细内容请参见参考文献。本书约定等宽字体(sample)表示文件名、文件的内容、控制台的输出、变量名称、命令、命令选项、数据包名称、模块名称、驱动程序名称、键、内核配置、样本代码、其他代码等。等宽粗体(sample)表示应替换为用户输入的命令或文本等。注:写作本书时已经发布了rc版本。斜体(sample)表示根据环境决定的值等。小贴士:表示提示、建议、补充事项等。注意事项:表示注意、警告等。每一节标题左侧的温度计图标表示该节的相对难易度。意见与提问关于本书的内容我们尽最大的努力进行了验证和确认但可能还是会存在错误或不正确的地方或者是会引起误解或混淆的表述、输入错误等。如果在阅读本书的过程中发现了这些问题请告知我们以便进行改善。株式会社O’REILLY(奥莱利)JAPAN邮编东京都新宿区坂町番地Intelligent大厦层电话FAX电子邮件japanoreillycojp关于本书的技术性问题和意见请发送到下列邮件地址。japanoreillycojp本书的网站上可以找到示例代码注、勘误表和附加信息。http:wwworeillycojpbooks关于O’REILLY的其他信息请参考下列网站。http:wwworeillycojp(日语)http:wwworeillycom(英语)注:这些示例代码是笔者写作时使用的程序并不保证在各种环境下都可以运行。另外有时会不经过提示进行修改。示例代码不一定都能对应敬请谅解。目 录 | i目录编者与作者介绍主编致辞前言第章 内核入门HACK# 如何获取Linux内核HACK# 如何编译Linux内核HACK# 如何编写内核模块HACK# 如何使用GitHACK# 使用checkpatchpl检查补丁的格式HACK# 使用localmodconfig缩短编译时间第章 资源管理HACK# Cgroup、Namespace、Linux容器HACK# 调度策略HACK# RTGroupScheduling与RTThrottlingHACK# FairGroupSchedulingHACK#cpusetHACK# 使用MemoryCgroup限制内存使用量ii | 目 录HACK# 使用BlockIO控制器设置IO优先级HACK# 虚拟存储子系统的调整HACK# ramzswapHACK# OOMKiller的运行与结构第章 文件系统HACK# 如何使用extHACK# 向ext转换HACK# ext的调整HACK# 使用fio进行IO的基准测试HACK#FUSE第章 网络HACK# 如何控制网络的带宽HACK# TUNTAP设备HACK# 网桥设备HACK# VLANHACK# bonding驱动程序HACK# NetworkDropMonitor第章 虚拟化HACK# 如何使用XenHACK# 如何使用KVMHACK# 如何不使用DVD安装操作系统HACK# 更改虚拟CPU分配方法提高性能HACK# 如何使用EPT提高客户端操作系统的性能HACK# 使用IOMMU提高客户端操作系统运行速度HACK# 使用IOMMUSRIOV提高客户端操作系统速度HACK# SRIOV带宽控制HACK# 使用KSM节约内存HACK# 如何挂载客户端操作系统的磁盘目 录 | iiiHACK# 从客户端操作系统识别虚拟机环境HACK# 如何调试客户端操作系统第章 省电HACK# ACPIHACK# 使用ACPI的S状态HACK# 使用CPU省电(C、P状态)HACK# PCI设备的热插拔HACK# 虚拟环境下的省电HACK# 远程管理机器的电源HACK# USB的电力管理HACK# 显示器的省电HACK# 通过网络设备节省电能HACK# 关闭键盘的LED来省电HACK# PowerTOPHACK# 硬盘的省电第章 调试HACK# SysRq键HACK# 使用diskdump提取内核崩溃转储HACK# 使用Kdump提取内核崩溃转储HACK# 崩溃测试HACK# IPMI看门狗计时器HACK# NMI看门狗计时器HACK# softlockupHACK# crash命令HACK# 核心转储过滤器HACK# 生成用户模式进程的进程核心转储HACK# 使用lockdep查找系统的死锁HACK# 检测内核的内存泄漏iv | 目 录第章 概要分析与追踪HACK# 使用perftools的概要分析()HACK# 使用perftools的概要分析()HACK# 进行内核或进程的各种概要分析HACK# 追踪内核的函数调用HACK# ftrace的插件追踪器HACK# 记录内核的运行事件HACK# 使用tracecmd的内核追踪HACK# 将动态追踪事件添加到内核中HACK# 使用SystemTap进行内核追踪HACK# 使用SystemTap编写对话型程序HACK# SystemTap脚本的重复利用HACK# 运用SystemTap第章内核入门一提起内核包总会让人感觉似乎困难至极、如临深渊一般。但其基本的操作与其他开放源代码软件包并没有什么不一样都是首先获取源代码进行解读然后修改或者添加新功能对应的代码并编译、测试。本章将介绍这些内核包操作中最基础的知识以及Linux内核特有的方法。HACK#如何获取Linux内核本节介绍获取Linux内核源代码的各种方法。“获取内核”这个说法看似简单其实Linux内核有很多种衍生版本。要找出自己想要的源代码到底是哪一个必须首先理解各种衍生版本的意义。接下来将简单介绍Linux内核的开发模式并分析各种衍生版本在其中所处的地位然后介绍获取这些衍生版本的源代码的方法。内核的种类想要获取正确的Linux内核源代码首先必须了解Linux内核的开发模式。Linux内核是由多个开发者以分散型的模式进行开发的。这里出现的“分散型”是指多个衍生源码树同时存在。下面将简单介绍一些具有代表性的源码树及其地位。Linus树最具有代表性的源码树应属Linux内核的最初创始人LinusTorvalds所管理的Linus树。新版本Linux内核的发布就意味着Linus树的源代码被贴上了新发布版本的标签。到年为止Linux内核的版本号一直是用x这样的三个数字来表示的注。Linus树一直被认为是Linux内核源代码的“根源”因此一旦其发布了新版本其他的开发树就会将自己独特的开发成果移植到这个版本上在此基础上再次进行开发。Linus树由于其“根源”的地位而称为主线(mainline)。注:Linux的下一版本将是Linux。 | 第章一旦发布新版本Linus树就会立刻打开一个“合并窗口”(mergewindow)接受下一版本需要作出的改变。合并窗口将开启约两周时间。合并窗口关闭后就会发布下一版本的候选版即所谓的“rc内核”注。从rc内核发布后到下一版本发布的期间为测试期这一期间基本只接受关于bugfix的修改。rc版内核每隔约一周时间会依次推出rc、rc……当Linus判断其质量已经达到可以发布的水平时就会作为新版本发布。按照最近的实际情况来看基本上在rc~rc左右就会发布新版本也就是说Linux内核每隔~个月就会发布新版本。新版本发布后又会打开下一版本的合并窗口然后对rc版进行测试。Linux内核就是按照这样的周期来开发的。小贴士:Linus树的内核由于完全没有任何华而不实的东西因此称为“香草”(vanilla)内核或“库存”(stock)内核。linuxnext树这是一个为发布将来的版本而积累新代码并进行测试的源码树主要由StephenRothwell等人进行管理和运营。原则上要添加新功能或者进行安装配置时首先要在linuxnext树中进行测试在确认各自之间可以兼容之后再添加到Linus树内。stable树这是一个主要只针对过去发布的内核版本进行bug修改使其更加稳定的树由GregKroahHartman、ChrisWright进行维护管理。这个树的版本号是在Linus树的版本号后面加一位数字以xy这样的个数字来表示。针对某个Linus树版本的稳定(stable)版维护一般持续个月左右但也有持续更久的。开发树Linux内核可以说是各种功能的集合体。例如内存管理、文件系统、网络、各种设备驱动程序、CPU架构固有部分等。这些功能部分称为“子系统”各子系统分别在不同的源码树中进行开发。在开发、修改过程中也有一些不属于特定子系统的内容这些内容首先会被发送到AndrewMorton管理的mm树(准确地说是mmotm:mmonthemoment补丁包的缩写)。这样的源码树统称为“开发树”。在各开发树中开发出的源代码在经过linuxnext中的测试后再植入Linus树。开发树的数量多如繁星。如果哪天你因为想要开发某个功能而在手边的源代码上进行了修改这也可以说是一个“开发树”。Linus树、开发树等作为所有树的根源也称为“upstream”即“上游”。但这是广义上的叫法有时也仅指最上游的Linus树。注:rc是releasecandidate(发布候选)的缩写。内核入门 | 发布版内核最后要介绍的是发布版内核(distributionkernel)。应该有很多人使用的都是作为Linux发布版的一部分发布的内核。这些来源于发布版的内核几乎都是在Linus树或stable树内核的基础上进行发布版特有的扩展和bug修改而得到的。像这样添加了发布版特有的修改并作为发布版的一部分发布的内核就称为“发布版内核”。如何获取上游内核在了解Linux内核的各种衍生版本后我们首先尝试一下获取上游内核(upstreamkernel)。Linus树、linuxnext树以及绝大部分的开发树都可以从http:wwwkernelorg获取(见图)。Linux内核的开发都是在最新版上游内核的基础上进行的。其中最重要的就是作为所有树的根源的Linus树。下面介绍获取Linus树的两种方法。图 http:wwwkernelorg下载tar文件获取Linus树最简单的方法就是从kernelorg下载tar文件。内核所有发布版本的tar文件都能够从http:wwwkernelorgpublinuxkernelv获取。这里有很多种类的文件。例如表所示的是与对应的文件可以从中随意选择一个下载。无论下载的是哪个解压缩后或打补丁后的tar文件都是一样的。 | 第章表 Linux的各种源文件文 件 名内  容linuxtarbz完整的源码树。使用tarbzip压缩linuxtargz完整的源码树。使用targzip压缩patchbz升级到的补丁。使用bzip压缩patchgz升级到的补丁。使用gzip压缩除这些以外还有一些文件名后缀为“sign”的文件。这些文件都是用来确保各个文件兼容性的GnuPG签名。可以在验证下载是否正常时使用这些文件。小贴士:使用GnuPG来检测兼容性时可以执行下列命令。$gpgkeyserverwwwkeyspgpnetrecvkeysxDoFoE$gpgverify<签名文件><下载的文件>详细内容请参考http:wwwkernelorgsignaturehtml。rc版或者更新更为频繁的快照tar文件存放在子目录下。主要的子目录如表所示。表 http:wwwkernelorgpublinuxkernelv的子目录目 录 名内  容nextrc版升级到linuxnext的补丁testingrc版源码树的tar文件与补丁。目录下的文件仅针对下一发布版本。针对以前版本的文件存放在下一层的子目录下snapshots每天更新~次的快照文件补丁使用GitLinus树和开发树通过修复各种补丁而不断更新。在最新的树中进行开发是最基本的原则因此为了保持最新必须每天多次下载tar文件修复补丁。这项工作是非常花费精力的但是也不需要担心因为可以用Git来解决。Git是Linux内核所采用的SCM(SourceCodeManagementsystem)具备分散开发所需的多个功能。Git命令更为详细的使用方法将在Hack#中介绍这里就先了解一下怎样使用Git命令来获取最新的Linus树。要在适当的目录下执行下列命令但是在此之前必须注意的是因为这条命令会将包括修改记录在内的所有仓库数据复制到本地磁盘中所以必须要有GB以上的磁盘容量。在操作时请注意磁盘和网络的容量。$gitclonegit:gitkernelorgpubscmlinuxkernelgittorvaldslinux命令执行完成后应该就会生成一个标题为linux的目录。这就是包括修改记录在内的Linus树的最新、最完整的副本。为了让手头的源码树时刻保持最新需要在源码树的根目录(linux)下执行下列内核入门 | 命令。$gitpull如果没有对手头的源码树代码作出任何修改该命令会使得手头的源码树与Linus树的最新状态保持一致。当使用gitclone进行复制时git命令会记住复制源目录的URL因此执行gitpull时不需要指定URL。使用git命令还可以获取除Linus树以外的开发树的最新版本。在http:gitkernelorg上能看到放置在kernelorg下的其他开发树一览表。如果希望开发或者追踪各领域最新开发情况也可以从这里找到开发树的URL。如何获取发布版内核在多数情况下发布版内核的源代码都是按照各发布版所采用的方法进行打包的。因此要获取发布版内核的源代码只需要下载源代码包进行安装或解压缩就可以了。下面选取具有代表性的发布版Fedora和Ubuntu为例讲解如何获取这两种发布版内核源代码。这里选取的发布版的版本分别为Fedora和Ubuntu。Fedora在Fedora中内核源码是作为源码RPM(SRPM)提供的。使用yumunits包里所带的yumdownloader下载SRPM。此后要使用的yumbuilddep也是yumunits包中所带的所以如果事先没有安装首先请安装这个工具包。可以执行下列命令来下载内核的SRPM。$yumdownloadersourcekernel在笔者的环境下下载的是kernelfcsrcrpm。如前文所述发布版内核都带有自身特有的补丁。SRPM是将vanilla内核的源代码和补丁分开放置的补丁在创建过程中被分配给vanilla内核的源代码。所以要获取发布版内核的源代码就要完全执行RPM的创建过程但并不完全执行。虽然每个SRPM在创建RPM时都需要用到不同的源码包但只要执行下列命令就能够安装创建Linux内核所需的所有源码包。这条命令请在root权限下执行。#yumbuilddepkernelfcsrcrpm安装SRPM需要执行下列命令。安装SRPM就是指将所包含的文件解压缩。SRPM包含的文件将解压缩到在主目录下生成的rpmbuild的几个子目录下。小贴士:生成rpmbuild目录的位置是通过topdir这个rpm的宏变量来设置的。在以前的发布版中是在usrsrcredhat下的生成近来的版本是在usrlibrpmmacros下创建:topdir{getenv:HOME}rpmbuild直接在用户目录下生成。 | 第章$rpm–ikernelfcsrcrpmRPM包的创建是通过rpmbuild命令进行的。本次操作的目的是获取内核的源代码所以为了让命令结束前能给源代码修复补丁应在rpmbuild命令中加上bp选项。命令中的参数会赋予一个用来创建源码包的设置文件即SPEC文件。$cd~rpmbuildSPEC$rpmbuild–bpkernelspec这时就会生成一个标题为~rpmbuildBUILDkernelfclinuxx的目录在这个目录下会生成发布版内核的源代码。使用源

类似资料

编辑推荐

信仰认识论.pdf

【笛卡尔研究】笛卡尔论内在观念.pdf

净空法师:念佛法门四大类.doc

道氏理论 股票市场分析的基石.pdf

牛津哲学神学解读第一卷:三位一体、道成肉身、和谐.pdf

职业精品

精彩专题

上传我的资料

精选资料

热门资料排行换一换

  • 崖山之战:南宋军民的最后挣扎.p…

  • jor036_2_233大泽正昭…

  • [Solution Manual…

  • 当代社会学理论.pdf

  • 布迪厄的社会实践理论.pdf

  • 崩溃----社会如何选择成败兴亡…

  • 1979年中越战争交换战俘与中方…

  • Scott Soames - W…

  • 通信原理合订本2005-周炯盘-…

  • 资料评价:

    / 136
    所需积分:1 立即下载

    意见
    反馈

    返回
    顶部