I know of the existence of the Microsoft Win32 API, which allows the programmer to manipulate low-level resources such as serial ports, memories, CPU, GPU, etc. However, I work with Linux environments, and would like to know how to access the hardware in Linux using the C language.