《Linux核心管理与定制》由会员分享,可在线阅读,更多相关《Linux核心管理与定制(35页珍藏版)》请在金锄头文库上搜索。
1、1/Slidenumbers曼酥本竖戒盛锯扇绿裙哺届界约毫备芍锰痈隐笆沽眩级尖沦惮纱审够烂塔Linux核心管理与定制Linux核心管理与定制Linux核心管理与定制核心管理与定制第七章似侩赴某熔管座旨拎子沂囱栈癣白寝凸耸恃爱逗淄英篙赠彦凯炊或吟叫罚Linux核心管理与定制Linux核心管理与定制Version1.0内容回顾内容回顾内容回顾内容回顾nLinux应用程序基础应用程序基础nRPM包管理包管理n应用程序编译应用程序编译n库管理库管理弊渔家渗署抠鳞肾巢敞婉慧凳峨湿羞滁陆堤狡祸惨脱线国旬阔怀还闰抉赫Linux核心管理与定制Linux核心管理与定制2/35本章目标本章目标本章目标本章目标n了
2、解了解Linux内核的作用和基本功能内核的作用和基本功能n获取获取Linux内核的源码包,并进行安装内核的源码包,并进行安装n掌握内核的多种配置方法掌握内核的多种配置方法n了解内核配置项的含义了解内核配置项的含义n掌握内核的编译方法掌握内核的编译方法n掌握内核模块的编译与安装掌握内核模块的编译与安装n在在Linux系统中应用新内核系统中应用新内核卞奈犊馅意项乡盂氏沏恨裹斯绑姨笔裳芒谆闽抖讳剿涝魁阁贾寂迷硝减纹Linux核心管理与定制Linux核心管理与定制3/35内核的概念内核的概念内核的概念内核的概念n内核是一个操作系统的核心,它负责管理系内核是一个操作系统的核心,它负责管理系统的进程、内存
3、、设备驱动程序、文件和网统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。络系统,决定着系统的性能和稳定性。nLinux内核以独占的方式执行最底层任务,内核以独占的方式执行最底层任务,保证系统正常运行,协调多个并发进程,管保证系统正常运行,协调多个并发进程,管理进程使用的内存,使它们相互之间不产生理进程使用的内存,使它们相互之间不产生冲突,满足进程访问磁盘的请求等等。冲突,满足进程访问磁盘的请求等等。下押茫涣佑刊瓜垢将鹃夷蕊檬群磁罕狙海惹置孽徽讶栽挑让耙悠微膝俊瓜Linux核心管理与定制Linux核心管理与定制4/35为什么要升级内核为什么要升级内核为什么要升级内核为什么
4、要升级内核n现有内核中会不断发现漏洞,需要打补丁后重现有内核中会不断发现漏洞,需要打补丁后重新编译内核,以便系统能够更加安全的运行新编译内核,以便系统能够更加安全的运行n新的内核版本通常会带来用户所需要的新功能新的内核版本通常会带来用户所需要的新功能n新的内核版本会支持较新的硬件设备正常工作新的内核版本会支持较新的硬件设备正常工作n正确地为主机配置个性化的内核会使系统运行正确地为主机配置个性化的内核会使系统运行得更加快速、稳定得更加快速、稳定仿喷淌通啃钵忻奸蓉嘱秦淮激伶陨莎搓撩否瘴抛办沁堑挡崩予假部玲啊儿Linux核心管理与定制Linux核心管理与定制5/35查看系统中的设备查看系统中的设备查
5、看系统中的设备查看系统中的设备 n查看主机的查看主机的CPU信息信息#more/proc/cpuinfon查看主机查看主机PCI设备信息设备信息#lspcin查看系统中所使用的内核模块信息查看系统中所使用的内核模块信息#more/proc/modules姻证狰氰饰尽葡奢恋卿兰宦骂简栏迷括者陶淮裙似烤敝穗龟浪抛哨偏射饺Linux核心管理与定制Linux核心管理与定制6/35获取获取获取获取LinuxLinux内核源代码内核源代码内核源代码内核源代码n从发行版本中获得从发行版本中获得Linux内核源代码内核源代码n从网络下载从网络下载Linux的内核源代码的内核源代码http:/www.kerne
6、l.org钻窍汽蒸张串润职墟钝扳蝶帕暴庄囚怨恐桃版衣眩狡昼善剪佩澜塑值责雨Linux核心管理与定制Linux核心管理与定制7/35安装安装安装安装LinuxLinux内核源代码内核源代码内核源代码内核源代码 nLinux内核源代码以打包的形式提供,内核源代码以打包的形式提供,rpm和和bz2两种格式的源码包的安装方法不同两种格式的源码包的安装方法不同n安装安装RedHatLinux9中的中的RPM内核源码包内核源码包#rpm-ivhkernel-source-2.4.20-8.i386.rpmn安装网络下载的内核源码包安装网络下载的内核源码包#tarjxvflinux-2.4.24.tar.b
7、z2卸孤门梁褪无要僧炕霖意讲血莹脐小楼公囤焊郑氮骤磷绊衍拷元窑呐穆铁Linux核心管理与定制Linux核心管理与定制8/35配置内核前的准备工作配置内核前的准备工作配置内核前的准备工作配置内核前的准备工作 n#cd/usr/src/linux-2.4进入内核源码目录后,才能够正确执行所有进入内核源码目录后,才能够正确执行所有的内核配置、编译命令。的内核配置、编译命令。n#makemrproper在每次配置并重新编译内核前需要先执行在每次配置并重新编译内核前需要先执行“makemrproper”命令清理源代码树,包命令清理源代码树,包括过去曾经配置的内核配置文件括过去曾经配置的内核配置文件“.c
8、onfig”都将被清除。都将被清除。托撂昨厘锈痒捎贡锣乡辊皆嫩迢法揪牲妈趣岂引昌郴矣蹭堡罢骑孵彰感沛Linux核心管理与定制Linux核心管理与定制9/35内核模块的概念内核模块的概念内核模块的概念内核模块的概念 n内核模块简称模块,是一段可执行的程序,内核模块简称模块,是一段可执行的程序,但是它可以被动态加载到内核中,并成为内但是它可以被动态加载到内核中,并成为内核的一部分。核的一部分。n加载到内核里的模块具有与内核一样的权力,加载到内核里的模块具有与内核一样的权力,可以访问任何内核中的数据结构。可以访问任何内核中的数据结构。裹胺勒李袜莹擒氟釜芜辉砚香饶剔脊乌辱豺届叠寡武邱蝶挛纫菱稻骡郑川L
9、inux核心管理与定制Linux核心管理与定制10/35内核的配置界面内核的配置界面内核的配置界面内核的配置界面n文本交互文本交互配置界面配置界面n文本窗口配置界面文本窗口配置界面n图形窗口配置界面图形窗口配置界面n根据原有配置文件自动生成新的配置文件根据原有配置文件自动生成新的配置文件拒箭叭永嘻偶豢乍垫硅佛矢而涉垒血影冬镭雁伯蛙篆快颗频下匝抓些席元Linux核心管理与定制Linux核心管理与定制11/35文本配置界面文本配置界面文本配置界面文本配置界面n文本交互文本交互配置界面配置界面# make confign根据原有配置文件自动生成新的配置文件根据原有配置文件自动生成新的配置文件# ma
10、ke oldconfig设讽友珠俺深聘龚始崇直券惮弓丑拓讲贸期涛薛瘸施跑猩痰机八钉绥火水Linux核心管理与定制Linux核心管理与定制12/35文本窗口配置界面文本窗口配置界面文本窗口配置界面文本窗口配置界面n文本窗口配置界面文本窗口配置界面# make menuconfig陇拿危摩琴怎魄盲勤嫁堆寄罚惨怔浮就哇潜谊赃舍鲍渔呸多模佐汰锋座弟Linux核心管理与定制Linux核心管理与定制13/35图形窗口配置界面图形窗口配置界面n图形窗口配置界面图形窗口配置界面# make xconfig况末黍燎陀拖榆建到坠弦昧庙蕴赚婿毗画庆赤歌拯幌暴溪沁榜因帘邱铸累Linux核心管理与定制Linux核心管理
11、与定制14/35内核功能的配置方法内核功能的配置方法内核功能的配置方法内核功能的配置方法nY配置某功能编译进内核配置某功能编译进内核nM 配置某功能作为模块编译配置某功能作为模块编译nN配置不使用某功能(既不编译进内核,配置不使用某功能(既不编译进内核,也不作为模块编译)也不作为模块编译)凳拉俄捎佑摔储海蓬荆驰佳狠得翔增港脑秃芍停挤黍利详汽硝毙歹已嘶萎Linux核心管理与定制Linux核心管理与定制15/35内核配置项内核配置项内核配置项内核配置项可装载模块支持可装载模块支持可装载模块支持可装载模块支持n可装载模块支持可装载模块支持在通常的在通常的Linux系统中都需要对该项进行支持,系统中都
12、需要对该项进行支持,否则内核将不能使用内核模块。否则内核将不能使用内核模块。恰嘎扛砂氰匝豪汕甭贼阂喂彤讥谦作裴湘案蓉论齐畴老型俺禽困果筛肇仆Linux核心管理与定制Linux核心管理与定制16/35内核配置项内核配置项内核配置项内核配置项处理器处理器处理器处理器乳形匿脊逢互绩移贡渠氟纯恰溜垃铀罕甚宾璃媒息三袱碧合涕者氏有煌姚Linux核心管理与定制Linux核心管理与定制17/35内核配置项内核配置项内核配置项内核配置项常规设置常规设置常规设置常规设置窖晦餐粕戴庸蚜露伟彝部姬垒卿炒陕量收状伦敦诈式纂龄去骚恕付股羽觉Linux核心管理与定制Linux核心管理与定制18/35内核配置项内核配置项内
13、核配置项内核配置项网络设置网络设置网络设置网络设置挥醒缩挂撕继看楷涉幻琴棠奢剧驻司工协梦兑篓侥偷取血席讫监焉婴葡呸Linux核心管理与定制Linux核心管理与定制19/35退出并保存内核配置退出并保存内核配置退出并保存内核配置退出并保存内核配置n在完成对内核的配置后,选择在完成对内核的配置后,选择“SaveandExit”按钮保存并退出配置界面。按钮保存并退出配置界面。嚣种启狸途鳞蛀幅添宫搓觉汇氓嚷沈博爱旭征驳潞戈椿吾怒绞尽僻伙棵杜Linux核心管理与定制Linux核心管理与定制20/35内核配置文件内核配置文件内核配置文件内核配置文件n.config文件文件无论采用哪种方法对无论采用哪种方法
14、对Linux内核进行配置,内核进行配置,最终的目的都是为了生成内核配置文件最终的目的都是为了生成内核配置文件“.config”。内核的编译过程将完全按照内核的编译过程将完全按照“.config”文件中文件中的配置内容进行编译。的配置内容进行编译。穷驶很纶钵还瞬蛹店稼嫡灶罐墓宽骋邓蝶二释低撤诡隅客箱窝绚责糙闯垢Linux核心管理与定制Linux核心管理与定制21/35内核名称标志内核名称标志内核名称标志内核名称标志n“EXTRAVERSION”变量变量Makefile文件中的文件中的“EXTRAVERSION”变量变量的值将被用于生成新内核的版本标志,该标的值将被用于生成新内核的版本标志,该标志
15、用于命名内核文件、内核模块目录等。志用于命名内核文件、内核模块目录等。nEXTRAVERSION=-8custom在在RedHatLinux9中预设定该变量的值中预设定该变量的值为为“-8custom”。在编译内核前用户可以自。在编译内核前用户可以自行设定(通过编辑行设定(通过编辑Makefile文件)。文件)。宇犀满纠托聂丢腾衅嚣移拖果拐谤稀落措法签带纬害谜虾挑琐赶臣酉屉茧Linux核心管理与定制Linux核心管理与定制22/35内核与模块的编译、安装步骤内核与模块的编译、安装步骤内核与模块的编译、安装步骤内核与模块的编译、安装步骤 nmakedep:生成依赖关系:生成依赖关系nmakebz
16、Image:编译内核:编译内核nmakemodules:编译内核模块:编译内核模块nmakemodules_install:安装内核模块:安装内核模块nmakeinstall:安装内核:安装内核惋瞩匠美附并切猖雾属女余等糖付潭骄故暖拓裙龄橡瑚促朝家池蘸硒猫叠Linux核心管理与定制Linux核心管理与定制23/35makedepmakedepn#makedep在编译内核前,需要使用在编译内核前,需要使用“makedep”命令命令生成内核功能间的依赖关系,为编译内核做生成内核功能间的依赖关系,为编译内核做准备。准备。卒蹈谗疮碉绵锣破午吟蹦乌醛部榨绝桂合宿送聚蛆北品晦颐骄肛把牲译辅Linux核心管
17、理与定制Linux核心管理与定制24/35makebzImagemakebzImagen#makebzImage使用使用“makebzImage”命令进行内核编译,命令进行内核编译,编译过程将持续相当长的时间(编译过程将持续相当长的时间(10分钟以上)分钟以上),请耐心等候。,请耐心等候。nbzImage文件文件“arch/i386/boot/”目录下的目录下的bzImage文件文件是新编译生成的内核文件。是新编译生成的内核文件。迷鳞括酞财魄享迫捻被俘萨舌帽板日佬孪旺殉砧践挽铣盏楼网有障租怯忱Linux核心管理与定制Linux核心管理与定制25/35makemodulesmakemodules
18、n#makemodules使用使用“makemodules”命令编译内核模块,命令编译内核模块,编译过程将持续相当长的时间(编译过程将持续相当长的时间(10分钟以上)分钟以上)。息盎建酥醉饺蔬奉医闺褐型塞聘知惹它跺醒羊鹏掺俏鸦及壹患驳敢伺纳润Linux核心管理与定制Linux核心管理与定制26/35makemodules_installmakemodules_installn#makemodules_install内核模块编译好后需要安装到内核模块编译好后需要安装到Linux系统的系统的相应目录中才可以使用,使用相应目录中才可以使用,使用“makemodules_install”命令安装内核模
19、块命令安装内核模块。n/lib/modules/“/lib/modules/”目录用于存放目录用于存放Linux系统中系统中的内核模块,内核的各版本都在该目录下建的内核模块,内核的各版本都在该目录下建有子目录用于存放内核模块。有子目录用于存放内核模块。壶歪奶甭旅号明迎祷针咕茨赠藕阉将徊蛇彤勿敌养边袒试悍庙声新握砧摹Linux核心管理与定制Linux核心管理与定制27/35makeinstallmakeinstalln#makeinstall使用使用“makeinstall”命令安装新内核到系统中命令安装新内核到系统中,并且自动为使用新内核做必要的配置。,并且自动为使用新内核做必要的配置。nvm
20、linuz-2.4.20-8custom新编译的内核被放在目录新编译的内核被放在目录“/boot/”中,各内中,各内核版本有唯一的文件名称,与内核文件配合核版本有唯一的文件名称,与内核文件配合使用的使用的initrd映像文件也在此目录中。映像文件也在此目录中。爱淳淮魁末舒卤礁垢燃藩忍赔雅敬阅纂增魄兹痘推饿螺把洁刀绪泡呜尽燃Linux核心管理与定制Linux核心管理与定制28/35GRUBGRUB引导配置引导配置引导配置引导配置 n/etc/grub.conf内核安装过程已经在内核安装过程已经在GRUB启动引导器的配启动引导器的配置文件置文件“grub.conf”中对新内核的引导进行中对新内核的
21、引导进行了适当的配置:了适当的配置:titleRedHatLinux(2.4.20-8custom)root(hd0,0)kernel/boot/vmlinuz-2.4.20-8customroroot=LABEL=/initrd/boot/initrd-2.4.20-8custom.img逗屋荷隧罕吊镜驾复抉曳圭剥况汕钞适贵殿控蜒利橱啪浆警设厉雹珊碴娥Linux核心管理与定制Linux核心管理与定制29/35使用新内核启动使用新内核启动使用新内核启动使用新内核启动n#reboot重新启动系重新启动系统,并选择统,并选择新内核进行新内核进行引导。引导。楚锅浊闷殃奥谢施璃且摈镊敖噎斧钮阶药僳锦甥
22、津艇寸居旋忿习镁脏敲蜂Linux核心管理与定制Linux核心管理与定制30/35本章总结本章总结本章总结本章总结nLinux中内核与内核模块的概念中内核与内核模块的概念n内核源码的获取内核源码的获取n内核的配置界面内核的配置界面n内核的配置选项内核的配置选项n内核及模块的编译与安装过程内核及模块的编译与安装过程欣另腋兑椿匠彼涪唬冰灼钮枪快醒鹃特去蝗荫渍擅沁鉴湾蜀厢磁信岗颐特Linux核心管理与定制Linux核心管理与定制31/35实验目标实验目标实验目标实验目标n在在Linux系统中了解主机的硬件信息系统中了解主机的硬件信息n掌握掌握Linux内核的配置方法内核的配置方法n掌握掌握Linux内
23、核及模块的编译安装过程内核及模块的编译安装过程n使用新内核引导系统运行使用新内核引导系统运行柿泛候擅拜泞疽啥宜抿函掸俯攀呢呛敏饼寒盒撅疫奔苞灾豺吏笛腑脖讲仪Linux核心管理与定制Linux核心管理与定制32/35实验环境要求实验环境要求实验环境要求实验环境要求n装有装有RedHatLinux9操作系统的主机操作系统的主机nRedHatLinux9的安装光盘一套的安装光盘一套n一人一台机器,一人一组一人一台机器,一人一组补盼棉帚俘娜煌摈沧霹配邑鸵苇畅繁痔顷陀赂攘饲垮规串寸树伊窥旺宇醛Linux核心管理与定制Linux核心管理与定制33/35实验完成标准实验完成标准实验完成标准实验完成标准n内核
24、配置正确内核配置正确能够正确的生成内核配置文件能够正确的生成内核配置文件“.config”n内核及模块编译正常内核及模块编译正常编译过程能够顺利完成,并正确生成编译过程能够顺利完成,并正确生成内核文件内核文件哉檬冶腕恫峙习馒账钵已祝玫刽腹字窑粒夫痴祖粟弯禽占势嫁颓撬州震述Linux核心管理与定制Linux核心管理与定制34/35实验完成标准(续)实验完成标准(续)实验完成标准(续)实验完成标准(续)n内核及模块安装正确内核及模块安装正确内核文件安装到内核文件安装到“/boot”目录目录内核模块文件安装到内核模块文件安装到“/lib/modules”目录目录n内核启动、工作正常内核启动、工作正常在在GRUB启动菜单中选择新内核引导系统启启动菜单中选择新内核引导系统启动,启动过程正常,能够正常进行用户登陆动,启动过程正常,能够正常进行用户登陆并运行程序并运行程序收乞芝凋揖蝉姜讼堑葫行嫩挞歧偏赔拨绒父藉七海客颂侩拱车瓢冰爹履荤Linux核心管理与定制Linux核心管理与定制35/35