




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AcegeneITCo.Ltd.,1,Linux操作系统软件模块和内核安装配置,AcegeneITCo.Ltd.,2,内容提要,1软件安装与配置2开机和关机3系统服务4内核管理5模块管理6核心参数,AcegeneITCo.Ltd.,3,1软件安装与配置,本部分将讨论两种最常用的软件安装方法:使用RedHatPackageManager软件包管理工具软件(RPM)和自行编译源代码。本部分中所有需要输入的命令都是以根用户的身份输入的。因此最好是直接以根用户身份登录进入系统。,AcegeneITCo.Ltd.,4,RPMPackageManager,ManagesoftwarepackagesInstall,upgrade,remove,verify,query,buildPackagefilesreferredtoasRPMsDistributedbythevendorIncludefilestobeinstalledplussomeinstallscriptsSourceRPMscontainthesourcecodee.g.,kernel-2.4.9-e.24.src.rpmBinaryRPMscontainthepre-builtbinariese.g.,kernel-2.4.9-e.24.i686.rpmChoosethehighestarchitecturethemachinecanusee.g.,i686,i586,i486,i386(uname-m),AcegeneITCo.Ltd.,5,1RedHatPackageManager,一些可以获得到rpm软件的站点ftp:/,AcegeneITCo.Ltd.,6,1安装新的软件包,普通安装:#rpm-ibc-1.05a-4.i386.rpm升级软件:#rpm-Ubc-1.05a-4.i386.rpm强行安装:#rpm-i-force-nodepspackagename.rpm其他参数-h使用符号“#”指示安装进度,与-v参数一起使用时显示效果更好-v告诉RPM报告每一步操作的情况-test这个参数并不进行真正的安装;它只是用来检查安装能否成功地完成。用于检查依赖关系是否安全。-percent显示已完成的百分比指示安装进度。如果从另外一个程序(比如某个Perl脚本程序)中来运行RPM,并且想了解安装的进度时,这个参数就很方便。,AcegeneITCo.Ltd.,7,1查询软件包,列出已经安装的全部软件包#rpm-qa#rpm-qa|grep-iname找出某个特定的文件到底是属于哪个软件包的#rpm-qffilename查出某个已经安装的软件包的功能#rpm-qipackagename查出软件包中的文件#rpm-qlppackagename其中的packagename是准备要了解其组成文件的软件包名称列出已经安装的软件包中的文件:#rpmql,AcegeneITCo.Ltd.,8,1反安装(清除)软件包,RPM反安装(清除)软件包#rpm-epackagename其中的packagename是rpm-qa命令清单中列出的软件包名称。,AcegeneITCo.Ltd.,9,1gnorpm工具,那些喜欢使用GUI工具简化操作的人们可以使用gnorpm软件。虽然它是被设计运行于GNOME环境的,但在KDE环境中也运行得相当好。它可以完成通过命令行完成的全部操作,但是用户就不必费力记住那些命令行参数了。当然,这样做是要增加一些系统开销的,这也是命令行版本依然存在的原因。,AcegeneITCo.Ltd.,10,RPMBuilds,Buildsconsistofmultiplephases:PrepextractsandpatchessourcesBuildmakeindividualbinariesInstallcreatesaninstallstagingareaDoesntinstallitforuseonthelocalsystem!AdditionalactionscomeafterInstallphase:CreateasourceRPMCreateabinaryRPM,AcegeneITCo.Ltd.,11,RPMWorkArea,WorkareaisusedforbuildingRPMsLocationdependsonvendor:RedHat:/usr/src/redhatUnitedLinux:/usr/src/packagesDirectorystructurecontents:SPECSRPMspecfileSOURCESsourcearchivesandpatchesBUILDextractedsource,objects,binariesRPMSgeneratedbinaryRPMsSRPMSgeneratedsourceRPMs,AcegeneITCo.Ltd.,12,RPMBuildProcedure,First,installsourceRPMPopulatesSPECSandSOURCESRunbuildphasesPopulatesBUILDandcreatesstagingareaGeneratebinaryand/orsourceRPMsPopulatesRPMSandSRPMS,respectivelyCleanupthebuildareaInstallthenewbinaryRPMifdesired,AcegeneITCo.Ltd.,13,RPMBuildExample,Allinonego:rpmrebuildstat-2.5-3.src.rpmStep-by-step:rpmistat-2.5-3.src.rpmcd/usr/src/redhat/SPECSrpmbpstat.specrpmbcstat.specrpmbistat.specrpmblstat.specrpmbastat.speccleanrpmi./RPMS/i386/stat-2.5-3.i386.rpm,AcegeneITCo.Ltd.,14,2开机和关机,2.1系统引导2.2启动文件2.3内核加载2.4init进程,AcegeneITCo.Ltd.,15,2.1启动引导-BootLoaders,GrubNewandimprovedbootloaderConfiguredvia/boot/grub/menu.lstNotnecessarytorerunafterconfigchangesGrubConfigurationdefault=0timeout=10splashimage=(hd0,0)/boot/grub/splash.xpm.gztitleRedHatEntLinuxAS(2.4.21-9.EL)root(hd0,0)kernel/boot/vmlinuz-2.4.21-9.ELroot=LABEL=/initrd/boot/initrd-2.4.21-9.EL.imgLILOOriginalLinuxbootloaderConfiguredvia/etc/lilo.confMustrun/sbin/liloafteranychangetolilo.conforbinaryimages(/boot/*),AcegeneITCo.Ltd.,16,2.2BootFiles,Kernelbinary:IA-32(compressed):/boot/vmlinuz-$LABELOtherarchitectures:/boot/vmlinux-$LABELinitrdimages:/boot/initrd-$LABELSystemmapfile:/boot/System.map-$LABELByconventionkernelbinary,initrdandsystemmapfileshouldsharethesame$LABEL,AcegeneITCo.Ltd.,17,2.2InitrdImages,Kernelcantmountrootfsuntilappropriatediskdriversareloaded(exceptIDE)InitrdisloadedintomemorybyGrub/LILOContainsdriversneededtomountrealrootfsInitrdmustberebuiltifadiskdriverchangesTorebuild:RH:Use/sbin/mkinitrdSUSE:Use/sbin/mk_initrd,AcegeneITCo.Ltd.,18,2.3开机引导的步骤,加载内核内核就必须完整地加载到可用RAM的第一个兆字节之内。为了实现这个目的,内核是被压缩了的。这个文件的头部包含着必要的代码,先设置CPU进入安全模式(以此解除内存限制)再对内核的剩余部分进行解压缩。执行内核内核在内存中解压缩之后,它就可以开始运行了一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。内核就能够挂装根文件系统,内核挂装了根文件系统之后,启动并运行一个叫做init的程序。,AcegeneITCo.Ltd.,19,2.4开机引导的步骤,init进程是所有进程的发起者和控制者。init是第一个运行的进程,init的进程编号永远是1。如果init出现问题,系统随之垮掉。init进程有两个作用:扮演终极父进程的角色。失去了父进程的子进程就都会以init作为它们的父进程。快速执行一下ps-af命令可以列出许多父进程ID(parentprocessID,PPID)为1的进程来。特定运行级别(runlevel)时运行相应的程序,init读取配置文件/etc/inittab,决定启动的运行级别(runlevel)。缺省的运行级别取决于配置文件/etc/inittabid:3:initdefault:,AcegeneITCo.Ltd.,20,2.4开机引导的步骤,命令脚本程序执行rc.sysinit执行脚本在各个运行级别的子目录中/etc/rcRUNLEVEL.d都建立有到/etc/rc.d/init.d子目录中的符号链接。但是这些符号链接并不使用命令脚本程序在/etc/rc.d/init.d子目录中原来的名字,如果命令脚本程序是用来启动一个服务的,其符号链接的名字就以字母S打头;如果命令脚本程序是用来关闭一个服务的,其符号链接的名字就以字母K打头运行级别3和5中,在字母S后面使用了数字99,这就保证了这个命令脚本程序将作为引导过程的组成部分,其最后阶段被执行。,AcegeneITCo.Ltd.,21,2.4编写自己的rc命令脚本程序,有两种方法可以用来实现修改开机或者关机命令脚本的目的:/etc/rc.d/rc.local如果所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简单地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最后一步被执行的。/etc/rc.d/init.d子目录中添加一个命令脚本程序适合修改比较细致,或者还要求关闭进程的操作必须使之明确地停止运行这个命令脚本程序必须可以接受start和stop参数并完成相应的操作。,AcegeneITCo.Ltd.,22,3系统服务管理,用于在激活或停用启动时的服务会修改/etc/rcX.d到/etc/init.d的(符号联接symboliclinks)配置服务chkconfigchkconfig-listchkconfig-level2345serviceon|off服务管理serviceserviceservicenamestart|stop|restart,AcegeneITCo.Ltd.,23,使用chkconfig,#Seewheresendmailisrunningchkconfig-listsendmailsendmail0:off1:off2:off3:on4:off5:on6:off#Turnoffsendmailatlevels3&5#toomanyspammersoutthere!chkconfig-level35sendmailoff,AcegeneITCo.Ltd.,24,4内核,4.1核心服务4.2内核编译和安装4.3模块加载卸载,AcegeneITCo.Ltd.,25,4.1核心级系统服务,核心系统服务:init、inetd、syslog和cron。本部分将对每一个核心系统服务、相应的配置文件以及推荐的应用方式(如果有的话)逐个进行介绍。,AcegeneITCo.Ltd.,26,4.2安装新内核,DistributedbyvendorsinbinaryRPMformatRedHat:kernel-smp|enterprise-*.i686.rpmUnitedLinux:?RPMcontents:/boot/vmlinuz-$LABEL/boot/System.map-$LABEL/lib/module/$LABEL/RPMscriptgeneratesanewinitrd-$LABELandautomaticallyaddsaGrubentryIfusingLILOinsteadofGrub,thenaddlilo.confentrymanuallyandre-run/sbin/lilo,AcegeneITCo.Ltd.,27,4.2编译或者不编译内核的原因,编译的原因运行一个程序,但是操作系统不支持该程序需要的功能。某个用户需要的内核功能比如说用户的机器中装有1GB到2GB容量之间的RAM系统内存,只能重新编译经过改动的内核才能够激活它。用户希望对内核进行优化。内核升级(驱动、BUG、意愿、功能、安全、有时间进行升级)为什么不编译如果只是想给内核加上很少数量的功能的话,就没有必要进行编译编译内核可能会遇到的困难:面对众多的选项,AcegeneITCo.Ltd.,28,确定内核版本unamer确定内核是测试版还是正式版按照下面的方法确定内核是测试版还是正式版:1)忽略句号”.”前的第一个数字。2)查看紧跟在句号”.”后面的第二个数字。在实验性版本中,紧跟在第一个句号后面的第一个数字是一个奇数。在成熟版本中,紧跟在第一个句号后面的第一个数字是一个偶数。举例来说,内核版本2.2.5-15是成熟版本,而版本2.3.4-12是实验性版本,4.2编译(或升级)内核,AcegeneITCo.Ltd.,29,4.2为内核源代码打补丁,内核经常需要小规模地升级。每次升级修复一个特定的bug,增加一个新的驱动程序或者功能,或者实现其他任务。1)下载主版本的源代码和升级到新版本需要的每一个补丁的源代码。2)使用cd命令把路径切换到/usr/src目录。3)使用ls命令列出目录中的内容清单。如果其中有一个/usr/src/linux-version-ext目录已经存在的话,一般情况这就是正在已经运行的内核源代码。4)输入“mkdirlinux-newversion-ext”命令建立一个新的源代码目录。5)把下载的源代码和补丁都拷贝到这个目录中。6)使用tar命令对源代码进行解包操作。7)每一个补丁都应该分别并按顺序来处理。使用tar命令对第一个补丁进行解包操作。8)使用patch命令把这个补丁打到源代码中去。输入“patch-p0original/proc/sys/fs/aio-max-sizeUsingsysctl:sysctlwfs.aio-max-size=1048576Willbelostonrebootifnotin/etc/sysctl.conf,AcegeneITCo.Ltd.,39,6shmfs,Mounttmpfson/dev/shmviafstabOption“size=8g”means8GBOption“size=?”canbelargerthanphysicalRAMRequiredbyOracleforVLMmodeOnlyusedforbuffercacheNeverusedinnon-VLMmode,AcegeneITCo.Ltd.,40,6IA-32系统上使用超过4g内存,Bigpages(x86)SeparatememorypoolusinglargehwpagesNon-swappableMustbesetasideatboottimeBootwithkernelparameter“bigpages=8192MB”UseWorkaroundinbug3080838TopreventKernelpanicinsshd_configset:UsePrivilegeSeparationno-OR-Compressionno(preferred)Hugetlbfs(RHEL)Similartobigpagesbut,configuredatruntime,noneedtoreboot:Shutdowninstance(freememory)echo600/proc/sys/vm/hugetlb_poolAskfor600MBcat/proc/sys/vm/hugetlb_poolVerifyyougot600MB,ifnotmightneedtorebootStartupinstanceVerifyusagein/proc/meminfo,AcegeneITCo.Ltd.,41,6参数:异步IO-asynciorequests,/proc/sys/fs/aio-max-sizeMaxsizeofdatapassedtodriveratonceRequestslargerthanthiswillbebrokenupNextchunkwillnotbesubmitteduntilthepreviousonehascompletedDefaultvalue:131072Unit:bytes/proc/sys/fs/aio-max-nrMaxnumberofaiorequestssystem-wideLimitsnumberofstructuresallocated,notthenumberofrequestsinflight!EachOracleprocessallocates1024Defaultvalue:65536Unit:count,AcegeneITCo.Ltd.,42,6参数:共享内存,/proc/sys/kernel/shmmaxMaxsizeofasinglesharedmemorysegmentSmallervaluesmeanmoresegmentsneededDefaultvalue:33554432Unit:bytesMaximumallowed:4GB-1(4294967295)/proc/sys/kernel/shmallMaxamountofsharedmemorysystem-wideDefault:2097152Unit:?/proc/sys/kernel/shm-use-bigpagesAllowedvalues:0:dontusebigpagespoolforsharedmemory1:usebigpagespoolforSysVsharedmemory2:usebigpagespoolforSysVandshmfsDefaultvalue:0UseWorkaroundinbug3080838TopreventKernelpanicinsshd_configset:UsePrivilegeSeparationno-OR-Compressonno(preferred),AcegeneITCo.Ltd.,43,6RHELKernelTypes(IA-32),Choosetherightkernel“smp”:2-levelpagetablesHWcanonlyaddress4GBofRAM4kBpagesand4MB“large”pages“enterprise”:3-levelpagetablesHWcanaddressupto64GBofRAM4kBpagesand2MB“large”pagesRHEL2.1:max16GBRAMsupportedSLES8:64GBofficiallysupported,AcegeneITCo.Ltd.,44,6进程地址空间(IA-32)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大专基础会计试题及答案
- 基础试题及答案大全
- 城市旧供水管网改造工程经济效益和社会效益分析报告
- 焊丝生产制造项目规划设计方案
- 普通房屋租赁合同的范文7篇
- 净身出户离婚协议书起草与财产分割执行指导
- 离婚财产分配与债务处理专项协议书
- 住宅小区物业服务权移交及配套设施合同
- 生活垃圾分类收集转运体系建设项目可行性研究报告
- 风电场效能提升改造项目可行性研究报告
- 超早期脑梗死的CT影像表现及诊断课件
- 拉西地平原料制药课程设计说明书
- 小学体育-小学二年级《单双脚跳》教学设计学情分析教材分析课后反思
- 居室环境的清洁与消毒
- ××领导班子及成员分析研判报告
- GB/T 9124.1-2019钢制管法兰第1部分:PN系列
- GB/T 2518-2008连续热镀锌钢板及钢带
- Frenchay构音障碍评定
- 教育学原理课后答案主编项贤明
- 建筑装饰施工技术-轻质隔墙工程施工课件(-)
- 语言领域核心经验《学前儿童语言学习与发展核心经验》
评论
0/150
提交评论