Could hardware vendors be deliberately blocking and sabotaging Linux? What would their incentive or motivation be? One would think that would be just stupid, since no matter how small the Linux market is, at the end of the day there will be money exchanging hands. Why would a company say no to paying customers?

In 1998 the Halloween documents, (a confidential memorandum on potential strategies relating to free software, open-source software, and to Linux in particular) established that Microsoft actually fears the Open Source and Linux movement. So would it be too far fetched for Microsoft to use it’s clout and deep pockets to convince hardware vendors to block Linux? I don’t want to jump the gun (or have I already?) but Microsoft isn’t really known for it’s white hat business tactics.

A very bright guy named Ryan (aka TheAlmightyCthulhu over at the Ubuntu Forums) has disassembled the BIOS on his Foxconn motherboard and found a very peculiar behaviour. Long story short, he found several tables written for almost all Microsoft OS’es and only one badly written table for Linux. The Linux table does not correspond to the board’s ACPI implementation. Causing weird kernel errors, strange system freezing, no suspend or hibernate, and other problems. What’s interesting is that ACPI is an open industry standard, and has nothing to do with Microsoft or any other proprietary standards. So all these errors and problems should not exist.

Ryan has found a way to salvage this, down to just crashing on the next reboot after suspend. However the only way to fully rectify this is to buy a Vista CD. According to Ryan, it’s very hard to believe that this is just a simple mistake or a bug, it’s way too calculated:

After looking through the disassembled BIOS for the last several hours, rebooting it, and tweaking it more, I’d say this is very intentional, I’ve found redundant checks to make sure it’s really running on Windows, regardless what the OS tells it it is, and then of course fatal errors that will kernel panic FreeBSD or Linux, scattered all over the place, even in the table path for Windows 9x, NT, 2000, XP, and Vista, and had to correct them (Well, at least divert them off into a segment of RAM I hope to god I’m sure about)

No, this looks extremely calculated, it’s like they knew someone would probably go tearing it apart eventually and so tried to scatter landmines out so as to where you’d probably hit one eventually.

So if it is a mistake, or incompetence, then it’s the most meticulous, targeted, and dare I say, anal retentive incompetence I’ve seen. The story became an instant hit on almost all social media sites; Digg,Reddit, and Slashdot. But if you thought that that was interesting then there is still more juicy details, it’s so scandalous it makes the Halloween documents look silly.

Back in early 2007, in a court hearing involving Comes vs. Microsoft, an E-mail (dating back to 1999) from Bill Gates to some of his subordinates *was released. In the E-mail, Bill Gates complains that Microsoft has to do all the work, and Linux reaps the benefits! He didn’t explicitly say that Microsoft should sabotage hardware for Linux, but he seemed to be toying with the idea of making the API’s work well with WIndows and not with other OS’es. Here is the full text of the E-mail:

One thing I find myself wondering about is whether we shouldn’t try to 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 API’s 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.

Here is a full PDF of Bill Gate’s E-mail. This whole thing blew up today, and we have not yet got an official response from Foxconn. But I believe it’s way too convenient for both of these two incidents to be independant!