Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1757555
  • 博文数量: 293
  • 博客积分: 10574
  • 博客等级: 上将
  • 技术积分: 5085
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-22 17:00
文章分类

全部博文(293)

文章存档

2011年(27)

2010年(84)

2009年(62)

2008年(120)

我的朋友

分类: LINUX

2010-01-28 12:33:52

一、介绍kernel模块 (kernel 中包含哪些元件)
1、Kernel 当中许多元件可以被组成动态载入的模式,这些元件就是kernel模块
·Kernel 模块是外挂在Kernel上的,这样可以增加Kernel的功能,但不会增加Kernel的大小,Kernel 模块有两个功能:
(1)电脑周边设备的驱动程序;
(2)提供一些额外的文件系统;
·在载入Kernel模块的时候,可以设定Kernel的模块;
2、/lib/modules    Kernel模块的存放位置;
3、如果要控制模块可以使用以下指令:
   lsmod     列出目前载入了哪些模块;
   modprobe     可以临时载入某个模块;
   语法:  modprobe   <械模块的名称>
4、如果把一个没有经过Redhat签证的模块加入到kernel中,Redhat不会出任何的技术支持。

二、介绍如何设定Kernel中的模块
1、查看某个模块的信息及它的授权同意书是由谁签署的,可以使用下面的指令:
    格式:/sbin/modinfo  模块名称
2、模块的设定:可以通过 /etc/modprobe.conf 这个文件来设定模块,可以设定以下选项:
· aliases: 在预设情况下会记录网卡、声卡、USB控制器用的是哪些驱动程序;
· 设定 Kernel 的参数
· actions: 用来设定当模块被载入时,要执行哪些动作来设定这些装置;
3、有些模块会呼叫其它的模块所提供的功能,来应用到自己的身上,这就是模块的相依性;
· 模块的相依性会记录在 /lib/modules 目录中,每个模块所对应的子目录里面的 modules.dep 这个文件;
· 可以使用 depmod 指令加上“-a” 的参数来查看所有模块的相依性;
4、使用insmod指令可以用来载入某个模块,功能同modprobe相同,但modprobe载入模块时可以同时载入模块的相依性
格式: insmod   模块名称   (用来载入指定的模块)
         rmmode   模块名称     (删除指定模块)

三、介绍/proc虚拟目录
1、/proc 并不存在硬盘中,而是一个虚拟目录,我们可以借着修改目录里面的文件来急时变更kernel的参数,/proc目录中包含了目前所使用的kernel的信息,通过这些文件可以查看目前系统的状况。
2、如果列出/proc目录里的内容,会发现所有的文件的大小都是零,但是仍然可以使用 cat 、less、more 等指令查看这些文件;
例如:cat /proc/cpuinfo  可以查看cpu目前的状态
3、/proc目录中所包含的kernel信息,包括系统中的硬件设备,网络设定,正在执行中的程序及内存的使用状况等信息;
4、/proc中也有一些子目录
· /proc/scsi/ 子目录中,包含了SCSI设备的信息
· /proc/sys/子目录中包含了 kernel 的参数;
· /proc//  PID会用数字的形式显示在屏幕上,这些子目录中包含了所有执行程序的信息;
5、可以修改/proc/sys/子目录中的文件,来急时变更目前在正执行中的kernel的参数。举例如下图:
133_U3_3_5

四、介绍为什么要通过sysctl 指令来设定 /proc/sys/子目录中的内容
1、如果只是修改 /proc/sys/子目录中的文件,这只是暂时修改了正在执行中的kernel的参数,确无法将修改保存起来,当关机或重启后所有的修改就将丢失。
2、如果使用sysctl指令来修改设定,才可以将设定保存起来,当重新开机后这些修改仍然生效,使用 sysctl 指令所修改的设定会写入到 /etc/sysctl.conf  这个文件中;
    sysctl –p    可以查看sysctl.conf 文件中的内容
3、在开机的时,会执行rc.sysinit这个登录脚夫本,而 rc.sysinit 这个脚本文件会去调用sysctl.conf这个文件,并执行 /etc/sysctl.conf 这个文件中的设定。

