《部分(搞高篇)讲稿-内核内核编译.ppt》由会员分享,可在线阅读,更多相关《部分(搞高篇)讲稿-内核内核编译.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、二二.配置编译配置编译LinuxLinux内核内核1.1.LinuxLinux内核编译内核编译 2.2.LinuxLinux内核配置系统内核配置系统1.Linux1.Linux内核编译内核编译1.1 Linux内核简介1.2 Linux内核版本号1.3 为什么重新编译内核1.4 内核编译模式1.5 内核源码结构1.6 内核裁剪与编译 1.7 内核配置选项介绍内核内核:是一个操作系统的核心。是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性文件和网络系统,决定着系统的性能和稳定性。内核简述内核简述:(
2、让大家宏观的认识一下让大家宏观的认识一下,具体可参看具体可参看LinuxLinux操作系统相关教材操作系统相关教材)Linux 内核由内核由5个主要的子系统组成:个主要的子系统组成:进程调度(进程调度(SCHEDSCHED)内存管理(内存管理(MMMM)虚拟文件系统(虚拟文件系统(VFSVFS)网络接口(网络接口(NETNET)进程间通信(进程间通信(IPCIPC)1.1 Linux1.1 Linux内核简介内核简介Linux 内核子系统的抽象结构进程调度:它控制着进程对CPU的访问。Linux 使用比较简单的基于优先级的进程调度算法选择新的进程。内存管理:内存管理允许多个进程安全地共享主内存
3、区域。Linux 的内存管理支持虚拟内存,即在计算机中运行的程序,其代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只将当前使用的程序块保存在内存中,其余的程序块则保留在磁盘上。必要时,操作系统负责在磁盘与内存之间交换程序块。虚拟文件系统:它可以隐藏各种硬件的具体细节,为所有设备提供统一的接口,VFS 还支持多达数十种不同的文件系统,这也是Linux 较有特色的一部分。网络接口:提供对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络设备驱动程序两部分。网络协议部分负责实现每一种可能的网络传输协议;网络设备驱动程序负责与硬件设备进行通信;进程间通信:它的作用是支持进程间
4、各种通信机制。linuxlinux的一个重要的特点的一个重要的特点:源代码的公开性源代码的公开性1.所有的内核源程序都可以在/usr/src/linux下找到2.大部分应用软件也都是遵循GPL(GNU通用许可证)而设计的,你 都可以获取相应的源程序代码 3.全世界任何一个软件工程师都可以将自己认为优秀的代码加入 到其中,由此引发的一个明显的好处就是Linux修补漏洞的快 速以及对最新软件技术的利用 拥有了内核的源程序的好处:1.1.可以了解系统是如何工作的可以了解系统是如何工作的 通过读源代码,我们就可以了解系统的工作原理,这在 Windows下简直是天方夜谭。2.2.我们可以针对自己的情况,
5、量体裁衣,定制适合自己的操作我们可以针对自己的情况,量体裁衣,定制适合自己的操作 系统,这样就需要重新编译内核系统,这样就需要重新编译内核 Linux独特的模块机制可以根据用户的需要,实时地将某些模 块插入到内核或从内核中移走,在Windows下很难,几乎是不可能!3.3.我们可以对内核进行修改,以符合自己的需要。我们可以对内核进行修改,以符合自己的需要。这相当于自己开发了一个操作系统,但是大部分的工作已经 做好了,你所要做的就是要增加并实现自己需要的功能。在Windows下,除非你是微软的核心技术人员,否则就不可能!1.2 Linux1.2 Linux内核版本号内核版本号 由于linux的源
6、程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统:稳定树(stable tree)非稳定树(unstable tree)或开发树(development tree)一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中:源程序版本号的形式为:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大1 因此,是奇数下载内核
7、版本地址http:/1.3 1.3 为什么重新编译内核为什么重新编译内核 linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。为什么要重新定制自己的内核?一般主要有下面四个考虑:(1)尺寸小 自己定制编译的内核具有更少的代码,运行会更快(2)节省内存 由于内核部分永远占用物理内存,定制内核可使系统 拥有更多的物理内存(3)减少漏洞 不需要的功能编译进入内核可能会增加被系统攻 击者利用的漏洞(4)动态加载模块 根据需要动态地加载或者卸载模块,可以节省系统
8、内存1.4 1.4 内核编译模式内核编译模式 要增加对某部分功能的支持,比如要增加对某部分功能的支持,比如:网络之类,可网络之类,可以把相应部分编译到内核中(以把相应部分编译到内核中(build-inbuild-in),也可以把该),也可以把该部分编译成模块(部分编译成模块(modulemodule),动态调用。),动态调用。如果编译到内核中如果编译到内核中:优点优点:在内核启动时就可以自动支持相应部分的功能,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,你就可以这样的优点是方便、速度快,机器一启动,你就可以使用这部分功能了;使用这部分功能了;缺点缺点:会使内
9、核变得庞大起来,不管你是否需要这部会使内核变得庞大起来,不管你是否需要这部分功能,它都会存在分功能,它都会存在;建议经常使用的部分直接编译到内核中,比如网卡。建议经常使用的部分直接编译到内核中,比如网卡。如果编译成模块,就会生成对应的如果编译成模块,就会生成对应的.o.o文件,在使用文件,在使用的时候可以动态加载的时候可以动态加载。优点优点:不会使内核过分庞大不会使内核过分庞大;缺点缺点:你得自己来调用这些模块。你得自己来调用这些模块。1.5 1.5 内核源码结构内核源码结构LinuxLinux核心源程序通常都安装在核心源程序通常都安装在/usr/src/linux/usr/src/linux
10、下下:Arch Arch:archarch子目录包括了所有和体系结构相关的核子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体心代码。它的每一个子目录都代表一种支持的体系结构,例如系结构,例如i386i386就是关于就是关于intel cpuintel cpu及与之相及与之相兼容体系结构的子目录。兼容体系结构的子目录。PCPC机一般都基于此目录;机一般都基于此目录;Include:Include:include include子目录包括编译核心所需要的大部分头文子目录包括编译核心所需要的大部分头文件。件。与平台无关的头文件在与平台无关的头文件在:include/lin
11、ux:include/linux子目录下,子目录下,与与intel cpuintel cpu相关的头文件在相关的头文件在:include/asm-i386:include/asm-i386子目录下子目录下,与与arm cpuarm cpu相关的头文件在相关的头文件在:include/asm-arm:include/asm-arm子目录下子目录下InitInit:这个目录包含核心的初始化代码这个目录包含核心的初始化代码(注:不是系统的引注:不是系统的引导代码导代码),包含两个文件,包含两个文件main.cmain.c和和Version.cVersion.c,这是研究,这是研究核心如何工作的一个非
12、常好的起点。核心如何工作的一个非常好的起点。Mm Mm:这个目录包括所有独立于这个目录包括所有独立于 cpu cpu 体系结构的内存管理体系结构的内存管理代码,如页式存储管理内存的分配和释放等;而和体系结代码,如页式存储管理内存的分配和释放等;而和体系结构相关的内存管理代码则位于构相关的内存管理代码则位于arch/*/mm/;arch/*/mm/;例如例如arch/i386/mm/Fault.c arch/i386/mm/Fault.c KernelKernel:主要的核心代码,此目录下的文件实现了大多数主要的核心代码,此目录下的文件实现了大多数linuxlinux系统的内核函数,其中最重要的
13、文件当属系统的内核函数,其中最重要的文件当属sched.csched.c;同样,和体系结构相关的代码在同样,和体系结构相关的代码在arch/*/kernelarch/*/kernel中;中;DriversDrivers:放置系统所有的设备驱动程序放置系统所有的设备驱动程序;每种驱动程序又各每种驱动程序又各占用一个子目录:占用一个子目录:如,如,/block/block 下为块设备驱动程序,比如下为块设备驱动程序,比如ideide(ide.cide.c)。)。Lib:Lib:放置核心的库代码放置核心的库代码;Net:Net:与网络相关的代码与网络相关的代码;Ipc:Ipc:这个目录包含核心的进程
14、间通讯的代码这个目录包含核心的进程间通讯的代码;Fs:Fs:所有的文件系统代码和各种类型的文件操作代码,所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统,它的每一个子目录支持一个文件系统,例如例如fatfat和和ext2;ext2;Scripts:Scripts:此目录包含用于配置核心的脚本文件等。此目录包含用于配置核心的脚本文件等。阅读理解内核源码的三个重要文件阅读理解内核源码的三个重要文件:1.在每个目录下,都有在每个目录下,都有:.depend .depend 文件文件 Makefile Makefile 文件,文件,这两个文件都是这两个文件都是编译时使用的辅
15、助文件编译时使用的辅助文件,仔细阅读,仔细阅读这两个文件对弄清各个文件这间的联系和依托关系很有这两个文件对弄清各个文件这间的联系和依托关系很有帮助;帮助;2.2.在有的目录下还有在有的目录下还有Readme Readme 文件,它是对文件,它是对该目录下的该目录下的文件的一些说明文件的一些说明,同样有利于我们对内核源,同样有利于我们对内核源码的理解;码的理解;1.6 1.6 内核裁内核裁剪剪与编译与编译 通常要运行的第一个命令是:通常要运行的第一个命令是:cd/usr/src/linuxcd/usr/src/linux make mrpropermake mrproper该命令确保源代码目录下
16、没有该命令确保源代码目录下没有不正确的不正确的.o.o文件文件以及以及文文件的互相依赖件的互相依赖。也可用也可用make cleanmake clean 或或 make realcleanmake realclean接下来的内核裁剪与编译过程接下来的内核裁剪与编译过程 Linux Linux 内核的裁剪与编译看上去是个挺简单的过程,内核的裁剪与编译看上去是个挺简单的过程,只是对配置菜单的简单选择。只是对配置菜单的简单选择。实质上是内核配置菜单本身结构庞大,内容复杂。实质上是内核配置菜单本身结构庞大,内容复杂。因此熟悉与了解该菜单的各项具体含义就显得比较重要。因此熟悉与了解该菜单的各项具体含义就
17、显得比较重要。我们现在就对其作一些介绍:我们现在就对其作一些介绍:Linux Linux 内核的编译菜单有好几个版本,运行:内核的编译菜单有好几个版本,运行:1 1)基于字符界面的基于字符界面的configconfig:make config make config进进 入命令行,可以一行一行的配置入命令行,可以一行一行的配置;2 2)基于图形界面的基于图形界面的menuconfigmenuconfig:make menuconfig make menuconfig 进入进入menuconfig menuconfig 菜单。菜单。(稳定且用得最多稳定且用得最多)3 3)基于图形界面的基于图形界
18、面的xconfig:make xconfigxconfig:make xconfig 进入进入xconfigxconfig菜单菜单基于字符界面的基于字符界面的make configmake config 基于图形界面的基于图形界面的menuconfig menuconfig 配置菜单配置菜单基于图形界面的基于图形界面的xconfig xconfig 配置菜单配置菜单 在选择相应的配置时,有三种选择方式,它们的含义在选择相应的配置时,有三种选择方式,它们的含义如下:如下:Y Y将该功能编译进内核;将该功能编译进内核;N N不将该功能编译进内核;不将该功能编译进内核;M M将该功能编译成可以在需要
19、时动态插入到内核将该功能编译成可以在需要时动态插入到内核中的模块中的模块(动态加载的模块动态加载的模块)。对于使用对于使用make menuconfigmake menuconfig,需要使用,需要使用空格键空格键进行进行选取选取(xconfigxconfig可以用鼠标可以用鼠标)。在每一个选项前都有一个在每一个选项前都有一个括号括号,有中括号,有中括号、尖括号和尖括号和圆括号圆括号:用空格键选择时用空格键选择时:中括号中括号:空或空或“*”“*”空表示空表示:此选项不要此选项不要 “*”“*”表示表示:编译到内核里编译到内核里(静态静态)尖括号尖括号:空,空,*和和M“M“空表示空表示:此选
20、项不要此选项不要 “*”表示表示:编译到内核里编译到内核里(静态静态)“M“表示表示:编译成模块编译成模块(动态动态)圆括号圆括号:要求在所提供的几个选项中选择一项要求在所提供的几个选项中选择一项 在完成内核的裁减之后,内核的编译就是一个非常在完成内核的裁减之后,内核的编译就是一个非常简单的过程。你只要执行以下几条命令就行:简单的过程。你只要执行以下几条命令就行:1.make dep1.make dep make dep make dep 作用:读取配置过程生成的配置文件,来作用:读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译创建对应于配置的依赖关系树,从而决定
21、哪些需要编译而那些不需要;而那些不需要;2.make zImage/make bzImage2.make zImage/make bzImage make zImage make zImage和和make bzImagemake bzImage则实现完全编译内核,则实现完全编译内核,二者生成的内核压缩文件的,只要使用一个就够了,它们二者生成的内核压缩文件的,只要使用一个就够了,它们的区别在于使用的区别在于使用make bzImagemake bzImage可以生成大一点的内核。可以生成大一点的内核。3.make install3.make install(MakefileMakefile中)中
22、)这条命令可以把相关文件拷贝到指定的目录。这条命令可以把相关文件拷贝到指定的目录。事例事例:在内核配置中添加对在内核配置中添加对USBUSB输入设备的支持输入设备的支持1.Make menuconfig 1.Make menuconfig 进入配置菜单进入配置菜单2.2.添加添加Input core support Input core support 3.3.添加添加USB support/USB Human Interface Device USB support/USB Human Interface Device (full HID)support (full HID)support
23、具体配置菜单,首先进入内核所在目录,键入具体配置菜单,首先进入内核所在目录,键入make menuconfig make menuconfig,就会看到配置菜单,就会看到配置菜单:选项比较复杂,这里简单介绍一些重要选项选项比较复杂,这里简单介绍一些重要选项。裁减时应根据具体情况,裁减时应根据具体情况,参考帮助参考帮助的内容加以选择。的内容加以选择。1.7 1.7 内核配置选项介绍内核配置选项介绍 1.Code maturity level options 1.Code maturity level options 代码成熟度选代码成熟度选 项,它有子项:项,它有子项:1.1.prompt fo
24、r development and/or incomplete 1.1.prompt for development and/or incomplete code/drivers code/drivers 该选项是对那些还在测试阶段的代码,驱动模块等该选项是对那些还在测试阶段的代码,驱动模块等的支持。一般应该选这个选项。的支持。一般应该选这个选项。1.2.prompt for obsolete code/drivers 1.2.prompt for obsolete code/drivers 该项用于对那些已经老旧的,被现有文件替代了的该项用于对那些已经老旧的,被现有文件替代了的驱动,代码的支
25、持,可以不选,在新的版本中已被替换。驱动,代码的支持,可以不选,在新的版本中已被替换。2.loadable module support 2.loadable module support 动态加载模块支持选项,动态加载模块支持选项,其子项有:其子项有:2.1.enable module support 2.1.enable module support 支持模块加载功能,应支持模块加载功能,应 该选上。该选上。2.2 set version information on all module symbols2.2 set version information on all module s
26、ymbols 该项用来支持跨内核版本的模块支持。即为某个版该项用来支持跨内核版本的模块支持。即为某个版本的内核编译的模块可以在另一个版本的内核下使用,本的内核编译的模块可以在另一个版本的内核下使用,我们一般用不上,所以不选。我们一般用不上,所以不选。2.3 kernel module loader2.3 kernel module loader 如果你启用这个选项,你可以通过如果你启用这个选项,你可以通过kerneld kerneld 程序的程序的帮助在需要的时候自动载入或卸载那些可载入式的模块。帮助在需要的时候自动载入或卸载那些可载入式的模块。一般会选上。一般会选上。3.system typ
27、e3.system type 系统类型,主要是系统类型,主要是CPU CPU 类型,以及于此相关的内容。类型,以及于此相关的内容。以我们的开发平台作相应介绍,其它平台与此类似。以我们的开发平台作相应介绍,其它平台与此类似。如果你是进行交叉编译,该项下的内容往往是经过相如果你是进行交叉编译,该项下的内容往往是经过相应目标平台开发人员修改的。主要是针对该平台的体系结应目标平台开发人员修改的。主要是针对该平台的体系结构定义,这样可以优化系统性能。开发人员一般会事先设构定义,这样可以优化系统性能。开发人员一般会事先设定好默认值。作为初学者按给出的默认选项就行。定好默认值。作为初学者按给出的默认选项就行
28、。如果你想用一个原始的版本内核来建构针对你的平台如果你想用一个原始的版本内核来建构针对你的平台的新内核,并且你的内核版本支持你目标平台所用的的新内核,并且你的内核版本支持你目标平台所用的CPU CPU,那你就选上它。但不要选同系列中高于你所用的,那你就选上它。但不要选同系列中高于你所用的CPU CPU 型型号,否则不支持。你也可以在号,否则不支持。你也可以在Config.in Config.in 或或KConfig KConfig 中修中修改该项以支持你的目标平台。改该项以支持你的目标平台。4.General setup4.General setup4.1.support hot-plugab
29、le devieces4.1.support hot-plugable devieces 对可热拔插的设备的支持,看情况选择。若要对对可热拔插的设备的支持,看情况选择。若要对U U 盘盘等等USB USB 设备进行控制,建议选上。设备进行控制,建议选上。4.2.Networking support 4.2.Networking support:网络支持,用到网络设备网络支持,用到网络设备 要选上。要选上。4.3.System V IPC4.3.System V IPC:支持系统的进程间通讯,要选上。:支持系统的进程间通讯,要选上。4.4.sysctl support4.4.sysctl sup
30、port:该项支持在不重启情况下直接改变内核的参数。启用该项支持在不重启情况下直接改变内核的参数。启用该选项后内核大约会增大该选项后内核大约会增大8K8K,如果你的内存太小就别选。,如果你的内存太小就别选。4.5.NWFPE.NWFPE math emulation 一般要选一个模拟数学协处理器,选上。一般要选一个模拟数学协处理器,选上。4.6.Power manager 电源管理,给电源管理,给X86 编译内核时较有用可以选上,尤其编译内核时较有用可以选上,尤其是笔记本。给是笔记本。给ARM 编内核时可不选。编内核时可不选。其它的在我们的实验平台上都用不着,不用选。其它的在我们的实验平台上都
31、用不着,不用选。5.Networking option5.Networking option 网络选项,它主要是关于一些网络协议的选项。网络选项,它主要是关于一些网络协议的选项。Linux Linux 最强大的功能也就是在于对网络功能的灵活支持。最强大的功能也就是在于对网络功能的灵活支持。这部分内容相当多,一般我们把以下几项选上。这部分内容相当多,一般我们把以下几项选上。5.1.packet socket5.1.packet socket 包协议支持,有些应用程序使用包协议支持,有些应用程序使用Packet Packet 协议直接同网协议直接同网络设备通讯,而不通过内核中的其它中介协议。同时它
32、可络设备通讯,而不通过内核中的其它中介协议。同时它可以让你在以让你在TCP TCP 不能用时找到一个通讯方法。不能用时找到一个通讯方法。5.2.unix domain socket5.2.unix domain socket 对基本对基本UNIX socket UNIX socket 的支持的支持 对对TCP/IP TCP/IP 协议栈的支持,需要。协议栈的支持,需要。至于其它众多的选项至于其它众多的选项,这里挑一些对其意思简单介绍一下这里挑一些对其意思简单介绍一下:Network firewallsNetwork firewalls:是否让内核支持采用网络防火墙。如果计算机想当是否让内核支持
33、采用网络防火墙。如果计算机想当firewalls serverfirewalls server或者是处于或者是处于TCP/IP TCP/IP 通信协议网络的网通信协议网络的网路结构下,这一项就选上。路结构下,这一项就选上。Packet socket mmapped IO Packet socket mmapped IO:选该项则选该项则Packet socketPacket socket可以利用端口进行快速通讯的。可以利用端口进行快速通讯的。IP advanced router IP advanced router:如果你想把自己的如果你想把自己的Linux Linux 配成路由器功能这项肯定
34、要配成路由器功能这项肯定要选。选上后会带出几个子项。这些子项可以更精确配置相选。选上后会带出几个子项。这些子项可以更精确配置相关路由功能。关路由功能。socket filtersocket filter:包过滤。包过滤。IP multicasting IP multicasting:网络广播协议的支持,可以一次一个将网络广播协议的支持,可以一次一个将packet packet 送到送到好几台计算机的操作。好几台计算机的操作。IP syncookies IP syncookies:一种保护措施,将各种一种保护措施,将各种TCP/IP TCP/IP 的通信协议加密,防的通信协议加密,防止止Atta
35、cker Attacker 攻击用户的计算机,并且可以记录企图攻击攻击用户的计算机,并且可以记录企图攻击用户的计算机的用户的计算机的IP IP 地址。地址。IPIP:masquerading masquerading:这个选项可以在这个选项可以在Network Firewalls Network Firewalls 选项被选后生选项被选后生效。效。masquerading masquerading 可以将内部网络的计可以将内部网络的计 算机送出去的算机送出去的封包,通过防火墙服务器直接传递给远端的计算机,而远封包,通过防火墙服务器直接传递给远端的计算机,而远端的计算机看到的就是接收到的防火墙服
36、务器送过来的封端的计算机看到的就是接收到的防火墙服务器送过来的封包,而不是从内部的计算机送过来的。包,而不是从内部的计算机送过来的。IPIP:ICMP masqueradingICMP masquerading:一般一般masquerading masquerading 只提供处理只提供处理TCPTCP,UDP packetsUDP packets,若要让若要让masqurerading masqurerading 也能处理也能处理ICMP packetsICMP packets,就把这选,就把这选项选上。项选上。IPIP:always defragmentalways defragment:
37、可将接收到的可将接收到的packet fragments packet fragments 重新组合回原来那重新组合回原来那个封包。个封包。IPIP:accountingaccounting:统计统计IP packet IP packet 的流量,也就是网络的流通情况。的流量,也就是网络的流通情况。IPIP:optimize as router not hostoptimize as router not host:可以关闭可以关闭copy&checksum copy&checksum 技术,防止流量大的服务器技术,防止流量大的服务器的的IP packets IP packets 丢失。丢失。
38、的。的。IPIP:tunneling tunnel tunneling tunnel 即隧道。这里是指用另外一种协议来封装数据或包即隧道。这里是指用另外一种协议来封装数据或包容协议类型。这样就相当于在不同的协议之间打了条隧容协议类型。这样就相当于在不同的协议之间打了条隧道。使得数据包可以被不同的协议接受和解释。这样我道。使得数据包可以被不同的协议接受和解释。这样我们可在不同网域中使用们可在不同网域中使用linuxlinux,且都不用改,且都不用改IP IP 就可以直就可以直接上网了。对于嵌入式设备还是挺有用接上网了。对于嵌入式设备还是挺有用IPIP:GRE tunneling GRE tunn
39、eling 它是它是(Generic Routing Encapsulation)(Generic Routing Encapsulation)。选该项后可。选该项后可以支持在以支持在IPv4 IPv4 与与IPv6 IPv6 之间的通讯。之间的通讯。IPIP:ARP daemon support ARP daemon support 即对即对ARP ARP 的支持。它是把的支持。它是把IP IP 地址解析为物理地址。地址解析为物理地址。IPIP:Reverse ARP Reverse ARP:RARP(RARP(逆向地址解析逆向地址解析)协议,可提供协议,可提供bootp bootp 的功能
40、,让的功能,让计算机从可以从网卡的计算机从可以从网卡的Boot Ram Boot Ram 启动,这对于搭建无盘启动,这对于搭建无盘工作站是很有用的。工作站是很有用的。IPIP:Disable Path MTU DiscoveryDisable Path MTU Discovery:MTU MTU 有助于处理拥挤的网络。有助于处理拥挤的网络。MTUMTU(Maximal Maximal Transfer UnitTransfer Unit)最大的传输单位,即一次送往网络的信)最大的传输单位,即一次送往网络的信息大小。而息大小。而Path MTU Discovery Path MTU Discov
41、ery 的意思是当的意思是当Linux Linux 发现发现一些机器的传输量比较小时,就会分送网络信息给它。如一些机器的传输量比较小时,就会分送网络信息给它。如此可以增加网络的速度,所以大部分时候都选此可以增加网络的速度,所以大部分时候都选N N,也就是,也就是EnableEnable。The IPX protocol:The IPX protocol:IPX IPX 为为Netware Netware 网络使用的通讯协议,主要是网络使用的通讯协议,主要是NOVELL NOVELL 系统支持的。系统支持的。QoS and/or fair queueingQoS and/or fair queu
42、eing:QoS QoS 即即(Quality Of Service)(Quality Of Service)这是一种排定某种封包这是一种排定某种封包先送的网络线程表,可同时针对多个网络封包处理并依优先送的网络线程表,可同时针对多个网络封包处理并依优先处理顺序来排序,称之为先处理顺序来排序,称之为packetschedulerspacketschedulers。此功能特。此功能特别是针对实时系统时格外重要,当多个封包同时送到网络别是针对实时系统时格外重要,当多个封包同时送到网络设备时,设备时,Kernel Kernel 可以适当的决定出哪一个封包必须优先可以适当的决定出哪一个封包必须优先处理。
43、因此处理。因此Kernel Kernel 提供数种提供数种packet scheduling packet scheduling algorithmalgorithm。6.Networking deveices6.Networking deveices:网络设备支持。上面选好了网络协议了,现在选的是网络设备支持。上面选好了网络协议了,现在选的是网络设备,其实主要就是网卡,所以关键是确定自己平台网络设备,其实主要就是网卡,所以关键是确定自己平台所使用的网卡芯片。该项下的子项也不少。所使用的网卡芯片。该项下的子项也不少。6.1.Dummy net driver support6.1.Dummy n
44、et driver support (空空)网络设备支持。它可让我们模拟出网络设备支持。它可让我们模拟出TCPTCPIP IP 环环境对境对SLIP SLIP 或或PPP PPP 的传输协议提供支持。选择它的传输协议提供支持。选择它Linux Linux 核核心增加不大。如果没有运行心增加不大。如果没有运行SLIP SLIP 或或PPP PPP 协议,就不用选协议,就不用选它。它。6.2.Bonding driver support bonding6.2.Bonding driver support bonding 是用来把多块网卡虚拟为一块网卡的,使他们有一个是用来把多块网卡虚拟为一块网卡的
45、,使他们有一个共同的共同的IP IP 地址。地址。(serial lineserial line)support support 这是这是MODEM MODEM 族常用的一种通讯协议,必须通过一台族常用的一种通讯协议,必须通过一台ServerServer(叫(叫ISPISP)获取一个)获取一个IP IP 地址,然后利用这个地址,然后利用这个IP IP 地地址,可以模拟以太网络,使用有关址,可以模拟以太网络,使用有关TCPTCPIP IP 的程序。的程序。(parallel portparallel port)support support 它是一种利用打印机的接口(平行接口),然后利用它是一种
46、利用打印机的接口(平行接口),然后利用点对点来模拟点对点来模拟TCPTCPIP IP 的环境。它和的环境。它和 SLIP SLIPPPP PPP 全都属全都属于点对点通讯,您可以把两台电脑利用打印机的连接接口于点对点通讯,您可以把两台电脑利用打印机的连接接口串联起来,然后,加入此通讯协议。如此一来,这两部电串联起来,然后,加入此通讯协议。如此一来,这两部电脑就等于一个小小的网络了。不过,如果电脑有提供打印脑就等于一个小小的网络了。不过,如果电脑有提供打印服务的话,这个选项最好不要打开,不然可能会有问题服务的话,这个选项最好不要打开,不然可能会有问题(因为都是用并口)。(因为都是用并口)。(po
47、intpointtotopointpoint)supportsupport 点对点协议,近年来,点对点协议,近年来,PPP PPP 协议已经慢慢的取代协议已经慢慢的取代SLIP SLIP 的规定了,原因是的规定了,原因是PPP PPP 协议可以获取相同的协议可以获取相同的IP IP 地址,而地址,而SLIP SLIP 则一直在改变则一直在改变IP IP 地址,在许多的方面,地址,在许多的方面,PPP PPP 都胜过都胜过SLIPSLIP协议。协议。6.6.EQL(serial line load balancing)support6.6.EQL(serial line load balanci
48、ng)support 两台机器通过两台机器通过SLIP SLIP 或或PPP PPP 协议,使用两个协议,使用两个MODEMMODEM,两,两条电话线,进行通讯时,可以用这个条电话线,进行通讯时,可以用这个Driver Driver 以便让以便让MODEM MODEM 的速度提高两倍。的速度提高两倍。6.7.Token Ring driver support6.7.Token Ring driver support 对令牌环网的支持。对令牌环网的支持。6.8.Ethertap network tap6.8.Ethertap network tap 6.9.Ethernet(10 or 100M
49、bit)6.9.Ethernet(10 or 100Mbit)十至百兆以太网设备,我们现在该类型设备用的比较十至百兆以太网设备,我们现在该类型设备用的比较多。进入该项里头还有许多小项,它们是关于具体网络设多。进入该项里头还有许多小项,它们是关于具体网络设备备(一般就是网卡一般就是网卡)的信息。选择我们平台相关的就行。的信息。选择我们平台相关的就行。6.10.ARCnet support6.10.ARCnet support 它是一种网卡但基本没用。其它的诸如千兆以太网,它是一种网卡但基本没用。其它的诸如千兆以太网,万兆以太网,无线网络,广域网,万兆以太网,无线网络,广域网,ATMATM,PCM
50、CIA PCMCIA 卡等等网卡等等网络设备的支持,要看你的具体应用而定。络设备的支持,要看你的具体应用而定。7.Amateur Radio support7.Amateur Radio support 这个选项用的不多,它是用来启动无线网络的,通过这个选项用的不多,它是用来启动无线网络的,通过无线网络我们可以利用公众频率来进行数据传输,如果你无线网络我们可以利用公众频率来进行数据传输,如果你有相关无线网络通讯设备就可以用它。有相关无线网络通讯设备就可以用它。8.IrDA(infrared)support8.IrDA(infrared)support 该项也属于无线通讯的一种,用于启动对红外通