This is where I'm going to write about the damage M$ has done to power management in commodity computing, something that has wasted the world's time, effort and electricity. M$ helped make both APM and ACPI, but their involvement has been bad news for everyone, especially M$ users. ACPI is such a huge mess that only the power of free software could fix it. No, you can't just buy a Mac and have things work. ACPI is a non standard with all the anti-competitive malice and complexity of the Word Doc format. After a decade of failure relief is in sight.
to implement ACPI, the Linux kernel must run arbitrary, binary-only code from outsiders, which implements a huge, complex specification in kernel mode with a bulky interpreter (built into the kernel) hoping that there are no bugs or misfeatures in this code even though BIOS code has been the source of endless headaches for years. ACPI code could be a point of entry for surveillance software, "content management" code, and no end of other, malign functions. And it all runs in kernel mode with full access to the system. People don't trust it, and with good reason.
Linux Torvalds described ACPI his way in 2003:
APM was a lot easier
... Modern PCs are horrible. ACPI is a complete design disaster in every way. But we're kind of stuck with it. If any Intel people are listening to this and you had anything to do with ACPI, shoot yourself now, before you reproduce.
The nastiest part of that is, it actually works on some machines, but it's completely impossible to debug. Because when the machine doesn't come up, you need an ice to know what's the hell is going on, because you don't have any devices that work. Even getting a serial line out isn't very good, because you're southbridge is hosed.
By late 2005, ACPI was still under "furious" development and parts were broken in 2.6. Many parts would never make it into the 2.4 kernel, like S3 and S4BIOS.
Thanks to M$ anti-trust trails, everyone now knows why. Bill Gates' email shows that he begrudged power management for GNU/Linux and ordered M$ to make things difficult, technically and legally.
From: Bill Gates
Sunday, January 24, 1999
One thing I find myself wondering about is whether we shuldn't try and make the "ACPI" extensions somehow Windows specific. It seems unfortunate if we do this work and get our partners to do the work and the result is that Linux works great without having to do the work. Maybe there is no way to avoid this problem but it does bother me. Maybe we could define the APIs so that they work well with NT and not the others even if they are open. Or maybe we could patent something related to this.
It should come as no surprise that motherboards which intentionally lie to GNU/Linux have emerged on the market . Details of the fix show the mistake was malicious and the same article shows how widespread the problem was. MSI, Nintendo Wii, XBOX 360, and Playstation 3 systems for example, were made by Foxcomm and have the bogus ACPI. Mr. Gates created a toxic environment for the free software community, one in which such "mistakes" happen routinely. Those more familiar with M$'s long history of technical sabotage know the routine, they create a mess and blame others.
Sabotage is bad, but M$ did not get it right for their customers either. A former Intel engineer, wrote an opinion about XP's limited options that is worth quoting:
... there's no way (by choosing one of these schemes) to simply put the processor in its low performance state without it getting slower and slower.
... Microsoft clearly didn't trust that Intel had done their homework and selected a LFM that resulted in the lowest reasonable power consumption. Does throttling the processor even more help save power? Not really - maybe a few more drops could be squeezed out, but the response and performance of the processor is noticeably compromised through their wonderful "degrade" technique.
This just scratches the surface of power management problems under Windoze. Memory handling is clumsy so applications end up with corrupted documents even if the OS could do what it's supposed to do. The net result is that most of the world is robbed of power management, place keeping and useful portable computing. They run their systems flat out and have to reboot them daily. In case you are wondering, Vista is hit and miss too.
M$ reps try to cast blame elsewhere when quality issues like this are brought up but they can't hide from their failures. They blame other hardware and software makers. More insultingly, they blame users. These arguments don't hold water for a person who routinely gets multiple months of uptime from old laptops using GNU/Linux and APM. Thanks to the power of free software development, when ACPI works it works better than Windows does. Non free software does not work. It is defective by design.