核心:/boot/vmlinuz-version
模块:.ko/lib/modules/version/
内核设计:
1、单内核:linux
模块化设计
2、微内核
装载模块:
insmod
modprobe
用户空间访问,监控内核的方式:
/proc
/sys
伪文件系统
/proc/sys/:该目录下文件很多是可读写
/sys/:某些文件也是可读写的
设定内核参数的方法
清除cache和buffer :
echo 1 >/proc/sys/vm/drop_caches | sysctl -w vm.drop_caches=1
sysctl -w kernel.hostname="www" //省略/proc/sys/
立即生效,重启无效。
永久有效,不能立即有效:
/etc/sysctl.conf
sysctl -p //通知内核重读/etc/sysctl.conf文件
sysctl -a //显示所有内核参数及其值
内核模块管理
lsmod:列出当前系统装载的模块名称、大小和被使用了几次
modprobe MOD_NAME:转载模块
modprobe -r MOD_NAME:卸载模块
modinfo:查看模块的具体信息
insmod /PATH/TOMOD_NAME:装载mod
rmmod MOD_NAME:移除mod
depmod /PATH/TO/MODFILE_DIR/:生成mod依赖关系文件,保存在同一目录中。
内核中的功能除了核心功能外,在编译时,大多功能有三种选择:
1、不使用此功能
2、编译成内核模块
3、编译进内核
如何编译内核(必须使用相同的内核版本编译)
yum groupinstall Development tools
Compatibility libraries
内核源码保存与/usr/src/目录下,tar时使用-C指定该目录,在该目录下创建软连接文件linux。
图形界面编译 make gconfig
安装图形开发库 kconfig
文本环境编译 make menuconfig
make
make modules_install
make install
screen命令:
screen -ls:显示已经建立的屏幕
ctrl+a,d :拆除屏幕
screen -r id:还原会某屏幕
exit:退出
二次编译时清理
make clean
make mrproper
手工创建initrd
一、 mkinitrd 文件路径 内核版本
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
gzip -d initrd.img.gz //解压缩initrd
cpio -id < ..initrd.img //展开归档
或
zcat /boot/initrd.img | cpio -id
二、 vi init
修改根路径
三、 重新生成initrd文件
find . |cpio -H newc --quiet -o |gzip >/boot/initrd.img
bash截取
FILE=/usr/local/src
echo ${FILE##*/}
src
echo ${FILE %#/*}
/usr/local
截取库文件
grep -o "/.*/lib\(64\)\{0,1\}/[^[:space:]]\{1,\}