曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4674|回复: 0
打印 上一主题 下一主题

内核服务及配置简介

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34387
跳转到指定楼层
楼主
发表于 2008-12-1 22:51:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、内核模块 ( Kernel Modules )

内核中的许多模块常被编译成动态载入的模式,这些模块是外挂在内核之上,这样可以增加内核的功能,但不会增加内核的大小。

内核模块有两种功能:

1、计算机周边的设备的驱动程序( peripheral device drivers )

2、提供一些额外的文件系统( supplementary filesystems )

在载入这些模块的时候,可以进行设定,这些模块存放在 /lib/modules 下。--- 对这些模块的控制:

lsmod               /*列出目前所载入的模块*/

modprobe       /* 临时载入某个模块,用法: modprobe <module-name>  */


二、内核模组配置 ( Kernel Module Configuration )

1、检查模块( /sbin/modinfo )

modinfo <module-name>

此条指令可以看到模块的相关参数和授权书,如执行 modinfo ext3 后:
filename:       /lib/modules/2.6.27.7-4-pae/kernel/fs/ext3/ext3.ko
license:        GPL
description:    Second Extended Filesystem with journaling extensions
author:         Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others
srcversion:     3619A89175034778E142674
depends:        mbcache,jbd
supported:      yes
vermagic:       2.6.27.7-4-pae SMP mod_unload modversions 586


2、通过 /etc/modprobe.conf 来设置模块

在 /etc/modprobe.conf 中可以设置:

aliases               /*可以设置 ethernet interface, sound card,usb controller 用的程序*/

parameters        /*给模块提供参数*/

actions               /*在载入时要执行哪些动作*/

2.1 模块的依赖性

有些模块在使用时会调用到其他的一些模块,这就是模块的依赖性。

载入模块: insmod <module-name>
移出模块:rmmod <module-name>


3、/proc  ( The /proc filesystem )

/proc is a virtual filesystem containing information about the running kernel

/proc 并不存在于磁盘中,而只是一个虚拟目录。其中包含了目前正在运行的 kernel 的信息。通过它可以查看目前系统的状况。

若列出 /proc 中内容的,可以看出里面所有的文件大小都为 0 ,但仍然可以使用 cat 来查看这些文件,如:

cat /proc/cpuinfo

执行完指令后,列出如下内容(部分):
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 15
model name    : Intel(R) Core(TM)2 CPU          6320  @ 1.86GHz
stepping    : 6
cpu MHz        : 2659.997
cache size    : 4096 KB
....


/proc 中所包含的 kernel 信息,包括硬件信息,网络设置,正在执行中的程序,以及内存的使用状况等等。

/proc 中也包含有一些子目录,如:

/proc/scsi              /* 包含着 scsi 的信息*/
/proc/sys               /*包含这 kernel 的参数*/
/proc/<PID>/         /* 所有执行中的程序的信息 */

可以借着修改 /proc/sys 这个子目录中的参数,可以即时的变更正在运行中的 kernel 的参数( The /proc/sys subdirectory allows administrators to modify certain parameters of a running kernel )。比如:

在 /proc/sys/net/ipv4/icmp_echo_ignore_all 这个文件,里面的值为 0 ,表示接受所有的 icmp 封包。如使用 ping 命令时,要是两台计算机连接无阻,则可以看到返回来的 icmp 封包。那么,像下面给 icmp_echo_ignore_all 改一下参数:

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

这样以来,再使用 ping 命令时,就再也怎么 ping 不通了。


4、通过 sysctl 指令配置 /proc/sys 中的内容 ( /proc/ys configuration with sysctl )

修改 /proc/sys 里面的内容所产生的设定,将在下一次开机后失效。

使用 sysctl 命令进行设定就可以产生 “静态” 的效果,进行国的设置将写在 /etc/sysctl.conf 中。

在开机时,系统会调用 rc.sysinit 脚本,然后这个脚本里会调用 sysctl 这个指令,并且使用 /etc/sysctl.conf 里面的设置。


5、检测系统硬件设备 ( General Hardware Resources )

系统在开机时,对硬件的检测简要流程如下图所示:



在上图中,kernel 会启动一个叫 klgod 的服务,然后这个服务把检测信息存完 ring buffer (环形缓冲区) 中,然缓冲区毕竟有限,若是信息量太大,就会使后来的信息冲掉原来的信息,所以,ring buffer 中的信息也写往 /var/log/dmesg 中。故使用:

dmesg

cat  /var/log/dmesg | more

都可以查看到硬件信息。

6、 系统相应总线( System Bus Support )

PCI 总线( PCI BUS )

查看 PCI 总线情况命令: lspci

PCI 设备的信息存储在 /proc/bus/pci 中

ISA BUS

几乎要淘汰的东西了!

7、热插拔的支持( Hotswappable Bus Support)

      USB 和 IEEE 1394
查看 USB 情况命令: lsusb
设备相应目录: /dev/usb

总结一下这些插入设备后系统对其反应的过程:

插入设备,被系统检测到,系统一般从 /sbin 下调用相应的服务,然后再从 /etc 下加载相应的配置文件,最后把信息写入 /proc 下的相应子目录中。


8、系统监视与进程控制( System monitoring and Process Control )

top 命令
gnome-system-monitor  启动系统监视器的图形界面

vmstat - 报告虚拟内存的统计信息
free 指令查看内存和虚拟内存的使用情况

nice    以哪个优先级启动程序,用法:

nice -n <priority> <app>

renice 改变某个进程的优先级,用法:

renice <priority> <PID>

kill 指令,杀死进程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-19 19:50 , Processed in 0.075745 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表