Jochen Arndt
Не существует универсального независимого от ОС метода получения такой информации, поскольку информация, связанная с аппаратным обеспечением, предоставляется внутренне драйверами устройств (которые полностью отличаются в Windows и Linux) и становится доступной с помощью специфичных для ОС интерфейсов.
Однако существуют исключения для оборудования, подключенного к шине, доступ к которому можно получить с помощью общей библиотеки. Вот такой пример libusb (первоначально для Linux, но также доступен для Windows), который может быть использован для перечисления USB-устройств и поиска на них базовой информации, такой как VID, PID, производитель и строка названия продукта.
Jochen Arndt
В файловой системе virtual /proc можно найти много общей системной информации.
Видишь ли https://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
Конкретную информацию об оборудовании можно найти в псевдофайловой системе /sys/class.
Видишь ли http://man7.org/linux/man-pages/man5/sysfs.5.html
Там вы можете получить, например, состояние батареи в /sys/class/power_supply/BAT<n>.
Также часто существуют инструменты командной строки для конкретного оборудования, такие как upower для состояния батареи.
Другой вариант-проанализировать загрузочные сообщения (используя dmesg или если они вошли в файл типа /var/log/boot с помощью этого). Он содержит информацию об обнаруженном оборудовании.