Diagnose programm

Du hast eine Idee für ein Projekt?
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

cofi hat geschrieben:Ich hab zwar gerade keinen Mac zum testen, aber dort scheint es kein /proc zu geben.
Ich hab' auch keinen Mac, aber wenn Mac OS X auf FreeBSD basiert, dann bietet es evtl. auch den sysctl Systemaufruf:

sysctl(3)

Nachtrag: ja, sieht gut aus:

http://developer.apple.com/documentatio ... ctl.3.html
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

würmchen hat geschrieben:hm, also bei linux kann man da einfach die /proc Dateien auslesen, das sollte doch auch auf dem Mac gehen, oder?
Was fuer Linux /proc ist, ist bei den BSDs (und scheinbar auch bei Mac OS X) der sysctl Systemaufruf (siehe voriges Posting) bzw. das sysctl Programm. Es gibt z.B. solche Daten aus:

Code: Alles auswählen

$ sysctl -a
kern.ostype: FreeBSD
kern.osrelease: 7.1-PRERELEASE
kern.osrevision: 199506
kern.version: FreeBSD 7.1-PRERELEASE #0: Fri Sep 26 14:43:33 CEST 2008
    root@some.host.name:/usr/obj/usr/src/sys/GENERIC

kern.maxvnodes: 100000
kern.maxproc: 6164
kern.maxfiles: 12328
kern.argmax: 262144
kern.securelevel: -1
kern.hostname: some.host.name
kern.hostid: 143286141
kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 }
kern.posix1version: 200112

(...)

kern.threads.virtual_cpu: 4
kern.threads.max_threads_hits: 0
kern.threads.max_threads_per_proc: 1500

(...)

hw.machine: amd64
hw.model: AMD Phenom(tm) 9350e Quad-Core Processor
hw.ncpu: 4
hw.byteorder: 1234
hw.physmem: 2066624512
hw.usermem: 1789452288
hw.pagesize: 4096
hw.floatingpoint: 1
hw.machine_arch: amd64

(...)

dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.P001
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 1990
dev.cpu.0.freq_levels: 1990/-1 1741/-1 1492/-1 1243/-1
dev.cpu.0.cx_supported: C1/0
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00%

(...)
Man kann auch gezielt einige OIDs abfragen:

Code: Alles auswählen

$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 11095
Oder (als root) einige Parameter aendern:

Code: Alles auswählen

# sysctl dev.cpu.0.freq=1243
dev.cpu.0.freq: 1990 -> 1243
Was das sysctl Programm kann, kann natuerlich auch der sysctl Systemaufruf.
Antworten