Linux的组成:
核心:/boot/vmlinuz-version
内核模块(ko)
2.6.17–>2.6.18-rc1–>…–>2.6.18-rc5–>2.6.18
2.6.17–>2.6.18.1–>…–>2.6.18.5–>2.6.18
装载模块:
insmod
modprobe
用户空间访问、监控内核的方式:
/proc , /sys
伪文件系统:
/proc:大部分内容是不可写的。而:
/proc/sys:此目录中的文件很多是可读写的
/sys/:某些文件可读写
设定内核参数值得方法:
echo VALUE > /proc/sys/TO/SOMEFILE
sysctl -w (/proc/sys)PATH.SOMEFILE=value
(/proc/sys(这个目可省略,因为这个命令就是对这个目录下的文件进行修改))
注意:
立即生效,但不会永久生效。
永久生效,但不能立即生效:/etc/sysctl.conf
sysctl -p : 使其立即生效
sysctl -a : 显示所有内核参数及其值
1 | #############立即生效,但不会永久生效################# |
内核模块管理:
lsmod:列出当前系统上使用的模块
modprobe MOD_NAME:装载模块
modprobe -r MOD_NAME:卸载模块
modinfo MOD_NAME:查看模块的具体信息
insmod /PATH/TO/MOD_FILE:必须指定模块路径
rmmod MOD_NAME
depmod /PATH/TO/MODULES_DIR(用的不多)
例如:
modinfo ext4
可以看到存放位置(filename),授权协议(GPL),描述(description),所依赖的模块(depends)…
例如ext4依赖mbcache,jbd2,
modinfo mbcache jbd2
可以看到描述以及不依赖于其他的模块。。
内核中的功能除了核心功能之外,在编译时,大多数功能都有三种选择:
1、不使用此功能
2、编译成内核模块
3、编译进内核
make gconfig:Gnome桌面环境使用,需要装Gnome开发库,Gnome Software Development
make Kconfig:KDE桌面环境使用,需要装KDE开发库
如何手动编译内核
不要大幅度版本升级,可能会有不兼容的现象
1
2
3
4
5
6
7#yum groupinstall "Development Tools"
#tar xf linux-2.6.32.65.tar.xz -C /usr/src
#ln -sv linux-2.6.32.65 linux
#make menuconfig
#make
#make modules_install
#make install
(说明,在make menuconfig保存后,会在/usr/src/linux生成一个.config文件,
在编译的时候就是基于.config进行编译的。所以为了编译少出错,可以参考
发行版商在编译的时候的编译选项,叫/boot/config-version,可以
cp /boot/config-version /usr/src/linux/.config,然后打开make menuconfig再进行选择,
就会大大减小出错的概率。)
1 | #cp /boot/config-version /usr/src/linux/.config |
开机选择内核即可。
二次编译时清理,清理前,如果有需要,要备份配置文件.config:
make clean
make mrproper
远程编译的时候建议使用screen命令,即使断开了,会在后台继续执行:
screen:
screen -ls:显示已经建立的屏幕
screen:直接打开一个新的屏幕
Ctrl +a,d:拆除屏幕
screen -r ID:还原回某屏幕
1 | fdisk -l /dev/hda |