Wie kann ich Hardware-Informationen von einem Linux / Unix-Rechner bekommen? Gibt es eine Reihe von APIs?
Ich versuche Informationen zu erhalten wie:
Ich suche nach einer Anwendung, die diese Informationen sammelt und in einem schönen Format zeigt. Ich habe etwas Ähnliches mit dem Befehlszeilenprogramm "system_profile" für Mac OS X verwendet Ich frage mich, ob etwas Ähnliches auch für Linux verfügbar ist.
Wenn Sie eine einfache Antwort benötigen, verwenden Sie:
cat /proc/cpuinfo
cat /proc/meminfo
lspci
lsusb
und ernten Sie alle benötigten Informationen aus der Ausgabe dieser Befehle. (Hinweis: Der Befehl cut
könnte hier Ihr Freund sein, wenn Sie ein Shell-Skript schreiben.)
Wenn Sie weitere Details benötigen, fügen Sie einen -v
-Schalter hinzu, um eine ausführliche Ausgabe von den Befehlen lspci
und lsusb
zu erhalten.
Wenn Sie nach einer funktionsreicheren API suchen, verwenden Sie HAL, auch wenn das für den Versuch, etwas zu bauen, ein Overkill sein könnte.
Ich würde hal
, die Hardware-Abstraktionsschicht, verwenden. Es enthält sowohl einige GUI-Befehle, einige tty-Befehle (die von Shell-Programmen verwendet werden können) als auch Bibliotheksbindungen für c und mehrere andere Sprachen.
HAL ist nicht wirklich ein Standard-Teil von "linux", aber ich denke, es wird von den meisten modernen Distributionen verwendet.
Da Sie die API erwähnt haben, versuchen Sie es mit der exec Befehlsfamilie für C. Sie können sie verwenden, um diese auszuführen Binärdateien, die andere Leute erwähnt haben. Um eine robuste / flexible Lösung zu erstellen, müssen Sie wahrscheinlich auch die Unix fork () - Befehle nutzen. Sie müssen auch einen Mechanismus entwickeln, um die von diesen Dienstprogrammen ausgegebenen Ausgaben zu erfassen. Schauen Sie in Unix-Pipes dafür.