このデバイスには 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.