2010-11-03 50 views
14

Quel est l'équivalent de/proc/cpuinfo de Linux sur FreeBSD v8.1? Mon application lit/proc/cpuinfo et enregistre les informations dans le fichier journal, que puis-je faire pour obtenir des informations similaires enregistrées sur FreeBSD?Quel est l'équivalent de/proc/cpuinfo sur FreeBSD v8.1?

A/proc/cpuinfo ressemble à ceci:

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 
+0

Si vous voulez dire cela dans un contexte de * programmation * spécifique (par opposition à une sorte de contexte utilisateur), vous feriez mieux de parler bientôt, car il sera migré hors site ... – dmckee

+0

Correct, actuellement mon le produit lit ce fichier pendant l'exécution, je veux trouver une action équivalente sur FreeBSD. – WilliamKF

Répondre

5

Utilisez la commande 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 
...... 
16

Je ne crois pas qu'il y ait quoi que ce soit aussi détaillé que celui de Linux /proc/cpuinfo. Regardez dans sysctl hw et /var/run/dmesg.boot. La plupart des informations telles que la vitesse du processeur et les jeux d'instructions devraient être là quelque part.

C'est ce que je vois (avec quelques hw.* sans intérêt les champs supprimés): (. Notez que sur OpenBSD, la vitesse cpu se trouve dans hw.cpuspeed au lieu de dmesg)

$ 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 

+0

Il y a dans FreeBSD mais j'ai été absent trop longtemps pour dire où le trouver. – Rob

+0

Mais contrairement à '/ proc/cpuinfo',' sysctl' demande un accès root. – user2284570

+0

L'exécution de 'sysctl' ne nécessite pas d'accès root sauf si vous modifiez des valeurs pouvant être modifiées; l'affichage des OID ne nécessite aucune autorisation spéciale, à moins que vous ne verrouilliez complètement la possibilité pour les utilisateurs d'exécuter sysctl. –

3

Juste Pour ajouter au commentaire de jleedev, vous pouvez utiliser le syscall sysctl(3) pour obtenir cette information du noyau de votre application. Voir le CTL_HW Nom de haut niveau:

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

+0

Merci, en utilisant sysctl (8) était le plus simple à adopter. – WilliamKF

2

Notez que des informations telles que les caractéristiques du CPU et différentes tailles de cache du processeur ne sont pas dans la sortie sysctl, mais ils sont disponibles dans la sortie de dmidecode sous FreeBSD.

2

Si vous êtes intéressé par des drapeaux CPU, vous pourriez également jeter un oeil à

dmesg -a | grep Features 

ou

grep Features /var/run/dmesg.boot 

qui montreraient quelque chose comme

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> 
+1

Catting le fichier est reduntant, vous pouvez le faire: 'Fonctions grep /var/run/dmesg.boot' –