Hallo,
beruflich bin ich gerade damit beschäftigt, die Bibliothek libstatgrab
(http://www.i-scream.org/libstatgrab/)
auf AIX, HP-UX, Solaris & Linux zu portieren bzw. für aktuelle
Versionen anzupassen und die jeweiligen
Routinen thread-safe zu machen.
Bei dieser Gelegenheit begann ich privat damit, auch die
*BSD-Unterstützung aufzuräumen und an
aktuelle Versionen anzupassen (der FreeBSD -Support bewegt sich auf
dem Level FreeBSD4/5).
Für NetBSD & OpenBSD gestaltet sich das recht geschmeidig - so
ziemlich alles ist in netten Strukturen
verpackt, die man mit halbwegs brauchbar dokumentierten
sysctl()-Abfragen gefüllt bekommt.
FreeBSD hingegen hat fast überall inzwischen nur noch namentlich
ansprechbare sysctl Routinen
(e.g. vm.swap_stats oder schlimmer vm.stats.vm.v_free_count,
vm.stats.vm.v_inactive_count & co.),
wo der Rückgabewert praktisch undokumentiert ist (sysctl( { 0, 4, *mib
}, ...) hilft da rudimentär)
und auch die Aufrufe sind nicht wirklich gelistet.
Da es von FreeBSD inzwischen aber ewig viele Forks gibt - die
idealerweise auch unterstützt werden
sollten, suche ich hierfür nach Hilfe:
1) Gibt es einen oder mehrere Tests, die ohne den OS-Namen abzufragen
zuverlässig ermitteln, ob
das Zielsystem ein FreeBSD bzw. Fork (DragonflyBSD, PC-BSD,
DesktopBSD, monowall/FreeNAS, ...)
ist?
2) Gibt es irgendwo eine Möglichkeit herauszubekommen, welche sysctl's
in welchen FreeBSD-Versionen
(und Forks) vorhanden sind und welche OUT-Parameter erwartet werden?
3) Gehe ich vielleicht gerade den völlig falschen Weg und gibt es
konformere Methoden, an Systemstatistiken
zu kommen (e.g. devstat, kvm - jeweils mit NULL-Handles geöffnet).
Vielen Dank im Voraus für jeden Tipp,
Jens
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 07 Feb 2011 - 23:57:46 CET