Open Source Purity

Here's a question that came up in my latest travels thru open source land.

Is it possible to be an open source purist?

I see a problem...

Microcode

Everything on your computer is software, including (some people probably don't know this) the processor that runs the software. If you were to open up a Pentium or a PowerPC chip, you'd see that there are levels of emulation inside the machine, and at the top level the hardware is actually a piece of software burned into read-only memory. This kind of software is called microcode.

So, when you buy an Intel box or a Mac to run Linux, you're actually using closed proprietary software. You're making a compromise, even an open source purist is. I think it's a good compromise to make, because setting up a chip production line is very expensive. When Intel gears up to produce a new chip they spend billions of dollars. To justify that, they can't ship the source code for the microcode. If they did, their competitors would get the benefit of their investment. They would lose their proprietary advantage, their stock would go down, and their shareholders would boot out the management, and replace them with people who took their investment seriously.

Postscript

I received several emails saying basically what Bruce Hoult, bruce@hoult.actrix.gen.nz said: "That turns out not to be the case. RISC processors such as the PowerPC, SPARC, Alpha, MIPS don't have microcode.

"One impetus towards RISC was that machines such as the VAX were starting to expose microcode to the end user -- with e.g. the VAX 11/780 optional "Writable Control Store" -- and people were writing their own microcode to do specialised tasks. This caused problems with security and with different people wanting different incompatable microcode setups on the machine at the same time.

"Swapping the WCS on each timesharing task-switch was a practical impossibility. It was a mess. People were trying to write compilers that could produce microcode, and microcode was getting modified to make it easier to write compilers for. Eventually, the microcode came out as RISC instructions, and the Writable Control Store and Microcode ROMs both disappeared, replaced for all practical purposes by the L1 instruction cache."

My post-postscript

Thanks for clearing that up, but I think the point still has merit. There are levels below which everything is closed and proprietary.