Что эквивалентно /proc/cpuinfo во FreeBSD v8.1?

Что эквивалентно /proc/cpuinfo в Linux на FreeBSD v8.1? Мое приложение читает /proc/cpuinfo и сохраняет информацию в файле журнала. Что я могу сделать, чтобы аналогичная информация регистрировалась во FreeBSD?

Пример /proc/cpuinfo выглядит следующим образом:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
stepping    : 8
cpu MHz     : 2499.015
cache size  : 6144 KB
fdiv_bug    : no
hlt_bug     : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx lm constant_tsc pni ds_cpl
bogomips    : 5004.54

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz
stepping    : 8
cpu MHz     : 2499.015
cache size  : 6144 KB
fdiv_bug    : no
hlt_bug     : no
f00f_bug    : no
coma_bug    : no
fpu     : yes
fpu_exception   : yes
cpuid level : 10
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx lm constant_tsc pni ds_cpl
bogomips    : 5009.45

person WilliamKF    schedule 03.11.2010    source источник
comment
Если вы имеете в виду это в конкретном контексте программирования (а не в каком-то пользовательском контексте), вам лучше сообщить об этом как можно скорее, так как в противном случае это будет перенесено за пределы сайта...   -  person dmckee --- ex-moderator kitten    schedule 03.11.2010
comment
Правильно, в настоящее время мой продукт читает этот файл во время выполнения, я хочу найти эквивалентное действие во FreeBSD.   -  person WilliamKF    schedule 03.11.2010


Ответы (6)


Используйте команду dmidecode:

# dmidecode -t processor -t cache
# dmidecode 3.0
Scanning /dev/mem for entry point.
SMBIOS 2.4 present.

Handle 0x0004, DMI type 4, 35 bytes
Processor Information
        Socket Designation: LGA 775
        Type: Central Processor
        Family: Pentium 4
        Manufacturer: Intel
        ID: F6 06 00 00 FF FB EB BF
        Signature: Type 0, Family 6, Model 15, Stepping 6
        Flags:
                FPU (Floating-point unit on-chip)
                VME (Virtual mode extension)
                DE (Debugging extension)
                PSE (Page size extension)
                TSC (Time stamp counter)
                MSR (Model specific registers)
                PAE (Physical address extension)
                MCE (Machine check exception)
                CX8 (CMPXCHG8 instruction supported)
                APIC (On-chip APIC hardware supported)
                SEP (Fast system call)
                MTRR (Memory type range registers)
                PGE (Page global enable)
                MCA (Machine check architecture)
                CMOV (Conditional move instruction supported)
                PAT (Page attribute table)
                PSE-36 (36-bit page size extension)
                CLFSH (CLFLUSH instruction supported)
                DS (Debug store)
                ACPI (ACPI supported)
                MMX (MMX technology supported)
                FXSR (FXSAVE and FXSTOR instructions supported)
                SSE (Streaming SIMD extensions)
                SSE2 (Streaming SIMD extensions 2)
                SS (Self-snoop)
                HTT (Multi-threading)
                TM (Thermal monitor supported)
                PBE (Pending break enabled)
        Version: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz
        Voltage: 1.4 V
        External Clock: 266 MHz
        Max Speed: 3800 MHz
        Current Speed: 2394 MHz
        Status: Populated, Enabled
        Upgrade: Other
        L1 Cache Handle: 0x0005
        L2 Cache Handle: 0x0006
        L3 Cache Handle: 0x0007
        Serial Number: To Be Filled By O.E.M.
        Asset Tag: To Be Filled By O.E.M.
        Part Number: To Be Filled By O.E.M.

Handle 0x0005, DMI type 7, 19 bytes
Cache Information
        Socket Designation: L1-Cache
        Configuration: Enabled, Not Socketed, Level 1
        Operational Mode: Write Back
        Location: Internal
......
person Nan Xiao    schedule 10.06.2017

Я не верю, что есть что-то более подробное, чем /proc/cpuinfo в Linux. Посмотрите на sysctl hw и /var/run/dmesg.boot. Большая часть информации, такой как скорость процессора и наборы инструкций, должна быть где-то там.

Вот что я вижу (с несколькими удаленными неинтересными полями hw.*):

$ uname -sr
FreeBSD 4.10-RELEASE
$ grep -i cpu /var/run/dmesg.boot 
CPU: Pentium III/Pentium III Xeon/Celeron (448.97-MHz 686-class CPU)
$ /sbin/sysctl hw
hw.machine: i386
hw.model: Pentium III/Pentium III Xeon/Celeron
hw.ncpu: 1
hw.byteorder: 1234
hw.physmem: 665989120
hw.usermem: 604614656
hw.pagesize: 4096
hw.floatingpoint: 1
hw.machine_arch: i386
hw.aac.iosize_max: 65536
hw.an.an_dump: off
hw.an.an_cache_mode: dbm
hw.an.an_cache_mcastonly: 0
hw.an.an_cache_iponly: 1
hw.fxp_rnr: 0
hw.fxp_noflow: 0
hw.dc_quick: 1
hw.ste.rxsyncs: 0
hw.instruction_sse: 0
hw.availpages: 162432

(Обратите внимание, что в OpenBSD скорость процессора находится в hw.cpuspeed, а не в dmesg.)

person Josh Lee    schedule 03.11.2010
comment
Во FreeBSD он есть, но я слишком долго отсутствовал, чтобы сказать, где его найти. - person Rob; 03.11.2010
comment
Но в отличие от/proc/cpuinfo,sysctlтребуется root-доступ. - person user2284570; 26.05.2015
comment
Запуск 'sysctl' не требует root-доступа, если только вы не изменяете значения, которые на самом деле могут быть изменены; просмотр OID не требует каких-либо специальных разрешений, если только вы полностью не заблокируете пользователям возможность запускать sysctl. - person Jamie Ivanov; 26.04.2016

Просто чтобы добавить к комментарию jleedev, вы можете использовать системный вызов sysctl(3), чтобы получить эту информацию из ядра из вашего приложения. См. имя верхнего уровня CTL_HW:

http://www.manpages.info/freebsd/sysctl.3.html

person Seth Kingsley    schedule 04.11.2010
comment
Спасибо, использовать sysctl(8) было проще всего. - person WilliamKF; 05.11.2010

Обратите внимание, что такая информация, как функции ЦП и различные размеры кеша ЦП, отсутствует в выводе sysctl, но доступна в выводе dmidecode под FreeBSD.

person Greg Smith    schedule 21.08.2013

Если вас интересуют флаги ЦП, вы также можете взглянуть на

dmesg -a | grep Features

or

 grep Features /var/run/dmesg.boot

Это покажет что-то вроде

Features=0xfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,
PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS>
Features2=0x82982203<SSE3,PCLMULQDQ,SSSE3,CX16,SSE4.1,SSE4.2,POPCNT,
AESNI,<b31>>
AMD Features=0x28100000<NX,RDTSCP,LM>
AMD Features2=0x1<LAHF>
person AntonioK    schedule 15.04.2015
comment
Перехват файла избыточен, вы можете сделать это: 'grep Features /var/run/dmesg.boot' - person Mick T; 30.08.2017

FreeBSD 11.2

sysctl hw.model

Результат:

hw.model: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz

person Evgeny    schedule 03.06.2020