We know that hardware absorb energy. Everyone knows each OS has its own power management control.

I have a desktop computer (P4 3,2 GH HT, various HDD...). My processor have clock modulation capabilities (it can slow down to 400 MH!!!!)...

My questions are: is it possible to save enought energy using Linux kernel? How to control its behavior? Is it possible to know how energy is absorbed from my system (even with external elettrical tools... )
Wich hardware can poweroff itself? I know about hDD, but what about NICs , audio cards, video cards...