How does server man开发者_C百科agement software work?
I was reading about this software, and I found that they can monitor CPU speed/temperature.
How can one do this in C++?
Traditionally, motherboards come with device drivers that provide functionality to query the temp sensors and other motherboard parameters. These drivers can be accessed by other programs. For example, vendors like ASUS have rich GUIs that can present this info (by querying the driver) or background programs that can give you an alert when this crosses a threshold (by occasionally querying the driver). You could write something similar yourself, including server management software.
The main problem is that in a heterogeneous environment you could end up with different motherboards and thus different drivers. Some operating systems provide an abstraction layer for this functionality, so they can implement things like power management. I would also assume that modern motherboards have a more unified way of accessing this sort of information.
This is really not about C/C++, except that it is generally easier to access drivers from C/C++ than it is from languages like Java, C# or Python. In these cases, it is sometimes worth checking if there is a command-line based program on the motherboard CD that queries the driver, and then shell out, execute this program, and parse the returned string.
精彩评论