五、介绍如何检测及显示系统中的硬件设备
1、当系统开机时,会看到kernel的引导信息,由于这些信息停留在屏幕上的时间非常短,所以系统会通过 klogd 的服务来把这个信息写入到 ring buffer 缓冲区中,可以使用 dmesg 指令来查看缓冲区里的内容,但 ring buffer 的空间是有限的,当被写满后会把这些信息写入 /var/log/dmesg 文件中,这样可以防止旧的信息被覆盖掉,所以可以通过 /var/log/dmesg 这个文件中的内容来查看kernel的信息。如下图说明:
133_U3_5_1
2、kudzu 指令
可以用来维护系统中,已经检测到的硬件设备资料,当系统侦测到一个新的设备或某个设备被移除时,kudzu会自动设定我们的系统,或引导管理者设定这个设备,并把检测到的设备写入到 /etc/sysconfig/hwconf 文件中,kudzu 会使用 /usr/share/hwdata 这个资料库文件中的硬件资料来侦测目前系统中的硬件设备;之后,系统会把侦测到的设备的详细信息存放到/proc 目录中。
3、hwbrowser 指令
可以打开图形界面的显示工具,有些类似于windows下的设备管理器,可以查看系统安装了哪些硬件设备。

六、介绍系统中的PCI总线和ISA总线
1、PCI总线是X86的主机中主要的插槽
·/sbin/lspci 这个指令可以查看目前有哪些设备插在PCI插槽中;
·/proc/bus/pci 这些PCI设备的信息存储在这个目录中;
2、大部分ISA的设备都支持了PnP(即插即用功能),如果系统中侦测到了ISA的设备,会将这些设备的信息存在 /proc/isapnp/ 目录中;

七、介绍Kernel所支持的其它可热插拔的总线
1、USB和IEEE1394
· 当系统侦测到有设备被插入USB或IEEE1394接口时,会自动启动 /sbin/hotplug 这个程式,并从 /etc/hotplug 子目录中载入这个设备所适用的驱动程序;然后将这个设备的信息写入到 /proc/bus 子目录中;
·/sbin/lsusb 指令,可以列出目前有哪些设备插在了USB插槽中;
·RHEL4版本,会自动挂载USB设备,可以通过/dev/usb/子目录中,所对应的装置名称,来存取这个USB设备中的内容;
2、PCMCIA 是另一种常见的可热插拔的总线
·当系统侦测到有设备被插到 PCMCIA 插槽中时,会自动启动 /sbin/cardmgr 这个服务,从 /etc/pcmcia/ 子目录中载入适当的模块;并把这个设备的信息写入到 /proc/bus/pccard/ 子目录中;
·/sbin/cardctl 指令,可以控制PCMCIA的设备,这个指令可以监控PCMCIA插槽的状态;

八、介绍系统的监控及控制所有执行程序
1、top(文件模式下,预设每5秒更新一次显示的内容),gnome-system-monitor(图形模式下) 这两个指令来显示进程的状态;例如:可查看CPU,内存,硬盘的的使用状况;
2、vmstat (文字模式下)指令:可用来显示虚拟内存的使用情况;其中(us指user space用户空间),(sy指system call系统调查用),(id指idle空闲),(wa 指 waiting等待)
3、free 指令:也可显示虚拟记忆体的使用状况,显示的信息没有 vmstat 显示的完整,但可同时可以看到实体内存的使用情况;
4、renice 指令:可以用来调整某个进程的优先权;NICE标谁输入输出控制执行程序;

  nice 指令 renice 指令
目标 应用程序 进程
命令格式 nice –n <应用程式> renice
5、kill 指令:可以把一个系统信息传送给一个指定的进程;
例:kill –l 可列出每一种系统信息怕代码;
例如:强制执行的代码是 9;如果想要强制停止某个进程,就可以使用下面的指令:
     kill –9 PID(要结束的程序的进程号   就可以强制停止这个进程号所对应的程序了;

转自:http://adairnet.spaces.live.com/blog/cns!F5DC2937B72C0783!455.entry

阅读(650) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~