本文的部分内容取自内核文档。
Linux有两个用户空间的RTC API,他们是
* /dev/rtc... 兼容PC系统的RTC,对非x86结构支持不完整。
* /dev/rtc0,/dev/rtc1 ... 系统框架的一部分,支持多种RTC
老的兼容PC/AT驱动:/dev/rtc
所有的pc系统都内建实时时钟。这个时钟在系统关机之后可以保存时间和日期。特别之处,用户进程可以通过/dev/rtc的read(2) 或是select(2)监视中断,同时他会阻塞/停止用户进程,直到下一个中断接受。这个对于高速数据采集避免CPU占用100%是很有效果的方法。
新的借口“RTC Class”驱动:/dev/rtcN
由于Linux支持多种非ACPI和非PC平台,它可能包含不只一种RTC时钟,所以Linux就需要一个新的RTC接口解决这些问题。RTC Class结构包含多种RTCs,它的范围从内部集成RTC到使用I2C、SPI或是其他总线与CPU主机通讯的独立芯片。Linux提供三个不同的用户空间接口:
* /dev/rtcN... 类似老的/dev/rtc接口
* /sys/class/rtc/rtcN... sysfs支持只读访问RTC
* /proc/driver/rtc... 首个RTC(rtc0)使用procfs接口访问它,这个要比sysfs包含的信息多