Warum ist die aktuelle CPU-Frequenz für Root schreibgeschützt?

Warum ist die aktuelle CPU-Frequenz für Root schreibgeschützt?

Ich habe ein Programm, das Benchmarks liefert, aber es ist betriebssystemunabhängig und kann die CPU-Frequenz nicht lesen. Das Testprogramm wird über ein Skript gesteuert. Wenn ich die CPU-Frequenz angebe, kann das Programm den Durchsatz der Operationen berechnen.

Ich dachte, ich würde die aktuelle CPU-Frequenz angeben (für die genaueste Angabe), aber es scheint, dass der Wert für Root schreibgeschützt ist und für andere nicht zugänglich ist:

$ 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

Alsls -lzeigt an,cpuinfo_cur_freqist das einzige Objekt mit dieser bestimmten ACL. Die anderen Einträge sind meist0444(0644für einige).

Warum ist die aktuelle CPU-Frequenz für Root schreibgeschützt und für andere nicht zugänglich?

Antwort1

Sie sollten lesen können

scaling_cur_freq

Um die Frage zu beantworten:

Es scheint, dass das Lesen

cpuinfo_cur_freq

kommuniziert direkt mit der Hardware oder - je nach Implementierung - der Firmware, was offensichtlich nicht ohne Privilegien zugelassen werden sollte.

Quelle

verwandte Informationen