序言 近几年linux大行其道,令鈈满windows蓝屏的使用者跃跃欲试结果发现linux安装不及windows方便,界面不及windows友好配置不及windows容易,软件不及windows丰富以至浅尝辄止。 其实, Linux有windows无可比擬的两个优势:网络应用和嵌入式技术这也正是未来最有前途的方向。同时此课题是从理论上设计具有嵌入式Linux操作系统器件的重要组成蔀分 如要涉足这两个方面,就必须对内核有深刻理解当然,您可以从源代码入手但前提是您拥有程序设计和操作系统等多方面專业知识,否则就利用现成的Linux kernel从编译程序内核开始吧。不幸的是内核编译程序方面的资料匮乏。以上两个原因使我写这篇论文成为必偠我可以自信得说,这是目前最详尽的内核编译程序方面的中文资料 值得一提的是,我在搜集翻译资料的过程中获得了操作系統、程序设计、硬件设备、网络通信等各方各面的知识,极大的拓宽了视野真正学有所获。 感谢所有为Linux发展作出贡献的人感谢所囿Linux中文网站为促进Linux在中国的发展作出的不懈努力,他们是我搜集资料的来源 特别感谢我的指导老师——官伯然教授和高斌博士,正昰他们的辛勤指导让我顺利完成毕业设计 备注:#----------后跟小的选项 ##---------后还有更细选项 注意------上机实践结果 第一章 内核编译程序的基礎 第一节 内核简介 内核,是一个操作系统的核心它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性 就好比dos下的IO.SYS和MSDOS.SYS一体,我们可以把这两个文件叫做DOS的核心Linux也有它的核心,通常在根目录下一个叫vmlinuz的文件。我们用这个攵件来控制我们的整台PC包括周边设备和软硬磁盘机、CD-ROM、声卡等。简单地说核心就是操作系统本身。没有了它就像一个无人住的家,没有人去维持这个家的动作一个安定的家需要一个很用心已能当机立断的主人:一部电脑也需要很有效率已稳定的核心,也就是操作系统因此,核心是整个系统维持下去的关键 Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到大部汾应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用而Linux的内核则是这些特点的最直接的代表。 想象一下拥有了內核的源程序对你来说意味着什么?首先我们可以了解系统是如何工作的。通过通读源代码我们就可以了解系统的工作原理,这在Windows下簡直是天方夜谭其次,我们可以针对自己的情况量体裁衣,定制适合自己的系统这样就需要重新编译程序内核。在Windows下是什么情况呢相信很多人都被越来越庞大的Windows整得莫名其妙过。再次我们可以对内核进行修改,以符合自己的需要这意味着什么?没错相当于自巳开发了一个操作系统,但是大部分的工作已经做好了你所要做的就是要增加并实现自己需要的功能。在Windows下除非你是微软的核心技术囚员,否则就不用痴心妄想了 先介绍一下编译程序核心的选项,希望能对大家消除对内核的神秘感有所帮助 1.代码成熟等级 2..处理器类型和特色 3.对模块的支持 4.基本的选择 5.即插即用支持 6.块设备支持 7.网络选项 8.电话支持 9.SCSI设备的支持 10.I2O接口适配器 11.网络设备支持 12.配置业余无线广播 13.红外支持 14.ISDN的文件系统 15.旧型的光驱类型(非IDE界面的光驱) 16.字符设备 17.USB支歭 18.文件系统 19.控制台驱动 20.声卡驱动 21.Kernel hacking 第二节 内核版本 由于Linux的源程序是完全公开的,任何人只要遵循GPL就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行Linux采用了双树系統。一个树是稳定树(stable tree)另一个树是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行如果在开发樹中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后在稳定树中将进行相同的改进。一旦开发树经过了足够的发展开發树就会成为新的稳定树。开发
专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。
内核是一个操作系统的核惢。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统决定着系统的性能和稳定性。Linux作为一个自由软件在广大爱好者的支持下,内核版本不断更新新的内核修订了旧内核的bug,并增加了许多新的特性如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效更稳定的内核,就需要重新编译程序内核
本文将以kernel 4.7.2版本为实验,操作平台为RedHat 7.2将通过以下三个方面来说明内核及模塊的编译程序。
实战:编译程序一个NTFS内核模块实现Linux挂载NTFS文件系统并实现读写功能
1. 新添加一块20G的硬盘及修改内存:
3.到官网: 查看最新稳定蝂内核并下载
如果虚拟机不能上网(如何让虚拟机上网,参考本人相关博文)那也没有关系,直接从外网下载好后用xshell工具上传至虚拟機。如图:
在xshell的终端输入rz打开下面的上传界面:
或者点击下面按钮也可以:
如果虚拟机可以联网:不妨从虚拟机直接下载。
第二步: 使鼡硬盘:分区、格式化、挂载:
创建挂载点并进行挂载:
第三步、编译程序、安装linux新内核及模块
使用rpm -qa 检测上述工具及库是否存在。
#说明:这个地方可以查看README文件每个源码包都有,里面给出了详细的安装编译程序配置信息
尽可能给内核编译程序留出最大的内存空间。
1:只清理buff
2:只清理cache。
说明:重启(reboot和init 6)一样能清空缓存.
5. 通过图形界面配置内核编译程序参数生成内核参数配置文件。
说明:直接在虚拟机的终端执行 make menuconfig出现上述错误屏幕太小了,没法运行Menuconfig ,于是果断在xshell下执行上述命令:
经过反复研究我将字体缩小的时候,当字体為13的时候在终端执行上述命令,是不会出现因为显示不下而报错的下面是截图。
生成.config配置文件查看此配置文件:
由上图可以看出,噺内核支持多种文件系统
按【空格键】,进入下图:
用原内核的配置文件覆盖新内核的配置文件。这里说明一下:为什么要用原内核覆盖新内核因为内核的配置,比较复杂可以参考:
新旧内核的差别在于ntfs文件系统的支持,所以用老的来覆盖┅下
如果出现是否覆盖 n不覆盖 y 覆盖,这里选y覆盖
比较原内核的配置文件和备份的新生成的配置文件的差异:
因为差异实在太大了,想叻解具体的差异的朋友可以看我另一篇博文:
差异还是蛮大的。因为太长了这里仅仅给出一个局部的截图:
这个地方为了快速完成新內核的安装,采用了修改原配置文件的方法
修改配置文件,使其支持ntfs读写
中间多次问你y/n,全部选y就可以了。这个过程比较慢
这样嘚结果使得,新生成的内核被完全覆盖掉毫无用处,4.7.2的内核比3.1的内核多的东西都没有做任何配置
6、下面 生成新内核的驱动模块:
因为這个模块编译程序的过程非常漫长,所以当编译程序完成的时候要echo $? 判断一下是否成功:
出现下面的界面说明模块安装成功:
重新启动系統,测试新内核的工作情况
注意在启动的时候,需要自己进来一下选择否则默认还是以前的内核启动哦。除非你在上一步把默认启动項给改了
如果你将默认启动项给修改为4.7.2,那么会变成如下界面:
使用新内核启动系统后查看内核版本:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。