全部博文(293)
分类: 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虚拟目录 四、介绍为什么要通过sysctl 指令来设定 /proc/sys/子目录中的内容 五、介绍如何检测及显示系统中的硬件设备 六、介绍系统中的PCI总线和ISA总线 七、介绍Kernel所支持的其它可热插拔的总线 八、介绍系统的监控及控制所有执行程序
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/
5、可以修改/proc/sys/子目录中的文件,来急时变更目前在正执行中的kernel的参数。举例如下图:
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的信息。如下图说明:
2、kudzu 指令
可以用来维护系统中,已经检测到的硬件设备资料,当系统侦测到一个新的设备或某个设备被移除时,kudzu会自动设定我们的系统,或引导管理者设定这个设备,并把检测到的设备写入到 /etc/sysconfig/hwconf 文件中,kudzu 会使用 /usr/share/hwdata 这个资料库文件中的硬件资料来侦测目前系统中的硬件设备;之后,系统会把侦测到的设备的详细信息存放到/proc 目录中。
3、hwbrowser 指令
可以打开图形界面的显示工具,有些类似于windows下的设备管理器,可以查看系统安装了哪些硬件设备。
1、PCI总线是X86的主机中主要的插槽
·/sbin/lspci 这个指令可以查看目前有哪些设备插在PCI插槽中;
·/proc/bus/pci 这些PCI设备的信息存储在这个目录中;
2、大部分ISA的设备都支持了PnP(即插即用功能),如果系统中侦测到了ISA的设备,会将这些设备的信息存在 /proc/isapnp/ 目录中;
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标谁输入输出控制执行程序;
5、kill 指令:可以把一个系统信息传送给一个指定的进程;
nice 指令
renice 指令
目标
应用程序
进程
命令格式
nice –n renice
例:kill –l 可列出每一种系统信息怕代码;
例如:强制执行的代码是 9;如果想要强制停止某个进程,就可以使用下面的指令:
kill –9 PID(要结束的程序的进程号) 就可以强制停止这个进程号所对应的程序了;
转自:http://adairnet.spaces.live.com/blog/cns!F5DC2937B72C0783!455.entry