1、硬狗与软狗
Watchdog在实现上可以是硬件电路也可以是软件定时器,能够在系统出现故障时自动重新启动系统。在Linux 内核下, watchdog的基本工作原理是:当watchdog启动后(即/dev/watchdog 设备被打开后),如果在某一设定的时间间隔内/dev/watchdog没有被执行写操作, 硬件watchdog电路或软件定时器就会重新启动系统。
Linux内核不仅为各种不同类型的watchdog硬件电路提供了驱动,还提供了一个基于定时器的纯软件watchdog驱动。 驱动源码位于内核源码树drivers\char\watchdog\目录下。
[root@VM_0_11_centos watchdog]# pwd
/home/kernel_source/linux/drivers/watchdog
[root@VM_0_11_centos watchdog]# ll
total 1808
-rw-r--r-- 1 root root 8504 Mar 27 13:41 acquirewdt.c
-rw-r--r-- 1 root root 7803 Mar 27 13:41 advantechwdt.c
-rw-r--r-- 1 root root 9964 Mar 27 13:41 alim1535_wdt.c
-rw-r--r-- 1 root root 11246 Mar 27 13:41 alim7101_wdt.c
-rw-r--r-- 1 root root 7253 Mar 27 13:41 ar7_wdt.c
-rw-r--r-- 1 root root 10211 Mar 27 13:41 armada_37xx_wdt.c
-rw-r--r-- 1 root root 8636 Mar 27 13:41 asm9260_wdt.c
-rw-r--r-- 1 root root 11535 Mar 27 13:41 aspeed_wdt.c
-rw-r--r-- 1 root root 7879 Mar 27 13:41 at