在相当现代的系统上,Linux 可以通过(或)虚拟库gettimeofday
完全clock_gettime
在用户空间中为“系统”调用提供服务,因此它实际上并不执行系统调用。在使用稳定时间戳计数器 (tsc) 的系统上,但如果没有,Linux 使用(高精度事件计时器)硬件。它仍然可以在用户空间中通过将硬件寄存器映射到用户空间作为.linux-vdso.so
linux-gate.so
hpet
linux-vdso.so
我最近发现,在一台基于 Atom N450 的上网本(运行 32 位 Linux)上,这些系统调用不在用户空间中得到服务,但我无法弄清楚 Linux 需要哪些特定功能,而该上网本不支持。其他与时间无关的系统调用getpid
完全在用户空间中提供服务。
那么,为了向hpet
用户空间公开定时器,Linux 需要/检查哪些具体的硬件功能?我如何查看我的系统是否有这些?