内核设计风格:
redhat,suse
核心:动态加载 内核模块 在目录/boot/vmlinuz-版本号
内核:/lib/modules/"内核版本号命令的目录"/
vmlinuz-2.6.32
/lib/modules/2.6.32/
单内核:linux
核心:ko (kernel object)
微内核:windows,solaris(线程)
kernel初始化的过程:
1、设备探测
2、驱动初始化(可能会从initrd (initramfs)文件中装载驱动模块)
3、以只读挂载根文件系统
4、装载第一个进程init(PID:1)
用户控件访问、监控内核的方式:
/proc, /sys
伪文件系统
/proc/sys:此目录中的文件很多事可读写的
/sys/:某些文件可写
设定内核参数值的方法:
1、通过echo VALUE > /proc/sys/TO/SOMEFILE 通过echo输入重定向往内核文件中写入参数
2、sysctl -w kernel.hostname="xuelinux" 修改主机名
以上两种方法能立即生效,但是重启后失效
如需永久有效,但不能立即生效,需修改/etc/sysctl.conf配置文件
修改文件完成之后,执行如下命令可以立即生效:
sysctl -p
sysctl -a:显示所有内核参数及其值
内核模块管理:
lsmod:查看所有内核模块
modprobe MOD_NAME:装载某模块 MOD_NAME模块名 Usage: modprobe floppy
modprobe -r MOD_NAME: 卸载某模块 Usage: modprobe -r floppy
modinfo MOD_NAME: 查看某模块的具体信息 Usage: modinfo floppy
insmod /PATH/TO/MODULE_FILE: 装载模块 要指定模块的具体文件路径
rmmod MOD_NAME: 移除某模块
depmod /PATH/TO/MODILES_DIR: 生成模块的依赖文件在目录中
内核中的功能除了核心功能之外,在编译是,大多功能都有三种选择:
1、不使用此功能;
2、编译成内核模块;
3、编译进内核;
screen命令:
screen -ls: 显示已经建立的屏幕
screen: 直接打开一个新的屏幕
Ctrl+a,再按d:拆除屏幕即把当前screen的屏幕放后面运行
screen -r ID:还原回某屏幕;
exit: 退出当前screen屏幕
*如何手动编译内核: uname -r查看内核版本
make gconfig: Gnome桌面环境中使用,需安装图形开发库
make kconfig: KDE桌面环境中使用,需安装图形开发库
make menuconfig:
首先下载内核文件,并解压到/usr/src目录中
[root@xuelinux ~]# ls 查看下载的内核压缩包是否存在
anaconda-ks.cfg install.log linux1.jpg 公共的 视频 文档 音乐
httpd-2.0.55 install.log.syslog linux-2.6.38.tar.bz2 模板 图片 下载 桌面
[root@xuelinux ~]# tar xf linux-2.6.38.tar.bz2 -C /usr/src/ 解压到指定目录/usr/src中
[root@xuelinux ~]# cd /usr/src 进入到该目录
[root@xuelinux src]# ls
debug kernels linux-2.6.38
[root@xuelinux src]# cd linux-2.6.38/ 进入到刚解压的内核目录中
[root@xuelinux linux-2.6.38]# ls
arch crypto fs Kbuild MAINTAINERS README security virt
block Documentation include Kconfig Makefile REPORTING-BUGS sound
COPYING drivers init kernel mm samples tools
CREDITS firmware ipc lib net scripts usr
[root@xuelinux linux-2.6.38]# make gconfig 进入到图形配置内核界面,对内核内的功能和设备进 行增加或者移除,选择需要的内核模块或功能
make 进行编译
make modules_install 先编译安装刚才图形界面定义的内核模块
make install 编译安装
模块安装位置:/lib/modules/KERNEL_VERSION/ KERNEL_VERSION 内核文件夹名称
二次编译时清理:清理前,如果有需要,因先备份配置文件.config;
make gconfig 进入到图形配置内核界面,对内核内的功能和设备进 行增加或者移除,选择需要的内核模块或功能
make clean 清理之前的编译缓存
make mrproper 清理之前的对.config文件做的修改
make 进行编译
make modules_install 先编译安装刚才图形界面定义的内核模块
make install 编译安装
重启就编译好了内核。
make编译安装时,默认为全部编译安装,可以按照以下选项进行选择编译安装,及在执行make时可以加入以下选项,进行编译:
1、只编译某子目录下的相关代码:
make arch/ 只编译核心代码
make drivers/net/ 只编译网络代码
2、只编译部分模块:
make M=drivers/net/
3、只编译某一模块:
make drivers/net/pcnet32.ko
4、将编译完成的结果放置于别的目录中:
make O=/tmp/kernel O:大写字母o