-
Linux kernel
单内核体系设计、但充分借鉴了微内核设计体系的优点,为内核引入模块化机制。
内核组成部分:
kernel:内核核心,一般为bzImage,通常在/boot目录下,名称为vmlinuz-VERSION-RELEASE
kernel object:内核对象,一般放置于/lib/modules/VERSION-RELEASE/
[ ]:N
[M]:M
[*]:Y
辅助文件:ramdisk
initrd
initramfs -
运行中的内核:
uname命令:uname - print system information
uname [OPTION]…
-n:显示节点名称
-r:显示VERSION-RELEASE -
模块:
-
lsmod命令:显示由核心已经装载的内核模块,显示的内容来自于:/proc/modules文件
-
modinfo命令;显示模块的详细描述信息
moinfo [ -k kernel ] [ modulename|fielname… ]
-n 只显示模块文件
-p 显示模块参数
-a author
-d description
-l license -
modprobe命令:
装载或卸载内核模块
modprobe [ -C config-file ] [ modulename ] [ module parame-ters… ]
配置文件:/etc/modprobe.conf,/etc/modprobe.d/*.conf
modprobe [ -r ] modulename… -
depmod命令:内核模块依赖关系文件及系统信息映射文件的生成工具
-
装载或卸载内核模块
insmod命令:insmod [ filename ] [ module options… ]
rmmod rmmod [ modulename ] -
proc目录:
内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出
参数:
只读:输出信息
可写:可接受用户指定新值来实现对内核某功能或特性的配置/proc/sys
1sysctl命令用于查看或设定此目录中诸多参数
sysctl -w path.to.parameter=VALUE
sysctl -w kernel.hostname=mail.magedu.com
2echo命令通过重定向的方式也可以修改大多数参数的值
echo “www.magedu.com” > /proc/sys/kernel/hostname -
sysctl命令:
配置文件:/etc/sysctl.conf
1设置某参数:sysctl -w parameter=VALUE
2通过读取配置文件设置参数
sysctl -p [/path/to/conf_file]
内核中的路由转发:/proc/sys/net/ipv4/ip_forward
常用的几个参数:
net.ipv4.ip_forward
vm.drop_caches
kernel.hostname -
/sys目录
sysfs:输出内核识别出的各硬件设备的相关属性信息,也有内核对硬件特性的设定信息,有些参数是可以修改的,用于调整硬件工作特性
udev通过此路径下的输出的信息动态为各设备创建所需要设备文件,udev是运行用户空间程序,专用工具:udevadmn,hotplug
udev为设备创建设备文件时,会读取其事先定义好的规则文件,一般在/etc/udev/rules.d及/usr/lib/udev/rules.d目录下 -
ramdisk文件的制作:
1mkinitrd命令
为当前正在使用的内核重新制作ramdisk文件
mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
2dracut命令:
为当前正在使用的内核重新制作ramdisk文件
dracut /boot/initramfs-¥(uname -r).img $(uname -r) -
编译内核:
前提:1准备好开发环境
2获取目标主机上硬件设备的相关信息
3获取目标主机系统功能的相关信息,例如要启用的文件系统
4获取内核
准备好开发环境:
包组(centos 6):
server platform development
development tools
目标主机硬件设备相关信息:
CPU:cat /proc/cpuinfo
x86info -a
lscpu
PCI设备:
lspci
-v
-vv
或lsusb
-v
-vv
或lsblk
了解全部硬件设备信息
hal-device
简单依据模板文件的制作过程:
tar xf linux-3.10.67.tar.xz -C /usr/src
cd /usr/src
Ln -sv Linux-3.10.67 Linux
cd Linux
cp /boot/config-$(uname -r) ./.config
make menuconfig
screen
make -j #
make modules_install
make install
重启系统,并测试使用新内核
马哥Linux学习笔记13-4Linux内核管理初步
最新推荐文章于 2019-03-20 22:10:59 发布