《详解Linux系统内核.docx》由会员分享,可在线阅读,更多相关《详解Linux系统内核.docx(21页珍藏版)》请在第一文库网上搜索。
1、详解Linux系统内核Linux内核是一种开源的类Unix操作系统宏内核。Linux内核是Linux操作系统的主要组件,也是计算机硬件与其进程之间 的核心接口。它负责两者之间的通信,还要尽可能高效地管理资源。之所以称 为内核,是因为它在操作系统中就像果实硬壳中的种子一样,并且控制着硬件 的所有主要功能。内核的用途主要有以下4项工作: 内存管理:追踪记录有多少内存存储了什么以及存储在哪里 进程管理:确定那些进程可以使用中央处理器、何时使用以及持续多长 时间 设备驱动程序:充当硬件与进程之间的调解程序/解释程序 系统调用和安全防护:从流程接受服务请求 在正确实施的情况下,内核对于用户是不可见的,它
2、在自己的小世界(称为内核 空间)中工作,并从中分配内存和跟踪所有内容的存储位置。用户所看到的内容则被称为用户空间。这些应用通过系统调用接口(SCI)与内核进行交互。functions layersLinux kernelmaome memorBOry y accessstoragefils & directories ccss i*networkingsockets access/*.MI-human interfacevirtualbridgessystemprocessingsystem interfacesHI char devicesprocessesVirtualDvG Models
3、ecurityprotocols generic HW ccss interrupt contextCPU specificrtwocing storagedvics nd bususer space interfaces.system run functions/ f S2nchroni FT *C !Scheduler/ p,CchtAllocator dass driversphysical memory operationshardware interfacesCS1imemoryMMldhk controllers SCIM MIAntworfc controllersus N =不
4、编译进内核 M = M =编译为模块文件 * = Y =编译进内核辅助文件(ramdisk) initrd initramfs2.内核模块2.1 uname 命令使用格式 uname OPTION.参数解释 -n显示节点名称 -r 显示 VERSION-RELEASE -s内核名称 -v内核版本 -n节点名 -m硬件名称 -i硬件平台 -P处理器类型 -O操作系统u1ySee7168i68i38GNlJnd2. 2 Ismod 命令显示由核心已经装载的内核模块 命令定义显示的内容来自于:procmodules文件。使用ISmOCl命令时,常会采用类似ISmoCl grep -i ext4这样的
5、 命令来查询系统是否加载了某些模块。二:., 二.孑 一 ;1 , ()()(Uj(Xt I 339(SI2 2 - l.i686fci2. 4 modprobe 命令装载或卸载内核模块命令定义配置文件 etcmodprobe. conf etcmodprobe. d*. conf解决依赖 modprobe需要一个最新的modules. dep文件,可以用depmod来 生成-该文件列出了每一个模块需要的其他模块,modprobe使用这个去自动添加或删除模块的依赖JUildmodules, blockmodules, ieeel39IniHp modules, ofmapmcduks symb
6、ol s. bin weak-updal。Sl?xtramodules, ccwmapmodules, inputmap_ n()(M 】($ ()(km()(M11、“si)川川)mmkernelmodules, depmodules, isapnp门川)门一:h -门川iSSw,蜉modules, aliasmodules.dep.bin modules, modesetting momodules.alias.bin modules, drmmodules, networking m语法 modprobe -c modprobe -1 -t dirname wildcard modpro
7、be -r -v -n -i moduIename 选项 -vO显示程序在干什么,通常在出问题的情况下,modprobe才显示 信息 -CO重载,默认配置文件(etcmodprobe. conf 或 etcmodprobe. d) -co输出配置文件并退出 -no可以和-V选项一起使用,调试非常有用 -io该选项会使得modprobe忽略配置文件中的,在命令行上输入 的 install 和 remove qo 一般modprobe删除或插入一个模块时,若没有找到会提示错 误。使用该选项,会忽略指定的模块,并不提示任何错误信息。-rO该选项会导致modprobe去删除,而不是插入一个模块o通常没
8、有没有理由去删除内核模块,除非是一些有bug的模块 -fo使用该选项是比较危险的o 和同时使用 - force-Vermagic, - force-modversion 一样 -1O列出所有模块 -ao插入所有命令行中的模块 -to强制-1显示dir name中的模块 -So错误信息写入syslog2. 5 depmod 命令内核模块依赖关系文件及系统信息映射文件的生成工具语法o depmod -adeisvV -m文件help模块名称参数o -a分析所有可用的模块o -d执行排错模式o -e输出无法参照的符号o -i不检查符号表的版本o -m文件 使用指定的符号表文件o -S在系统记录中记录错误O -V执行时显示详细的信息o -V显示版本信息o -help显示帮助2. 6 insmod 和 rmmod 命令装载或卸载内核模块O不解决依赖关系,需要自己手动卸载insmod命令