このデバイスには lseek(2) と pread(2) を使って、 適切な CPUID レベルにアクセスし、 16 バイトのデータを読み出す。 もっと大きな読み出しサイズを指定すると、 連続する複数のレベルが読み出される。
ファイル位置の下位 32 ビットは次の %eax として使用され、 ファイル位置の上位 32 ビットは次の %ecx として使用される。 後者は、 eax=4 のように eax レベルを数えるのを意図したものである。
このドライバーは /dev/cpu/CPUNUM/cpuid を使用する。 なお CPUNUM はマイナー番号である。 SMP マシンでは、 このドライバーは /proc/cpuinfo に載っている CPU CPUNUM にアクセスする。
このファイルは、 ユーザー root またはグループ root だけが読み出しできるように保護されている。
cpuid の情報のほとんどは、 /proc/cpuinfo か、 /sys/devices/system/cpu のサブディレクトリ経由で読みやすい形で参照できる。 このデバイス経由で直接 CPUID にアクセスするのは例外的な場合にだけにすべきである。
cpuid ドライバーは自動ではロードされない。 モジュールに対応したカーネルでは、 使用する前に以下のコマンドを使って明示的にロードする必要がある。
$ modprobe cpuid
追加の入力レジスターが必要な CPUID 機能はサポートされていない。
非常に古い x86 CPU では CPUID はサポートされていない。
Intel Corporation, Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, 3-180 CPUID reference.
Intel Corporation, Intel Processor Identification and the CPUID Instruction, Application note 485.
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]