Linux操作系统模块内核.pptx
《Linux操作系统模块内核.pptx》由会员分享,可在线阅读,更多相关《Linux操作系统模块内核.pptx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Acegene IT Co.Ltd.1内容提要1 软件安装与配置2 开机和关机3 系统服务4 内核管理5 模块管理6 核心参数第1页/共46页Acegene IT Co.Ltd.21 软件安装与配置本部分将讨论两种最常用的软件安装方法:使用Red Hat Package Manager软件包管理工具软件(RPM)和自行编译源代码。本部分中所有需要输入的命令都是以根用户的身份输入的。因此最好是直接以根用户身份登录进入系统。第2页/共46页Acegene IT Co.Ltd.3RPM Package ManagerManage software packagesInstall,upgrade,re
2、move,verify,query,buildPackage files referred to as RPMsDistributed by the vendorInclude files to be installed plus some install scriptsSource RPMs contain the source codeBinary RPMs contain the pre-built binariesChoose the highest architecture the machine can usee.g.,i686,i586,i486,i386 (uname-m)第3
3、页/共46页Acegene IT Co.Ltd.41 Red Hat Package Manager一些可以获得到rpm软件的站点rpm的老家第4页/共46页Acegene IT Co.Ltd.51 安装新的软件包普通安装:升级软件:强行安装:#rpm-i-force-nodeps 其他参数-h 使用符号“#”指示安装进度,与-v参数一起使用时显示效果更好-v 告诉RPM报告每一步操作的情况-test 这个参数并不进行真正的安装;它只是用来检查安装能否成功地完成。用于检查依赖关系是否安全。-percent 显示已完成的百分比指示安装进度。如果从另外一个程序(比如某个Perl脚本程序)中来运行R
4、PM,并且想了解安装的进度时,这个参数就很方便。第5页/共46页Acegene IT Co.Ltd.61 查询软件包列出已经安装的全部软件包#rpm-qa#rpm-qa|grep-i name找出某个特定的文件到底是属于哪个软件包的#rpm-qf filename查出某个已经安装的软件包的功能#rpm-qi packagename查出软件包中的文件#rpm-qlp packagename其中的packagename是准备要了解其组成文件的软件包名称列出已经安装的软件包中的文件:#rpm ql 第6页/共46页Acegene IT Co.Ltd.71 反安装(清除)软件包RPM反安装(清除)软件
5、包#rpm-e packagename其中的packagename是rpm-qa命令清单中列出的软件包名称。第7页/共46页Acegene IT Co.Ltd.81 gnorpm工具那些喜欢使用GUI工具简化操作的人们可以使用gnorpm软件。虽然它是被设计运行于GNOME环境的,但在KDE环境中也运行得相当好。它可以完成通过命令行完成的全部操作,但是用户就不必费力记住那些命令行参数了。当然,这样做是要增加一些系统开销的,这也是命令行版本依然存在的原因。第8页/共46页Acegene IT Co.Ltd.9RPM BuildsBuilds consist of multiple phases:
6、Prep extracts and patches sourcesBuild make individual binariesInstall creates an install staging areaDoesnt install it for use on the local system!Additional actions come after Install phase:Create a source RPMCreate a binary RPM第9页/共46页Acegene IT Co.Ltd.10RPM Work AreaWork area is used for buildin
7、g RPMsLocation depends on vendor:Red Hat:/usr/src/redhatUnitedLinux:/usr/src/packagesDirectory structure contents:SPECS RPM spec fileSOURCES source archives and patchesBUILD extracted source,objects,binariesRPMS generated binary RPMsSRPMS generated source RPMs第10页/共46页Acegene IT Co.Ltd.11RPM Build P
8、rocedureFirst,install source RPMPopulates SPECS and SOURCESRun build phasesPopulates BUILD and creates staging areaGenerate binary and/or source RPMsPopulates RPMS and SRPMS,respectivelyClean up the build areaInstall the new binary RPM if desired第11页/共46页Acegene IT Co.Ltd.12RPM Build ExampleAll in o
9、ne go:Step-by-step:#cd/usr/src/redhat/SPECS#rpm ba stat.spec clean第12页/共46页Acegene IT Co.Ltd.132 开机和关机2.1 系统引导2.2 启动文件2.3 内核加载2.4 init进程第13页/共46页Acegene IT Co.Ltd.142.1 启动引导-Boot LoadersGrubNew and improved boot loaderNot necessary to rerun after config changesGrub Configuration default=0timeout=10t
10、itle Red Hat Ent Linux AS(2.4.21-9.EL)root(hd0,0)kernel/boot/vmlinuz-2.4.21-9.EL root=LABEL=/LILOOriginal Linux boot loaderMust run/sbin/lilo after any change to lilo.conf or binary images(/boot/*)第14页/共46页Acegene IT Co.Ltd.152.2 Boot FilesKernel binary:IA-32(compressed):/boot/vmlinuz-$LABELOther ar
11、chitectures:/boot/vmlinux-$LABELinitrd images:/boot/initrd-$LABELSystem mapfile:/boot/System.map-$LABELBy convention kernel binary,initrd and system mapfile should share the same$LABEL第15页/共46页Acegene IT Co.Ltd.162.2 Initrd ImagesKernel cant mount root fs until appropriate disk drivers are loaded(ex
12、cept IDE)Initrd is loaded into memory by Grub/LILOContains drivers needed to mount real root fsInitrd must be rebuilt if a disk driver changesTo rebuild:RH:Use/sbin/mkinitrdSUSE:Use/sbin/mk_initrd第16页/共46页Acegene IT Co.Ltd.172.3 开机引导的步骤加载内核 内核就必须完整地加载到可用RAM的第一个兆字节之内。为了实现这个目的,内核是被压缩了的。这个文件的头部包含着必要的代码
13、,先设置CPU进入安全模式(以此解除内存限制)再对内核的剩余部分进行解压缩。执行内核 内核在内存中解压缩之后,它就可以开始运行了一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。内核就能够挂装根文件系统,内核挂装了根文件系统之后,启动并运行一个叫做init的程序。第17页/共46页Acegene IT Co.Ltd.182.4 开机引导的步骤init进程是所有进程的发起者和控制者。init是第一个运行的进程,init的进程编号永远是1。如果init出现问题,系统随之垮掉。init进程有两个作用:扮演终极父进程的角色。失去了父进程的子进程就都会以init作为它们的父进程。快
14、速执行一下ps-af 命令可以列出许多父进程ID(parent process ID,PPID)为1的进程来。特定运行级别(runlevel)时运行相应的程序,init读取配置文件/etc/inittab,决定启动的运行级别(runlevel)。缺省的运行级别取决于配置文件/etc/inittab id:3:initdefault:Run Level Description6543210RebootGUI(Unused)MultiUserNo NetworkSingle UserHalt第18页/共46页Acegene IT Co.Ltd.192.4 开机引导的步骤命令脚本程序执行 执行脚本在
15、各个运行级别的子目录中/etc/rcRUNLEVEL.d 都建立有到子目录中的符号链接。但是这些符号链接并不使用命令脚本程序在子目录中原来的名字,如果命令脚本程序是用来启动一个服务的,其符号链接的名字就以字母S打头;如果命令脚本程序是用来关闭一个服务的,其符号链接的名字就以字母K打头运行级别3和5中,在字母S后面使用了数字99,这就保证了这个命令脚本程序将作为引导过程的组成部分,其最后阶段被执行。第19页/共46页Acegene IT Co.Ltd.202.4 编写自己的rc命令脚本程序有两种方法可以用来实现修改开机或者关机命令脚本的目的:如果所做的修改只在引导开机的时候起作用,并且改动不大的
16、话,可以考虑简单地编辑一下脚本。这个命令脚本程序是在引导过程的最后一步被执行的。子目录中添加一个命令脚本程序适合修改比较细致,或者还要求关闭进程的操作必须使之明确地停止运行这个命令脚本程序必须可以接受start和stop参数并完成相应的操作。第20页/共46页Acegene IT Co.Ltd.213 系统服务管理用于在激活或停用启动时的服务会修改 到 的(符号联接symbolic links)配置服务 chkconfigchkconfig-list chkconfig-level 2345 service on|off 服务管理 serviceservice servicename star
17、t|stop|restart第21页/共46页Acegene IT Co.Ltd.22使用 chkconfig#See where sendmail is runningchkconfig-list sendmailsendmail 0:off 1:off 2:off 3:on 4:off 5:on 6:off#Turn off sendmail at levels 3&5#too many spammers out there!chkconfig-level 35 sendmail off第22页/共46页Acegene IT Co.Ltd.234 内核4.1 核心服务4.2 内核编译和安装
18、4.3 模块加载卸载第23页/共46页Acegene IT Co.Ltd.244.1 核心级系统服务核心系统服务:init、inetd、syslog和cron。本部分将对每一个核心系统服务、相应的配置文件以及推荐的应用方式(如果有的话)逐个进行介绍。第24页/共46页Acegene IT Co.Ltd.254.2 安装新内核Distributed by vendors in binary RPM formatUnitedLinux:?RPM contents:/boot/vmlinuz-$LABEL/boot/System.map-$LABEL/lib/module/$LABEL/RPM sc
19、ript generates a new initrd-$LABEL and automatically adds a Grub entryIf using LILO instead of Grub,then add lilo.conf entry manually and re-run/sbin/lilo第25页/共46页Acegene IT Co.Ltd.264.2 编译或者不编译内核的原因编译的原因运行一个程序,但是操作系统不支持该程序需要的功能。某个用户需要的内核功能比如说用户的机器中装有1GB到2GB容量之间的RAM系统内存,只能重新编译经过改动的内核才能够激活它。用户希望对内核进行
20、优化。内核升级(驱动、BUG、意愿、功能、安全、有时间进行升级)为什么不编译如果只是想给内核加上很少数量的功能的话,就没有必要进行编译编译内核可能会遇到的困难:面对众多的选项第26页/共46页Acegene IT Co.Ltd.27确定内核版本uname r确定内核是测试版还是正式版按照下面的方法确定内核是测试版还是正式版:1)忽略句号”.”前的第一个数字。2)查看紧跟在句号”.”后面的第二个数字。在实验性版本中,紧跟在第一个句号后面的第一个数字是一个奇数。在成熟版本中,紧跟在第一个句号后面的第一个数字是一个偶数。举例来说,内核版本是成熟版本,而版本是实验性版本4.2 编译(或升级)内核第27
21、页/共46页Acegene IT Co.Ltd.284.2 为内核源代码打补丁内核经常需要小规模地升级。每次升级修复一个特定的bug,增加一个新的驱动程序或者功能,或者实现其他任务。1)下载主版本的源代码和升级到新版本需要的每一个补丁的源代码。2)使用c d命令把路径切换到/usr/src目录。3)使用l s命令列出目录中的内容清单。如果其中有一个/usr/src/linux-version-ext目录已经存在的话,一般情况这就是正在已经运行的内核源代码。4)输入“mkdir linux-newversion-ext”命令建立一个新的源代码目录。5)把下载的源代码和补丁都拷贝到这个目录中。6)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 操作系统 模块 内核
限制150内