Há uma série de sensores dentro do seu sistema que detectam temperaturas e coisas do tipo.
Eles estão ligados a vários chipsets internos - normalmente um super chip IO que lida com isso junto com outras funções, e isso é exposto ao seu sistema por meio de várias APIs.
Quanto aos sensores em si - eles estão integrados em chips - sua CPU tem um baseado em um diodo sensível à temperatura .
Seu sistema operacional provavelmente fala com eles sobre alguma API interna - no linux, isso seria o sensorsd e seus lm_sensors front end, juntamente com um driver apropriado.
Na minha máquina de classe NUC e fedora, eu uso os seguintes drivers
Driver 'it87':
* ISA bus, address 0xa40
Chip 'ITE IT8771E Super IO Sensors' (confidence: 9)
Driver 'coretemp':
* Chip 'Intel digital thermal sensor' (confidence: 9)
e isso me diz (por exemplo)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +68.0°C (high = +105.0°C, crit = +105.0°C)
Core 1: +67.0°C (high = +105.0°C, crit = +105.0°C)