質問: gnu / linuxで、cpuモデル名を確認するにはどうすればよいですか? cat /proc/cpuidからさまざまなユーティリティまで、gnu/linux環境でcpuに関する情報を取得するいくつかの方法を知っています。 ここ しかし、それらのどれも私のcpuモデル名が何であるかを教えてくれないようです。つまり、(議論のために) intel pentium 4 530j があります。しかし、私がそれについて得ることができる情報の種類は、基本的に:メーカー/ベンダー、ファミリー-モデル-ステッピング、クロック速度(まあ、いくつかのフィールドがありますが、これは私が思うブランドを一意に識別するのに十分なはずです)。windowsには、 hwinfo などの無料の(ビールのような)ユーティリティがあり、ブランド名を教えてくれます(私の場合は、530という数字を表示する必要があります)。どこか)。 linuxにも似たようなものはありませんか?注: グラフィック環境を必要としないものをお願いします。厳密にコマンドライン... hwinfoは、cpuを「intelpentium 4 530j(prescott、e0)」として検出します。それが基本的に私が見たいものです。
回答: ええと、 ウィキペディア上 、例があります(x86_64のみ)この目的のためのアセンブリリスト:.section .data s0 : .asciz "processor brand string: %.48s\n" err : .asciz "feature unsupported.\n" .section .text .global main .type main,@function .align 32 main: pushq %rbp movq %rsp, %rbp subq $48, %rsp pushq %rbx movl $0x80000000, %eax cpuid cmpl $0x80000004, %eax jl error movl $0x80000002, %esi movq %rsp, %rdi .align 16 get_brand: movl %esi, %eax cpuid movl %eax, (%rdi) movl %ebx, 4(%rdi) movl %ecx, 8(%rdi) movl %edx, 12(%rdi) addl $1, %esi addq $16, %rdi cmpl $0x80000004, %esi jle get_brand print_brand: movq $s0, %rdi movq %rsp, %rsi xorb %al, %al call printf jmp end .align 16 error: movq $err, %rdi xorb %al, %al call printf .align 16 end: popq %rbx movq %rbp, %rsp popq %rbp xorl %eax, %eax ret このコードをファイルにダンプします。たとえば、cpumodel.s、そしてそれをgcc/gasでコンパイルします:gcc cpumodel.s -o cpumodel その後、実行できます。$ ./cpumodel processor brand string: intel(r) core(tm)2 duo cpu t7300 @ 2.00ghz pentium 4/d cpuにはこの方法で使用できるモデル名がないように思われるため、この方法はおそらく機能しません。ご覧のとおり、 ここ 、cpuidデータに必要なものが含まれていません。