Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1004157
  • 博文数量: 195
  • 博客积分: 4890
  • 博客等级: 上校
  • 技术积分: 2221
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-09 15:34
文章分类

全部博文(195)

文章存档

2014年(1)

2013年(8)

2012年(22)

2011年(9)

2010年(54)

2009年(101)

我的朋友

分类: LINUX

2009-10-09 20:05:09

内核映象和变体
 
支持的架构:x86,x86/64,IA64/Itanium,PowerPC64,s390x
可用于x86的3个内核版本:
常规:一个或者多个处理器,但RAM只能是4G或者小于4G
PAE:多处理器,且可以支持高达64G RAM
Xen:虚拟化所需
 
内核总是安装在/boot/vmliunz-*中
 
提供不同内核版本的主要区别是:装入属性越多,占用的资源就越多.对于32位x86来说使用不同的内核有很大的区别.
默认情况下通常安装的是标准内核,它支持多个处理器,即我们了解的对称多处理器(Symmetric MultiProcessing,SMP)性能.对内存的支持限于4GB物理内存,但由于使用交换空间,虚拟内存可能会大些.每个处理器的内存限制为3GB.
超大内核最多支持64GB RAM,使用4/4内存片,这意味着进程和内核都可能使用多达4GB的物理内存.这就有话费的问题了,尽管所有用户的内核空间选项都要求重新分配地址空间,但这样会在很大程度上妨碍其性能.
Xen内核(比如Kernel-xen PRM软件包)包含为主机和客户操作系统以及管理程序启用了Xen的内核.Xen是一台虚拟机,可以很安全地根据其自身的沙箱(sandbox)定义域中运行多个操作系统.
 
内核模块
模块是小型,可根据需要装载或者卸载的内核扩展
可执行驱动程序,文件系统,防火墙及其它
位于/lib/modules/$(uname -r)/目录下
为特定的内核版本编译,以内核PRM的形式提供
可添加第三方模块
 
内核模块是内核代码的可选择部分,可在内核初始化后装载.对系统来说只有几个非常重要的模块,它们都直接包含在内核中.在引导时需要的动态模块可用grub装入初始内存盘(initrd).其它模块可在稍后根据需要下载,这些模块保存在/lib/modules/目录中
使用模块的几个理由:
减少内存使用:不需要的驱动程序不会占用内存
灵活性:模块可在系统安装后添加.这些模块通常被称为第三方驱动程序
最大化运行时间:模块可在不重启的状态下无限次装载和卸载
 
内核模块工具
lsmod命令可列出已装载的模块
modprobe可装载和卸载模块
   使用modprobe -r可删除当前已装载的模块;modprobe -r usb_storage
   注意:模块只有在没有使用的前提下才可以被删除
modinfo显示任意可用模块的信息
/etc/modprobe.conf可用来配置模块:
无论何时装载模块都需要为其提供参数
代表模块名称的别名
在装载或者卸载模块时需要执行的命令
 
 
管理initrd映象
初始化内存盘提供在引导初期装载的模块.
文件位于/boot/initrd-$(uname -r).img
有时会由于某种原因添加额外的模块:
   系统中添加新硬件,例如SCSI控制器
   需要新的特性,例如USB驱动器
   需要在引导时自动装载模块
使用mkinitrd和--with选项可重建在附加模块的系统:
mkinitd --with=module_name /boot/initrd-$(uname -r).img $(uname -r)
 
初始化内存盘(也称initrd)为系统提供一系列内核映象无法提供的模块,这些模块对正确引导系统非常重要.这些模块通常和存储设备及文件系统有关,但也可支持其它特性和硬件外设.
initrd文件位于/boot/initrd-$(uname -r).img 尽管文件名使用上述的典型格式,但该名称也可根据grub配置文件进行修改,正确的文件名请参考/boot/grub/grub.conf .
有时候需要根据新硬件(比如新的SCSI或者ATA控制器),引导过程早期新属性的要求或者为了自动列出可能会强制装入初始化内存的模块,例如mkinitd --with=module_name /boot/initrd-$(uname -r).img $(uname -r)  其中$(uname -r)可由当前内核版本替代
阅读(882) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~