Linux系统启动流程及内核编译(2)
1.内核设计:有单内核和微内核之分
linux属于单内核的模块化设计
系统内核核心路径:/boot/vmlinuz-版本号
内核模块路径: /lib/modules/版本号/
linux分为内核空间和用户空间
而用户空间通过访问和监控内核:路径在/proc/和/sys/两个伪文件系统
2.伪文件系统/proc/sys和/sys/有些目录中文件是可读或可写的
设定内核参数值的方法:
2.1.能立即生效,但重启系统设定无效
2.1.1.echo 值 > /proc/sys/TO/SOMEFILE
2.1.2.sysctl -w kernel.hostname=willow.com.tw
3.通过修改/etc/sysctl.conf配置文件可永久有效
但执行如下命令可立即生效:
sysctl -p 让内核重新加载/etc/sysctl.conf配置文件
sysctl -a: 显示所有内核参数及其值
4.内核模块管理:
lsmod: 查看
modprobe 模块名称:装载某模块
modprobe -r 模块名称: 卸载某模块
modinfo 模块名称: 查看模块的具体信息
insmod 模块路径名称.ko: 装载模块
rmmod 模块名称:卸载某模块
depmod 模块目录:分析可载入模块的相依性
5.手动编译内核:
提前安装"Development Tools"和"Development Libraries"和"Server Platform Development"
5.1:选择或取消指定的模块
make gconfig: Gnome桌面环境使用,需要安装图形开发库组:GNOME Software Development
主要包确认安装:gtk+ gtk-devel libglade2-devel
make kconfig: KDE桌面环境使用, 需要安装图形开发库组; KDE Software Development
make xconfig:Gnome桌面环境使用
主要包确认安装:qt qt-devel
make menuconfig:文本环境下使用
主要包确认安装:ncusres ncurse-devel
5.2:编译
make
make modules(可选)
5.3:将编译的模块复制到指定的目录和文件中或修改文件
make modules_install 复制模块至/lib/modules/目录下
make install 复制启动系统内核和镜像文件等(含编辑grub.conf 文件)
5.4.如果编译出现报错或想二次编译
需清理时但清理前,如有需要,请备份配置文件.config:
make clean 删除大多数编译的文件,但不删除.config文件
make mrproper 删除所有编译的文件,包括.config文件
5.5:制作initrd-XXX-XXX.img系统镜像文件
mkinitrd initrd文件路径 内核版本号
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
dracut /boot/initrd-`uname -r`.img `uname -r` (redhat6新工具)
6.screen命令:
screen: 直接打开一个新的屏幕
Ctrl+a, d: 拆除屏幕
screen -ls: 显示已经建立的屏幕及ID号
screen -r ID号: 还原指定的屏幕
exit: 退出
本文出自 “夏维柳” 博客,请务必保留此出处http://willow.blog.51cto.com/6574604/1768872
原文地址:http://willow.blog.51cto.com/6574604/1768872