Linux内核基本装载卸载
Linux由两部分组成:内核核心+内核模块
核心的命名通常是vmlinuz-VERSION-release,模块的放置于/lib/modules/VERSION-release/
一旦系统运行起来,内核将被加载进内存,查看运行中的内核基本信息
uname [OPTION]...
-r:内核的release号
-n:主机名
模块信息获取和管理
如果要了解运行中的内核所加载的模块
lsmod命令 #显示的信息来自于/proc/modules
内核模块详细信息
modinfo [-F field] [-k kernel] [modulename|filename...]
-F field: 仅显示指定字段的信息;
-n:显示文件路径;
-d:显示描述
-p:显示模块参数
内核模块装卸载
modprobe [-r] module_name
模块的动态装载:modprobe module_name #/etc/modprobe.conf给模块传递参数
动态卸载:modprobe -r module_name
模块依赖
/lib/modules/version-release/目录下有moudules.dep文件记载了模块间的依赖关系,并且此文件被编译成二进制格式(modules.dep.bin)使用,如果此文件损坏或丢失可以使用depmod命令重新生成(也可以生成/boot/system.map)
装卸载内核模块
insmod命令:insmod [filename] [module options...] 装载需完整路径
rmmod命令:rmmod [module_name] 卸载只需要模块名称
此方式需要自行解决模块间的依赖关系
/proc目录简介
把内核可配置参数信息和当前运行状态信息通过/proc伪文件系统
内核参数:可写,可接受用户指定一个“新值”来实现对内核某功能或特性的配置,一般位于/proc/sys,除此其他目录为只读信息
参数的修改方式:(1)sysctl命令管理内核参数。(2)echo重定向输出至文件
运行状态:只读,仅用于信息显示。如:此目录下数字命名的子目录为当前运行进程的信息
内核参数调整
(1) sysctl命令
专用于查看或设定/proc/sys目录下参数的值;
sysctl [options] [variable[=value]]
查看:
# sysctl -a 所有能够修改的内核参数
# sysctl variable
修改: sysctl -w variable=value
(2) 文件系统命令(cat, echo)
查看:cat /proc/sys/PATH/TO/SOME_KERNEL_FILE
设定:echo "VALUE" > /proc/sys/PATH/TO/SOME_KERNEL_FILE
注意:上述两种方式的设定仅当前运行内核有效,并不会永久生效,使用配置文件:/etc/sysctl.conf, /etc/sysctl.d/*.conf
并立即生效的方式:sysctl -p [/PATH/TO/CONFIG_FILE]
示例:
free –m 查看缓存占用的内存空间
/proc/sys/vm/drop_caches=1 回收buffers和cache的内存空间
/sys目录简介
内核用来输出已经识别硬件设备的属性,也有内核对硬件特性的可设置参数,某些参数修改可用于调整硬件设备工作特性。
/dev目录简介
此目录用于根据已有硬件设备输出设备文件,然而内核访问设备是直接通过驱动程序的,只有用户访问硬件设备的时候才需要通过设备文件,然而内核启动时探测出各个已存在的硬件信息是不会为之创建设备文件的。所以2.4内核之前是预先创建好各种硬件所有的设备文件,后来是当用户空间需要使用硬件设备时重新触发内核探测硬件,并把信息保留在/sys目录,udev通过读取此目录信息,来为已有的设备创建设备文件。
udev创建出来的设备文件命名都是驱动文件名,可以读取其事先定义好的规则文件,一般在/etc/udev/rules.d/目录下以及/usr/lib/udev/rules.d/目录,来重新为设备文件命名。
ramdisk文件的制作
(1) mkinitrd命令
为当前使用中的内核重新制作ramdisk文件,此命令也是调用dracut:
# mkinitrd [OPTION...] [<initrd-image>] <kernel-version>
--with=<module>:除了默认的模块之外需要装载至initramfs中的模块;
--preload=<module>:initramfs所提供的模块需要预先装载的模块;
示例: ~]# mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
(2) dracut命令
# dracut [OPTION...] [<image> [<kernel version>]]
示例: ~]# dracut /boot/initramfs-$(uname -r).img $(uname -r)
Linux内核基本装载卸载的更多相关文章
- linux内核分析 第七周 Linux内核如何装载和启动一个可执行程序
一.编译链接的过程和ELF可执行文件格式 vi hello.c gcc -E -o hello.cpp hello.c -m32 //预处理.c文件,预处理包括把include的文件包含进来以及宏替换 ...
- 20135202闫佳歆--week 7 Linux内核如何装载和启动一个可执行程序--实验及总结
week 7 实验:Linux内核如何装载和启动一个可执行程序 1.环境搭建: rm menu -rf git clone https://github.com/megnning/menu.git c ...
- 实验七:Linux内核如何装载和启动一个可执行程序
原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题目自拟,内容围绕对Linu ...
- 作业七:Linux内核如何装载和启动一个可执行程序
作业七:Linux内核如何装载和启动一个可执行程序 一.编译链接的过程和ELF可执行文件格式 可执行文件的创建——预处理.编译和链接 在object文件中有三种主要的类型. 一个可重定位(reloca ...
- Linux内核如何装载和启动一个可执行程序(转)
原文:http://www.cnblogs.com/petede/p/5351696.html 实验七:Linux内核如何装载和启动一个可执行程序 姓名:李冬辉 学号:20133201 注: 原创作品 ...
- Linux内核设计第七周学习总结 Linux内核如何装载和启动一个可执行程序
陈巧然原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-100002900 实验目的 使用gdb跟踪s ...
- Linux内核分析第七周学习笔记——Linux内核如何装载和启动一个可执行程序
Linux内核分析第七周学习笔记--Linux内核如何装载和启动一个可执行程序 zl + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study. ...
- 解析 Linux 内核可装载模块的版本检查机制
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/ 为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可 ...
- 20135323符运锦----第七周:Linux内核如何装载和启动一个可执行程序
可执行程序的装载 一.预处理.编译.链接和目标文件的格式 1.可执行程序是怎么得来的 ①编译器预处理 gcc -E -o XX.cpp XX.c (-m32)// 注:把include的文件包含进来, ...
随机推荐
- 查询最新记录的sql语句效率对比
在工作中,我们经常需要检索出最新条数据,能够实现该功能的sql语句很多,下面列举三个进行效率对比 本次实验的数据表中有55万条数据,以myql为例: 方式1: SELECT * FROM t_devi ...
- python大法好——Python XML解析
Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...
- js学习2
1.打开新窗体 -window.open([URL], [窗口名称], [参数字符串]) - 窗口名称: _blank:在新窗口显示目标网页 _self:在当前窗口显示目标网页 _top:框架网页中在 ...
- Swoft 容器使用
可以借助Swoft下的Bean类操作容器 示例: 将类绑定至容器 use Swoft\Bean\Annotation\Bean; /** * @Bean("imageLogic") ...
- 使用 nodeJs 开发微信公众号(上传图片)
在给用户发送消息中涉及到的素材(图片.视频.音频.文章等)需要事先传到微信服务器,然后获得媒体id(media_id),然后把 media_id 传递给用户 上传分上传临时素材(只保存三天)和上传永久 ...
- cobbler登录web界面时出现“Internal Server Error”
当进行cobbler配置后,并进行web登录时,出现错误: 先查看其日志位置 #cat /etc/httpd/conf.d/ssl.conf 在其中位置发现其错误的日志位置为/etc/httpd/lo ...
- json与csv的基础用与法
json库是处理json格式的python标准库 有两个过程: 编码(encoding):将python数据类型转换为json格式的过程 解码(decoding):从json格式中解析数据得到的pyt ...
- MySQL一般查询日志或者慢查询日志历史数据的清理
general log&slow query log 对于MySQL的一般查询日志和慢查询日志,开启比较简单,其中公用的一个参数是log_output,log_output控制着慢查询和一般查 ...
- Cacti性能优化和监控H3C交换机
1.一般使用spine比较多,spine是一个基于C语言的,非常快速的轮询引擎.它是默认的cmd.php轮询的可选替代 wget http://www.cacti.net/downloads/spin ...
- django的内置分页
本节内容 自定义一个简单的内置分页 Django内置分页 Django内置分页扩展(继承) 自定义内置组件 自定义一个简单的内置分页 先用django自己自定制一个简单的内置分页,大概掌握内置分页的底 ...