Diagnose programm

Du hast eine Idee für ein Projekt?
BlackJack

Mittwoch 1. Oktober 2008, 16:10

@Rootmentor: Wer hat denn etwas von `os` und `sys` gesagt? Als erstes müsstest Du mal herausfinden, wie man unter MacOS überhaupt an die gewünschten Informationen heran kommt.

@name: Kommt drauf an, wenn es `ctypes` auch unter MacOS gibt und es eine System-Bibliothek gibt um diese Infos ab zu fragen, dann geht's vielleicht doch.
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Mittwoch 1. Oktober 2008, 16:12

BlackJack hat geschrieben:@name: Kommt drauf an, wenn es `ctypes` auch unter MacOS gibt und es eine System-Bibliothek gibt um diese Infos ab zu fragen, dann geht's vielleicht doch.
Naja, mit ctypes die System-Library mappen versteh ich net richtig als builtin library. Wenn mans richtig macht baut man ja da sozusagen seine eigene Library.
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Rootmentor
User
Beiträge: 54
Registriert: Sonntag 17. August 2008, 18:26
Wohnort: Lingen
Kontaktdaten:

Mittwoch 1. Oktober 2008, 16:42

mh ok dann werd ich erst was anderes probieren :D
nuss
User
Beiträge: 53
Registriert: Donnerstag 28. August 2008, 11:36

Donnerstag 30. Oktober 2008, 10:09

Wenn unter linux acpi benutzt wird,
dann stehen die verschiedenen informationen unter /proc/acpi/...
;)
lunar

Donnerstag 30. Oktober 2008, 14:20

Nein, da stehen nur die Informationen, die über ACPI angesprochen werden können, wie z.B. der Prozessortakt, Bildschirmhelligkeit, etc.

Andere Sensoren werden darüber nicht exportiert. Bei meinem Notebook betrifft das beispielsweise die Sensoren für die Kerntemperaturen des Core Duo Prozessors. Die sind nicht unter /proc/acpi/ zu finden, sondern über /sys/class/hwmon.
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Donnerstag 30. Oktober 2008, 18:44

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

Donnerstag 30. Oktober 2008, 19:02

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