收藏 分享(赏)

7linux内核编译.ppt

上传人:无敌 文档编号:972119 上传时间:2018-05-10 格式:PPT 页数:30 大小:232.50KB
下载 相关 举报
7linux内核编译.ppt_第1页
第1页 / 共30页
7linux内核编译.ppt_第2页
第2页 / 共30页
7linux内核编译.ppt_第3页
第3页 / 共30页
7linux内核编译.ppt_第4页
第4页 / 共30页
7linux内核编译.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、内核编译,本章总览,内核简介编译前的准备工作内核选项设置内核编译与安装模块管理内核升级,内核简介,所谓内核(kernel)是指/boot目录下,名为“vmlinuz”的文件。内核可供大部分人使用。但是用户可以根据自己的需要对其进行定制。内核可以从网站上下载最新版本,以源代码方式存在,须经过编译才可使用。内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在 /usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。全世

2、界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。,内核的主要功能,为什么重新编译内核,linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是 li

3、nux使用者的必要操作内容。为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:自己定制编译的内核运行更快(具有更少的代码)系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些,编译前的准备工作,首先是要确认目前的内核版本:#uname -a 内核版本2.x.y-z如果x=奇数,则不稳定版本;如果x=偶数,则为稳定版本。安装内核编译开发程序(GCC等)安装内核源代码,系统默认安装位于/usr/src/linux2.4目录下。,编译前的

4、准备工作,Linux内核版本发布的官方网站是http:/www.kernel.org。 新版本的内核分两种,一种是full Source版本,另外一种是patch文件,即补丁。 完整的内核版本比较大,一般是 tar.gz或者是.bz2文件,二者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般只有几十K到几百K,但是patch文件是针对于特定的版本的,你需要找到自己对应的版本才能使用。编译内核需要root权限, 把你需要升级的内核拷贝到/usr/src/下,内核选项设置,make config 文字模式的设置方式;make oldconfig 完全使

5、用旧的内核功能设置,若不需要变更内核,可以使用这种方法。make menuconfig 这是文字模式的设置方式(建议使用此种方法)。make xconfig 这是图形方式设置方式。,内核选项设置,切换至内核源代码所在的位置。#cd /usr/src/linux2.4执行“make mrproper”。删除目录中不稳定的.o目的文件、附属文件以及内核配置文件。#make mrproper执行“make menuconfig”#make menuconfig每个选项有3种选择方法:Y 表示启用该项功能;M 表示此功能可编译为模块,再加以外挂的方式加载;N 表示关闭此选项。,内核选项讲解,1.Cod

6、e maturity level options:代码成熟等级。 1.1.prompt for development and/or incomplete code/drivers.在Linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。建议还是选择Y,因为会使性能有所提高。 2.Loadable module support:对模块的支持。 2.1.Enable loadable module support.启动动态载入额外模块的功能,系统默认为Y,建议选择该功能。

7、2.2.Set version information on all module symbols.这个选项可以为某个版本的内核编译的模块在另一个内核下使用,但通常用不到,可以不选,系统默认为Y。 2.3.Kernel module loader.让内核在启动时有自己装入必需模块的能力,建议选上。,3.Processor type and features:处理器类型和特色 3.1.Processor family.它会对每种CPU做最佳化,所以要选择正确的CPU否则会对该机的性能有一定的影响。 3.2.High Memory Support.只有当你的计算机有超过1GB内存时才是必须的。因此

8、“High Memory Support”通常并不使用。 3.3.Math emulation.这项询问是否需Linux核心模拟数学浮点运算器。如果有486Dx、AMD以及Pentium机器的话,这个选项就不必选了,因为它们都有内建的浮点运算器。系统默认为N。 3.4.MTRR (memory type range register)support.这项允许在PCI或者AGP总线众进行更快速的通讯。 3.5.Symmetric multi-processing support.同步处理器支持该选项保证内核能够以最佳方式加载多处理器。假如被编译的计算机上有多个CPU。一般用户选择N。 3.6.M

9、utiquad NUMA system.通常也需要多处理器,但它通常是关闭的。,4.General setup:常规内核选项。 4.1. Networking support. Linux网络支持,建议选上,否则可能导致内核无法编译。 4.2. PCI support. 现在的所有系统都使用PCI总线,系统默认为Y。 4.3. PCI access mode. PCI存取模式。可供选择的有BIOS、Direct和Any 4.4. Support for hot-pluggabel devices. 热插拔设备支持。支持的不是太好,可不选。 4.5. PCMCIA/CardBus support

