《详解 Linux 系统内核.docx》由会员分享,可在线阅读,更多相关《详解 Linux 系统内核.docx(19页珍藏版)》请在第一文库网上搜索。
1、详解1inux系统内核1inux内核是一种开源的类Unix操作系统宏内核。1inux内核是1inux操作系统的主要组件,也是计算机硬件与其进程之间的核心接口。它负责两者之间的通信,还要尽可能高效地管理资源。之所以称为内核,是因为它在操作系统中就像果实硬壳中的种子一样,并且控制着硬件的所有主要功能。内核的用途主要有以下4项工作: 内存管理:追踪记录有多少内存存储了什么以及存储在哪里 进程管理:确定那些进程可以使用中央处理器、何时使用以及持续多长时间 设备驱动程序:充当硬件与进程之间的调解程序/解释程序 系统调用和安全防护:从流程接受服务请求在正确实施的情况下,内核对于用户是不可见的,它在自己的小
2、世界(称为内核空间)中工作,并从中分配内存和跟踪所有内容的存储位置。用户所看到的内容则被称为用户空间。这些应用通过系统调用接口(SCI)与内核进行交互。functions1ayers1inuxkerne1maomememorBOryyaccessstoragefi1s&directoriesccssi*networkingsocketsaccess/*.MI-humaninterfacevirtua1bridgessystemprocessingsysteminterfacesHIchardevicesprocessesVirtua1DvGMode1securityprotoco1sgener
3、icHWccssinterruptcontextCPUspecificrtwocingstoragedvicsndbususerspaceinterfaces.systemrunfunctions/fS2nchroniFT*C!Schedu1er/p,CchtA11ocatordassdriversphysica1memoryoperationshardwareinterfacesCS1imemoryMM1dhkcontro11ersSCIMMIAntworfccontro11ersusN=不编译进内核 M=M=编译为模块文件 *=Y=编译进内核辅助文件(ramdisk) initrd ini
4、tramfs2.内核模块2.1 uname命令使用格式 unameOPTION.参数解释 -n显示节点名称 -r显示VERSION-RE1EASE -s内核名称 -v内核版本 -n节点名 -m硬件名称 -i硬件平台 -P处理器类型 -O操作系统u1ySee7168i68i38GN1Jnd2. 2Ismod命令显示由核心已经装载的内核模块命令定义显示的内容来自于:procmodu1es文件。使用ISmOC1命令时,常会采用类似ISmoC1grep-iext4这样的命令来查询系统是否加载了某些模块。二:.,二.孑一;1,()()(Uj(XtI339(SI22-1.i686fci2. 4modpro
5、be命令装载或卸载内核模块命令定义配置文件 etcmodprobe.conf etcmodprobe.d*.conf解决依赖_n()(M】($()(km()(M11、“si)川川)mmkerne1modu1es,depmodu1es,isapnp门川)门一:h-门川iSSw,蜉modu1es,a1iasmodu1es.dep.binmodu1es,modesettingmomodu1es.a1ias.binmodu1es,drmmodu1es,networkingm语法 modprobe-c modprobe-1-tdirnamewi1dcard modprobe-r-v-n-imoduIen
6、ame选项 -vO显示程序在干什么,通常在出问题的情况下,modprobe才显示信息 -CO重载,默认配置文件(etcmodprobe.conf或etcmodprobe.d) -co输出配置文件并退出 -no可以和-V选项一起使用,调试非常有用 -io该选项会使得modprobe忽略配置文件中的,在命令行上输入的insta11和remove qo一般modprobe删除或插入一个模块时,若没有找到会提示错误。使用该选项,会忽略指定的模块,并不提示任何错误信息。-rO该选项会导致modprobe去删除,而不是插入一个模块o通常没有没有理由去删除内核模块,除非是一些有bug的模块 -fo使用该选项
7、是比较危险的o和同时使用-force-Vermagic,-force-modversion一样 -1O列出所有模块 -ao插入所有命令行中的模块 -to强制-1显示dirname中的模块-So错误信息写入sys1og2.5depmod命令内核模块依赖关系文件及系统信息映射文件的生成工具语法odepmod-adeisvV-m文件he1p模块名称参数o-a分析所有可用的模块o-d执行排错模式o-e输出无法参照的符号o-i不检查符号表的版本o-m文件使用指定的符号表文件o-S在系统记录中记录错误O-V执行时显示详细的信息o-V显示版本信息o-he1p显示帮助2. 6insmod和rmmod命令装载或
8、卸载内核模块O不解决依赖关系,需要自己手动卸载insmod命令O向1inux内核中插入一个模块oinsmod是一个向内核插入模块的小程序o大多数用户使用modprobe因为它比较智能化oinsmodfi1enamemodu1eoptions.rnod命令O命令解析 删除内核中的一模块 rmmod是一个可以从内核中删除模块的小程序,大多数用户使用modprobe-去删除模块o语法格式 rmmodmoduIenameo参数选项 -fo除非编译内核时configmodu1e,force_un1oad被设置该命令才有效果,否则没效果O用该选项可以删除正在被使用的模块,设计为不能删除的模块,或者标记为u
9、nsafe的模块 -WOrmmod拒绝删除正在被使用的模块o使用该选项后,指定的模块会被孤立起来,直到不被使用 -SO将错误信息写入sys1og,而不是标准错误(Stde1T)3. /proc目录内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出。111732229855354760973dyinfofsIoCkSIinterruptsmdstatS1abinfo,IPSiomemmeminfoSoftirqS,ioportsmiscstatfoirqmodu1esswapIkaI1syinsmounissYs.Ikcoremtdsysrq-BSkeysnetSySViPCBkey-userspagetypeinfot.imer1ist.塞蹩,9IerkmsgPartitionStimejstats,majjiskpagecounscheddebug_ttyB1171212985334466953.1 sysct1命令语法格式 SySCtI(选项)(参数)命令参数 -n打印值时不打印关键字 -e忽略未知关键字错误 -N仅打印名称 -W当改变sysct1设置时使用此项 -P从配置文件e