現在の CPU 周波数がルートに対して読み取り専用なのはなぜですか?

現在の CPU 周波数がルートに対して読み取り専用なのはなぜですか?

ベンチマークを提供するプログラムがありますが、OS に依存せず、CPU 周波数の読み取り方法がわかりません。テスト プログラムはスクリプトによって実行されます。CPU 周波数を指定すると、プログラムは操作のスループットを計算できます。

現在の CPU 周波数 (最も正確な読み取りのため) を提供しようと思いましたが、その値は root に対しては読み取り専用で、他のユーザーにはアクセスできないようです。

$ ls -Al /sys/devices/system/cpu/cpu0/cpufreq/
total 0
-r--r--r-- 1 root root 4096 Jan 27 23:19 affected_cpus
-r-------- 1 root root 4096 Jan 27 23:19 cpuinfo_cur_freq
-r--r--r-- 1 root root 4096 Jan 27 23:19 cpuinfo_max_freq
-r--r--r-- 1 root root 4096 Jan 27 23:19 cpuinfo_min_freq
...
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_max_freq
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_min_freq
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_setspeed

としてls -lショー、cpuinfo_cur_freq特定のACLを持つ唯一のオブジェクトです。他のエントリはほとんど04440644いくつかのための)。

現在の CPU 周波数が root には読み取り専用で、他のユーザーにはアクセスできないのはなぜですか?

答え1

読めるはずです

scaling_cur_freq

質問に答えるには:

読むと

cpuinfo_cur_freq

ハードウェアと直接通信するか、実装によっては、明らかに特権なしでは許可されないファームウェアと通信します。

ソース

関連情報