10、-PCMCIA/CardBus support. 有PCMCIA就必选了。n4.6. System V IPC. 如果将来想编译dosemu(DOS模拟器),它是一个让各个程序 (process)同步且能彼此交换数据的函数库和一些系统的调用,建议选择Y。 4.7. BSD Process Accounting.,4.8. Sysctl support.除非你的内存少的可怜,否则你应该启动这个功能,启用该选项后内核会大8K,但能让你直接改变内核的参数而不必重新开机。以上三项是有关进程处理/IPC调用的,主要就是System V和BSD两种风格。4.9. Kernel core (/proc/kc

11、ore/) format.现在的Linux发行版以ELF格式作为它们的“内核核心格式”。 4.10. Kernel support for A.OUT binaries.aout的执行文件是比较古老的可执行码,用在比较早期的UNIX系统上。Linux最初也是使用这种码来执行程序,一直到ELF格式的可执行码出来后,有愈来俞多的程序码随着ELF格式的优点而变成了ELF的可执码。将来势必完全取代aout格式的可执行码。但目前由于沿有许多的程序还没有取代过来,所以只好选择Y,等将来有一天,全部的程序都变成了ELF的天下时,那时再disable掉。 4.11. Power Management supp

12、ort.电源管理支持。 4.12. Advanced Power Management BIOS support.高级电源管理BIOS支持。这通常是用在笔记本电脑上的东西,如果您有APM的BIOS,支持省电的设备的(有电池的那种),那么您可以选上这项,一般人这一项是选n,以避免一些可能会发生的问题。后有8个选项。ATX主板需要这两个选项来自动关闭计算机(turn off the computer,包括关闭电源)。,5.Memory Technology Devices (MTD):配置存储设备。 5.1. Memory Technology Devices (MTD) support.你需要这

13、个选项来使Linux可以读取闪存卡(Flash Card)之类的存储器。 闪存卡通常用于数码相机。 通过这个选项,Linux可以读取闪存卡(从特殊的设备中,比如读卡机),并且将图片保存为.jpg格式。6.Parallel port support:配置并口。 6.1. Parallel port support.如果不打算使用,就别选了。7.Plug and Play configuration:即插即用支持。 7.1. Plug and Playsupport.几乎所有人都有即插即用设备,因此需要这个选项的支持。 打开这个选项使内核能够自动配置即插即用设备并且使它们在系统中能够使用。 有时需

14、要在BIOS中打开“Plug & Play OS”,否则Linux(当然Windows也一样)无法配置即插即用设备。 7.2. ISA Plug & Play support.选项需要以即插即用模式运行的ISA卡(ISA Card)。 例如AWE64声卡。假如有这个设备的话可以选择Y,8.Block devices:块设备支持。 8.1. Normal PC floppy disk support.普通PC软盘支持。大部分人都要使用软盘(floppy),所以这个选项要选择Y 8.2. XT hard disk support.支持XT的古董硬盘,这是IBM电脑时代的东西,如果您还有这种很旧很旧

15、的硬盘。 8.3. Loopback device support.这个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。 9.Multiple devices driver support:多设备驱动支持。 9.1. Multiple devices driver support.普通Linux用户通常不需要RAID(廉价冗余磁盘阵列)或者LVM支持。 普通用户选择Y。,10.Networking options:网络选项。 10.1.

16、 Packet Socket.选择“Y”,你需要这个选项来与网卡进行通信而不需要在内核中实现网络协议。 在这里我可以简捷一些:一般情况下,打开这个选项。 大多数选项是关闭的,除非你需要特殊的支持。 10.2. TCP/IP networking.选择“Y”,内核将支持TCP/IP协议。建议用户选择Y。 10.3. IP:multicasting.所谓的multicasting是群组广播,它是用在视频会议上的协议,如果想送一个网络封包(网络的数据),同样的一份数据将送往十部机器上。您可以连续送十次给十台机器(点对点的传送),也可以同时送一次,然后让十台机器同时接收到.,11.Telephony

