扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Linux 负有盛名的特点之一是其非凡的稳定性。然而,如果您的硬件有缺陷或配置不正确,即使是世界上最稳定的操作系统也不会对您有什么帮助。计算机系统是由软件系统硬件系统组成的,检测硬件状态对于保障整个系统的稳定是非常重要的。不论操作系统是使用Linux、还是Windows,一旦硬件出现故障,那么整个系统的安全就严重了。这里我们则主要针对硬件进行监控。
一、 硬件监控的实现原理
我们看一下Linux根目录下:/proc目录的内容,每个Linux系统根据软硬件不同/proc 虚拟文件系统的内容也有些差异。/proc 虚拟文件系统有三个很重要的目录:net,scsi和sys。Sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。例如,如果系统不支持scsi,则scsi目录不存在。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。net目录包括多个 ASCII 格式的网络伪文件, 描述了网络层的部分情况,可以用arp 、netstat、route等命令来查询这些文件。除了以上介绍的这些,还有的是一些以数字命名的目录,它们是进程目录。系统中当前运行的每一个进程都有对应的一个目录在/proc下,以进程的 PID号为目录名,它们是读取进程信息的接口。而self目录则是读取进程本身的信息接口,是一个链接(link)。Proc文件系统的名字就是由之而起。
/proc 目录里主要文件内容,见表-1:
二、 命令行下检测加载硬件
1. 命令行下的硬件浏览器dmidecode
Dmidecode是命令行下获取硬件信息的工具,官方网站:,最新版本:2.8。下载安装方法:
#wegt http://download.savannah.gnu.org/releases/dmidecode/dmidecode-2.8.tar.gz
# gunzip dmidecode-2.8.tar.gz
#cd dmidecode-2.8
#make;make install
安装命令下有两个主要执行程序:BIOSdecode和dmidecode。下面方便介绍:(1) BIOS信息查看工具:BIOSdecode
BIOS是基本输入/输出系统的缩写。BIOS是机器的硬件自带的、在电脑没有访问磁盘上程序之前决定机器基本功能的软件系统 。运行命令:./ BIOSdecode,界面见图1。
图1 Linux计算机BIOS信息
下面我们详细介绍图1三个主要内容。
1. SMBIOS
SMBIOS即System Management BIOS以结构的方式保存了用于管理的系统信息。是一种符合台式机管理接口(dmi) 的方法,它用来管理受控网络中的计算机。SMBIOS 的主要组成部分是管理信息格式(mif) 数据库,其中包括有关计算系统及其组件的信息。使用SMBIOS,系统管理员可以或得系统类型、功能、操作状态以及系统组件的,安装日期。mif 数据库定义数据并提供访问该信息的方法。BIOS 可以使诸如第三方管理软件等应用程序使用SMBIOS。
2.PNP BIOS
PNP BIOS即插即用BIOS,PnP 把 PnP 资源自动分配给硬件和对应的软件. 就是, 把设备和它们的驱动程序配对并建立通信信道. Linux 需要 PnP ,Wintel(Microsoft 和 Intel) 创造了 PnP. 由于种种原因, Linux 小区有人不喜欢 PnP. 但不管喜欢与否, 今天的硬件大部分是 PnP 的, 除了有效的处理 PnP 外, Linux 别无选择。
3. APM和ACPI电源管理
它们分别是APM(Advanced Power Management,高级电源管理)和ACPI(Advanced Configuration and Power Interface高级配置电源界面)。Linux都支持两种形式的电源管理:
(1)APM
目前APM 1.2是最新的APM标准,是一种基于BIOS的系统电源管理方案,它提供了CPU和设备电源管理并通过设备活动超时设定来决定何时将设备转换到低耗能状态。APM软件组成如下:一个pmd守护进程,用来监视电池的使用情况;多个实用工具软件,用来显示和响应电池事件。它们包含于apmd软件包中。
(2)ACPI
ACPI针对APM的缺陷而诞生。由于APM具有以上不足,ACPI应运而生,ACPI就是为了解决APM的缺陷而面世的。ACPI(Advanced Configuration and Power Interface,高级配置和电源界面)是一个由COMPAQ、Intel、Microsoft、Phoenix和Toshiba共同开发的开放的工业规范。ACPI建立了工业标准接口,这样操作系统在膝上型电脑、桌上型电脑及服务器上就可以直接配置和电源管理。ACPI将现有的电源管理BIOS代码、APM应用编程接口、PNP BIOS应用编程接口、多处理器规范表格等集合成一种新的电源管理和配置接口规范。该规范的好处就是,如果能确保新的电源管理技术能与操作系统及硬件协调工作的话,那就可以独立用操作系统和硬件来发展新的电源管理技术。ACPI允许操作系统(而不是BIOS)控制电源管理,这一点与APM不相同。ACPI标准定义了硬件寄存器、BIOS接口(包含配置表格、控制方法以及主板设备列举和配置)、系统和设备的电源状态和ACPI热模型。BIOS提供的支持代码不是用汇编语言而是用AML(ACPI Machine Language,ACPI机器语言)编写的。BIOS不能决定用于电源管理或资源管理的策略或超时。最后要指出的是系统中的所有设备可以互相进行通讯来了解彼此的使用情况,而且都受操作系统的控制,操作系统对正在运行的系统的状态了如指掌,所以操作系统处于执行电源管理的最佳位置。
ACPId事件守护进程一方面监视电源事件,另一方面用来设置响应这些事件的规则,这些规则用来关闭某些硬件或关掉系统电源等。ACPI是一款设计用来替代APM电源管理的更具通用性的工具软件,但是目前它还需进一步完善。综上所述,ACPI比APM有着很多的优势,所以推荐大家使用ACPI来对Linux系统进行电源管理。dmidecode
dmidecode可以说是一个命令行下全面的硬件浏览器。和一些Linux发行版本的硬件浏览器(lspci)相比,它可以提供的信息非常丰富。
运行命令:./dmidecode ,界面见图2。
图2 dmidecode工作界面
dmidecode 是一个命令行工具,使用方法如下:
dmidecode [选项]
常用选项如下:
-d, --dev-mem FILE :从内存设备读如文件 (确省是: /dev/mem 文件)。
-h, --help :显示帮助信息并且退出。
-q, --quiet :直接退出。
-s, --string KEYWORD :只显示符合台式机管理接口(dmi) 的信息。
-t, --type TYPE :显示全部信息。
-u, --dump :显示简单信息。
-V, --version :显示版本信息并且退出。
应用实例:由于提供的信息非常丰富,我们以中央处理器、AGP扩展槽、内存、主板。为例子。
1. 使用dmidecode检测中央处理器中央处理器是Linux主机的核心硬件。可以使用dmidecode查看中央处理器各项参数,已经有无缺陷。
命令如下:
#dmidecode |grep –A20 "Processor"|more
注:-A20表示显示一下的行数,你可以根据自己的情况修改。工作界面如图3。
图3 查看中央处理器信息
从图3可以全面查看中央处理器的所有信息。关键属性包括:系列型号 Duron;接口类型 SocketA;主频 1.1G;封装技术uPGA;核心类型Athlon;
前端总线 200MHz;FSB外频 100MHz;倍频 11;二级缓存容量 64KB;核心电压 ;超线程技术 不支持;3D NOW 支持;MMX 支持。下面介绍一些和Linux运行相关的主要硬件信息:
FPU: (Float Point Unit,浮点运算单元)FPU是专用于浮点运算的处理器,以前的FPU是一种单独芯片,在486之后,英特尔把FPU与集成在CPU之内。
PAE :(Physical Address Extensions,物理地址扩展模式) 随着 Pentium Pro 的发行,Intel 在其高级处理器上引入了一个称作 PAE (物理地址扩展) 的模式。通过使用 PAE,Solaris Intel 平台版本 可以寻址最大达 32 GB 的物理内存。单个进程仍受限于最大 3.5 GB 的虚拟地址空间。 PAE 模式使您能够运行数据库和内存密集型应用程序的多个实例,并能支持您机器上大量联机用户。
TSC (Time stamp counter):它利用CPU的时钟计数器TSC (Time Stamp Counter)来提供精度可达CPU主频的时间精度。通用PC自带两个时钟源:硬件时钟和软件时钟(或称为系统时钟).访问硬件时钟开销较大,系统运行时通常不使用.软件时钟是调度系统任务和用户任务的计时依据,Linux的系统调用gettimeofday()可以读取到,它依据定时器中断计数来完成计时。
2. 查看主板的序列号
dmidecode |grep 'Serial Number'
Serial Number: SYS-1234567890
Serial Number: xxxxxxxxxxx
Serial Number: Chassis Serial Number
3. 显示内存条安装情况:
dmidecode |grep -A16 "Memory Device"
4. 查看主板的AGP总线插槽:
dmidecode |grep -A2 "AGP"
AGP is supported
Handle 0x0001, DMI type 1, 25 bytes
Designation: AGP
Type: 32-bit AGP 2x
Current Usage: In Use
Length: Short
另外你还可以使用 lspci 命令来列举所有的 PCI 设备。使用 lspci -v 命令来获得详细的信息,或使用 lspci -vv 命令来获得更详细的输出。 譬如, lspci 命令可以被用来判定系统视频卡的制造厂商、型号、以及显示内存大小。
三、 图形环境下检测加载硬件
1. 系统工具hwbrowser
如果你在图形工作界面配置硬件时遇到问题,或者只是想了解一下你的系统中有哪些硬件,你可以使用 硬件浏览器 程序来显示能被探测到的硬件。要在桌面环境下启动该程序,点击 「主菜单」 => 「系统工具」 => 「硬件浏览器」 ,或在 shell 提示下键入 hwbrowser 。如图 4 所示,它显示了你的光盘设备、软盘、硬盘驱动器和它们的分区、网络设备、指示设备、系统设备、以及视频卡。点击左侧菜单上的类别名称,有关信息就会被显示。
图 4 图形界面的硬件浏览器
2. 专用工具lshw
lshw是Hardware Lister缩写,一个专业的硬件浏览器,和dmidecode相比它显示界面更加专业和友好,可以存储为HTML、XML格式。另外其还有一个图形前端(lshw-gui)。
lshw官方网站:最新版本:2.07。主程序下载琏接:http://ezix.org/software/files/lshw-B.02.07.tar.gz 。图形前端下载琏接:ftp://ftp.freshrpms.net/pub/dag/redhat/el4/en/i386/dag/RPMS/lshw-gui-2.05.01-1.2.el4.rf.i386.rpm
lshw使用说明:
lshw [-格式] [-选项...]
格式包括:
-html :使用HTML格式输出。
-xml :使用HTML格式输出。
-short :输出硬件路径。
-businfo :输出总线信息。
-X :使用图形形式输出。
选项包括:
-class CLASS :分级输出信息。
-disable TEST :不输出测试信息。
-enable TEST :输出测试信息。
应用实例:
1. Linux浏览器下硬件列表
使用命令:
Lshw –html >lshw.html
2. 图形界面下的硬件浏览器
使用命令:
Lshw –X
总结:本文中我们了解Linux硬件种类;命令行下查看Linux硬件列表以及图形界面下查看Linux硬件列表。下次将介绍Linux 服务器硬件温度监控。