LINUX KERNEL 配置编译中文指南(1)

发表于:2007-06-22来源:作者:点击数: 标签:
摘要:近几年, linux 大行其道,令不满 windows 蓝屏的使用者跃跃欲试,结果发现linux安装不及windows方便,界面不及windows友好,配置不及windows容易,软件不及windows丰富,以至浅尝辄止。 前言:谁是这篇文章的读者? 不习惯读英文资料的非 LINUX 高手

   
  摘要:近几年,linux大行其道,令不满windows蓝屏的使用者跃跃欲试,结果发现linux安装不及windows方便,界面不及windows友好,配置不及windows容易,软件不及windows丰富,以至浅尝辄止。
  前言:谁是这篇文章的读者?
  

    不习惯读英文资料的非LINUX高手
  
    声卡不响光驱不转连不上网等等,只要有问题就行
  
    开发嵌入式操作系统
  
    现在流行的ODL(only disk linux)中做内核部分,那些文章不介绍此点内容。我正在做,完工后整理资料。
  
    BY THE WAY ,想成为LINUX高手吗?你需要熟练掌握KERNEL COMPILE 、XCONFIGRATER 、LINUXCONFIG、 SAMBA四大利器,你随时可以找到后三者的大量相关资料,但内核编译就只好啃为数不多的英文了。
  
    笔者耗时3月,搜集并整理大量资料,在儿童节前连续工作18个小时后,给小企鹅送了这份礼物。
  
    笔者自信是目前为止KERNEL编译方面最完备的中文资料(将不断翻译补充),这可是毕业论文哪!
  
    为什么要放网上呢?首先找这方面资料太难了,文章对各位LINUX爱好者会有所帮助。其次,取之于网用之于网。
  
    欢迎使用这篇文章,请随便引用,这才符合LINUX自由软件的精神嘛,不过别忘了提提我的名字,就算为我的辛苦付了点稿酬。
  
    介于内核方面资料较少,欢迎在这篇文章中添加和修改内容,但不要过多删除,笔者列表要加入你的名字,让我们为把它变成数百页的资料而努力。OK,交个朋友吧, 我是玉玉安,email :ziboyuyuan@263.net
  
  目录
  
    序言
  
    第一章 内核编译的基础
  
    第一节内核简介
  
    第二节内核版本
  
    第三节编译原因
  
    第四节准备工作
  
    第二章 内核编译的流程
  
    第一节编译开始
  
    第二节配置内核 {核心内容}
  
    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
  
    第三节编译内核
  
    第四节启用内核
  
    附录:LILO分析
  
    第三章 内核编译的应用
  
    第一节嵌入式Linux技术
  
    第二节你的Linux有多大(及实践结果)
  
    结束语
  
    参考文献
  
  序言
  
    近几年,linux大行其道,令不满windows蓝屏的使用者跃跃欲试,结果发现linux安装不及windows方便,界面不及windows友好,配置不及windows容易,软件不及windows丰富,以至浅尝辄止。
  
    其实, Linux有windows无可比拟的两个优势:网络应用和嵌入式技术,这也正是未来最有前途的方向。同时此课题是从理论上设计具有嵌入式Linux操作系统器件的重要组成部分。
  
    如要涉足这两个方面,就必须对内核有深刻理解。当然,您可以从源代码入手,但前提是您拥有程序设计和操作系统等多方面专业知识,否则,就利用现成的Linux kernel从编译内核开始吧。不幸的是,内核编译方面的资料匮乏。以上两个原因使我写这篇论文成为必要。我可以自信得说,这是目前最详尽的内核编译方面的中文资料。
  
    值得一提的是,我在搜集翻译资料的过程中,获得了操作系统、程序设计、硬件设备、网络通信等各方各面的知识,极大的拓宽了视野,真正学有所获。
  
    感谢所有为Linux发展作出贡献的人,感谢所有Linux中文网站为促进Linux在中国的发展作出的不懈努力,他们是我搜集资料的来源。
  
    特别感谢我的指导老师——官伯然教授和高斌博士,正是他们的辛勤指导让我顺利完成毕业设计。
  
    西电科大 :李玉元 2001/6/1
  
    备注:#----------后跟小的选项
  
    ##---------后还有更细选项
  
    注意------上机实践结果
  
  第一章 内核编译的基础
  
  第一节 内核简介
  
    内核,是一个操作系统的核心,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 就好比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)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。确定是以″ root ″的身份签入,然后cd 到 /usr/src 。uname -r 这个指令将会显示版本。内核版本的更新可以访问。
  
  第三节 编译原因
  
    Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
  
    通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。
  
    为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:
  
    ---自己定制编译的内核运行更快(具有更少的代码)
  
    ---系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
  
    ---不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
  
    ---将某种功能编译为模块方

原文转自:http://www.ltesting.net