What is the equivalent of /proc/cpuinfo on FreeBSD v8.1? What is the equivalent of /proc/cpuinfo on FreeBSD v8.1? linux linux

What is the equivalent of /proc/cpuinfo on FreeBSD v8.1?


I don’t believe there is anything as detailed as Linux’s /proc/cpuinfo. Look into sysctl hw and /var/run/dmesg.boot. Most of the information like CPU speed and instruction sets should be in there somewhere.

This is what I see (with a few uninteresting hw.* fields removed):

$ uname -srFreeBSD 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 hwhw.machine: i386hw.model: Pentium III/Pentium III Xeon/Celeronhw.ncpu: 1hw.byteorder: 1234hw.physmem: 665989120hw.usermem: 604614656hw.pagesize: 4096hw.floatingpoint: 1hw.machine_arch: i386hw.aac.iosize_max: 65536hw.an.an_dump: offhw.an.an_cache_mode: dbmhw.an.an_cache_mcastonly: 0hw.an.an_cache_iponly: 1hw.fxp_rnr: 0hw.fxp_noflow: 0hw.dc_quick: 1hw.ste.rxsyncs: 0hw.instruction_sse: 0hw.availpages: 162432

(Note that on OpenBSD, the cpu speed is found in hw.cpuspeed instead of in dmesg.)


Use dmidecode command:

# dmidecode -t processor -t cache# dmidecode 3.0Scanning /dev/mem for entry point.SMBIOS 2.4 present.Handle 0x0004, DMI type 4, 35 bytesProcessor 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 bytesCache Information        Socket Designation: L1-Cache        Configuration: Enabled, Not Socketed, Level 1        Operational Mode: Write Back        Location: Internal......


Just to add to jleedev’s comment, you can use the sysctl(3) syscall to get this information out of the kernel from your application. See the CTL_HW top-level name:

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