На C можно, но для разных ОС разные апи: если linux, то PosixAPI, если windows WinAPI. Соответсвенно эти апи предоставляют программный интерфейс к низкоуровневым вызовам.
Можно и не только на C, но на нем удобнее
Си тут как бы ни при чём, в Linux например многие данные легко достать из псевдофайловой системы /proc, где они хранятся в виде текстовых файлов, тут даже bash справится.