第六十六讲——linux启动(内核) 本文共有18345个字,关键词: 我们从之前讲过的只是可以知道,内核是由两部分组成的: 核心:位于/boot目录下,/boot/vmlinuz-version(版本号) 内核模块(KO):/lib/modules/version/以版本号命令的目录 内核的设计有两种风格: 单内核:模块化设计(采用了微内核的思想) 微内核 模块化设计的好处是缩小内核的体积,在需要时才将模块载入内核,装载内核的命令: insmode modprobe 内核版本的区分: 主版本号.次版本号.修正号 次版本号为奇数时为测试版,此版本为偶数时为稳定版 但是在2.6.*以后的区分不同。 每一个版本出来后会有两个分支,稳定版本的编号为2.6.*.*多一个次修正号,为了方便记忆这么理解。 测试版的编号为2.6.*+1-rc* 如果测试版的编号从2.6.*+1-rc.1----2.6.*+1-rc.5如果rc..5稳定以后,则发行下一个版本,下一个版本再分为两个分支。 我们在服务器上应当选择稳定版,我们可以使用uname –r查看内核的版本。 内核虽是运行在内核空间,但是我们用户是可以跟内核打交道的,用户空间访问和监控内核的方式是通过两个目录完成。 /proc /sys 用户空间通过执行一些命令进行修改/proc、/sys目录下的某个文件来完成的。 /proc、/sys目录下的文件通常为内核中某个参数的映射,对于/proc目录来说,目录下的大多数文件为只读,对于/sys目录来说,/sys目录下的大多数文件是可以读写的。这就意味着我们可以修改文件中的内容,以达到修改内核运行特性。但是对于这类文件我们不能使用vim编辑器,而是使用echo重定向的方式写入。 设定内核参数的方法: echo 1 >/proc/sys/vm/drop_caches清空缓冲和缓存。 sysctl –w vm.drop_caches=1 sysctl –w *=value(参数) sysctl –w所指定的对象在/proc/sys目录下,且文件与文件父目录之间使用点隔开,这两种方式能立即生效,但是不能永久有效,需要永久有效需要写入配置文件。 我们可以将需要修改的参数写进/etc/sysctl.conf文件中,语句的格式类似sysctl命令,为sysctl –w所指定的部分。 即vm.drop_caches=1的格式 sysctl –w默认指定的是/proc/sys/目录下的文件,命令中目录使用点‘.’作为分隔符。 sysctl –p 通知内核重新读取/etc/sysctl.conf配置文件。 sysctl –a显示所有内核参数,及其值,这些参数并不是所有的都能够修改,而且每个参数的值和范围不一样。 /proc/sys/net/ipv4/ip_forward 当这个参数启用(为1时),如果本机有两块网卡,当一块网卡出现ping不通的情况时,会将数据通过另一张网卡进行发送。 也就是说/proc/sys/net/ipv4/ip_forward的值为1时,本机充当网关,将故障网卡的信息进行收发。 我们来说一说调优的几个参数,调优其实就是通过/proc、/sys目录下的内核参数映射文件来进行调整参数,调优都是通过访问这些接口完成的。 /proc/sys/kernel/hostname 修改主机名 /proc/sys/vm/drop_caches 清空缓存 /proc/sys/net/ipv4/ip_forward 是否允许本机充当路由。 内核的模块管理: #lsmod 查看,显示已经装载的模块,分为三列:moudle(模块名称) size(模块大小) used by(被调用了几次,由谁调用) #modprobe MOD_NAME:装载模块 #modprobe –r MOD_NAME:卸载模块(从内核上拆除),手动实现内核模块的装载,卸载。 #modinfo MOD_NAME:查看内核模块信息,其中有一列为depends(依赖关系,所依赖的模块名称) #insmod /PATH/TO/MODULE_NAME 装载内核模块,使用insmod装载模块时,必须要指定文件路径。 #rmmod MOD_NAME 卸载模块,卸载模块时无需指定路径 #depmod /PATH/TO/MODULES_DIR 指定模块的存放路径,并生成模块间的依赖关系,生成后会保存在对应目录下,使用不多。 如果有一个硬件设备没有驱动,则需要我们到官网去下载源代码手动编译成ko的模块,放在/lib/modules/下,且内核模块要与内核完全匹配,否则不能运行。即2.6.32-1的内核只能在2.6.32-1上编译驱动。 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 给自己讲linux 2017-02-04 评论 1752 次浏览