17、Support:电话支持。 11.1.Linux Telephony Support.这个选项只有当你在计算机中使用电话卡的时候才有用,比如在Internet上打电话。 大多数普通用户没有电话卡,因此不需要这个选项。12.ATA/IDE/MFM/RLL support:配置对ATA,IDE,MFM和RLL的支持。 12.1. ATA/IDE/MFM/RLL support.几乎每个人都需要这些协议,除非你的机器只有SCSI硬盘而没有其他任何类型的硬盘。 因此,大多数用户都应该把它打开。 点击它下面的那一栏将会出现一个有更详细配置选项的菜单。仔细填写它们:它们极为重要! 12.2.Enhance

18、d IDE/MFM/RLL disk/cdrom/tape/floppy support.选项是每个使用IDE/ATAPI界面的人都需要的。 包括硬盘,磁带机,ZIP盘,光驱(CDROM)和刻录机(CD-R(W)。 基本上现在的所有计算机(译者注:这里指的是PC)都使用IDE/ATAPI界面,因此这个选项必须打开。 12.3. Include IDE/ATA-2 DISK support.选项在支持硬盘的时候需要。 因此这个选项也必须打开,除非你的机器是一个纯粹的SCSI系统。 其它的就使用缺省的选项吧,如果你使用了比较特殊的设备,比如PCMCIA等,就到里面找相应的选项吧。,13.SCSI

19、support:SCSI设备的支持。 13.1. SCSI support.如果你有一块SCSI卡,你当然需要打开相关选项。这张截图只显示了当你为你的CD-R(W)选择“SCSI emulation support” 13.2. SCSI disk support.指硬盘而言,如果有SCSI硬盘,那么就要选这个选项。 13.3. SCSI tape support.指磁带机而言,如果您有SCSI的磁带机,那么就要选这个选项。 13.4. SCSI CDROM support.指CDROM,如果您有SCSI光驱,这一项一定要选。 13.5. SCSI generic support.指其他有关S

20、CSI的东西,也许您有一台SCSI的扫描器或是烧录机,或是其他有关SCSI的配备,您就要选这一项。而且,除此之外,您还必须准备关于这些配备的软件。 13.6. Probe a11 LUNs on each SCSI device.通常这个选项大部分的人都不会选。我们举个例子来说,如果您的SCSI光驱是那种多片装的,就是一台光驱,但可以一次放好几片光盘片的那种。这种我们叫做Lun。I2O Device Support:配置I2O设备支持。 13.7. Verbose SCSI error reporting(kernel size+=12K).如果认为您的SCSI硬件配备有些问题,想了解一下它出

21、现的错误信息。那么您可以把这个选项选y,Linux核心会告诉您有关于您的SCSI配备的问题(如果有的话)。不过,它会增加核心约 12KB左右。 13.8. SCSI lowlevel drivers.下面总共有接近30张的SCSI卡,您可以依需求做选择SCSI卡牌子,14.I2O Device Support:I20设备支持。 14.1. I2O Device Support.如果你有I2O界面,你必须选择这个选项。15.Network Device Support:网络设备支持。 15.1. Network Device Support.网络设备支持。,有ARCnet设备、Ethernet(

22、10 or 100 Mbit)、Ethernet(1000Mbit)、Wireless LAN(non-hamradio)、Token Ring device、Wan interfaces、PCMCIA network device support几大类。 耐心点,一般说来你都能找到自己用的网卡。如果没有,你只好自己到厂商那里去要驱动了。 15.2. Dummy net driver support.如果有SLIP或PPP的传输协议,那么要把这一项打开,15.3. PPP(pointtopoint)support.点对点协议。 15.4. SLIP(serial line) support.这

23、是MODEM族常用的一种通讯协议,必须通过一台Server(叫ISP)获取一个IP地址,然后利用这个IP地址,可以模拟以太网络,使用有关TCPIP的程序。16.Amateur Radio support:配置业余广播支持。 16.1. Amateur Radio support.如果你希望使用业余广播支持,应该打开这个选项,并且打开相应的驱动。 多数人不需要这个选项。 17.IrDA(infrared)support:配置红外线(无线)通讯支持。 17.1. IrDA(infrared)support.如果你有无线设备,比如无线鼠标或无线键盘,你应该打开这个选项。 多数桌面机器不需要这个选项1

24、8.ISDN subsystem:配置ISDN。 18.1. ISDN support.如果使用ISDN上网,这个就必不可少了。 19.Old CD-ROM drivers(not SCSI、not IDE):配置老CDROM。 在486和386机器中,CDROM并不是通过硬盘IDE(ATAPI)控制器连接的,而是通过声卡或一块特殊的板卡。 使用这些老CDROM需要选择对应的驱动。这个选项在现在的系统中显得多余。,20.Input Core Support: 这个选项提供了2.4.x内核中最重要的特性之一的USB支持。 Input core support是处于内核与一些USB设备之间的层(L

25、ayer)。如果你拥有其中一种USB设备,你必须打开“input core support”选项。 现在所有的主板都有USB接口,所以,原则上你应该打开它。 21.Character devices:字符设备 21.1. Virtual terminal.选择“y”,内核将支持虚拟终端。 21.2. Support for console on virtual terminal.选择“y”,内核可将一个虚拟终端用作系统控制台。 21.3. Standard/generic (dumb) serial support.选择“y”,内核将支持串行口。标准序列接口的选定。如果您是用serial的鼠标

26、(大部分的人都是用这个),或是MODEM的话,则这一项一定要选。大部分的人这一项都选y。 21.4. Support for console on serial port.选择“y”,内核可将一个串行口用作系统控制台。 21.5. I2C support.I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For Linux,该项必选,21.6. Mice.鼠标。现在可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad-根据需要选择。 22.Console drivers:配置控制台驱动。

27、 22.1. VGA text console.选项在VGA模式下启动字符模式。 22.2. video mode selection support.使启动的时候能够使用字符模式的分辨率。 如果你希望一行能够有更多的字的话,这通常会给你提供方便,不过通常不必打开它们。25.Sound sound:声卡驱动。 在这部分,你可以配置声卡。如果你的发行版使用的是内核的标准声卡驱动,你必须正确选择你使用的声卡。 26.USB support:配置USB支持。 27.kernel hacking:配置“kernel hacking”选项.这不要打开!,内核编译与安装,链接程序代码与函数库#make d

28、ep准备源目录树,删除不必要的模块和文件#make clean编译新内核 make bzImage 创建压缩的内核 ,在./arch/i386/boot下 创建内核程序文件bzimage文件; make zImage 创建未压缩的文件 make zdisk 编译内核程序文件外, 还会制作一张不含 lilo的引导盘。,内核编译与安装,4、生成模块# make modules -开始编译外挂模块# make modules_install -安装编译完成的模块# depmod -a -创建模块的链接5、安装创建后的内核# cp ./arch/i386/boot/bzImage /boot/vmli

29、nuz-2.4.new# mkinitrd /boot/initrd-2.4.new.img 2.4.20-8cutom,6、修改grub.conf配置文件,指定新内核文件#boot=/dev/hdadefault=0timeout=10color greensplashimage=(hd0,8)/boot/grub/splash.xpm.gztitle Red Hat Linux (2.4.20-8) root (hd0,8) kernel /boot/vmlinuz-2.4.new ro root=LABEL=/ 新内核文件 initrd /boot/initrd-2.4.new.img

30、新映像文件title DOS rootnoverify (hd0,0) chainloader +1,模块管理,设置内核内容时,如果将某个选项设为y,则这个选项就会内置到内核,在系统开机时会自动加载。如果为m,则会被以模块的形态产生,而这些程序可以由开机启动加载,也可以由用户手工启动。加载模块的最大好处是可以精简内核的容量。模块文件位于/lib/modules/2.4.20-8custom,模块管理,1、查看系统已加载的模块#lsmod2、安装模块 #insmod /lib/modules/2.4.20/kernel/drivers/usb/usbnet.o#lsmod3、卸载模块#rmmod usbnet,内核升级,升级系统内核,不仅能够修补版本的漏洞和缺陷,还可以支持更多的外围设置,并改善应用程序的相容,增加系统的稳定性。 编译方法同上面所述的步骤,修改grub.conf配置文件,使用最新版的内核。 从2.6开始,多了make, make install命令,可以减少make dep,make clean等很多步骤。具体参考,复 习,内核简介编译前的准备工作内核选项设置内核编译与安装模块管理内核升级,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报