# Because nobody wants to develop modern machines all free?



## Jorge Luis (Jul 21, 2016)

It has come to my attention that in modern machines, the processor, the memory controller, the pci
bridges, the drive controller; all of them contain non-free blobs.
The boot firmware is a non-free blob, which believes it owns the
machine, modern machines are not VIC-20's.

Because nobody wants to develop modern machines all free?


----------



## Murph (Jul 21, 2016)

Many of the big vendors don't want to give away the internals of their devices, other than under an NDA to a limited number of people (which is fundamentally problematic for developing a free and open alternative to their firmware).  It is what it is, and while it might be nice to have a 100% free and open system, I personally think it would be easier to keep the tide out (unless some incredibly rich philanthropist chooses to throw a few billion at developing alternative hardware around the goal of being open; including CPU, hard drives, and all the various smart chips in the middle).

It costs millions or 10s of millions to develop each new chunk of highly complex hardware from design through to bulk manufactured product.  The vendors basically regard the internal microcode and firmware as a proprietary part of the overall product, and may regard the internals as a protected trade secret.  Fortunately most of them have the sense to at least give some recognition of the need for permissive-free drivers, so we don't have to tolerate proprietary blobs in the operating system itself.


----------



## gonzopancho (Jul 22, 2016)

Even with open source boards, that have open source boot firmware, such as the Minnowboard, there are parts of the BIOS (mostly concerned with the "MRC" registers) that require access to information that nobody outside the chip vendor will ever gain access.


----------



## jrm@ (Jul 22, 2016)

Jorge Luis, you may be interested in this BSDCan talk: risc v berkeley hardware for your berkeley software.


----------



## gofer_touch (Jul 22, 2016)

Hmm. This thread reminds me of IBM's OpenPower platform. Perhaps in the future the rise of open computing platforms may change the paradigm and put pressure on the current status quo.


----------



## Murph (Jul 22, 2016)

gofer_touch said:


> Hmm. This thread reminds me of IBM's OpenPower platform. Perhaps in the future the rise of open computing platforms may change the paradigm and put pressure on the current status quo.



Yeah, it may well change sometime in the longer future.  I just don't see it changing for the i386/amd64 world in the short to medium term.  Right now, there's just very little incentive for the major vendors in that space to be open, and deeply established practice of keeping things closed by default.

An interesting current development which I'd personally love to see succeed is arm64 servers, such as AMD's Opteron A1100.  I'm not quite certain exactly where they are on the open vs. closed firmware issue, but the overall simplicity and general openness of the ARM architecture might encourage it.  The core architecture has been more or less open from the original Acorn ARM2/ARM3 days.


----------



## fossette (Jul 22, 2016)

The interfaces must be documented in order for engineers and programmers to use the closed architecture components.  Even more so, the interfaces are somehow "pressured" to be relatively similar from versions to versions in order to maintain/facilitate compatibility with already existing compilers, drivers and other software.  That's inherently a plus for open software.  Hopefully, there's no mining code or other energy wasting stuff buried into the circuit of closed architecture components.

Dominique.


----------



## zspider (Jul 25, 2016)

People like to get paid for their work, it is an effective motivator. Some of the best additions to this project were from people who were contracted to do the work - like the KMS additions.


----------



## tomxor (Jul 25, 2016)

Jorge Luis said:


> It has come to my attention that in modern machines, the processor, the memory controller, the pci
> bridges, the drive controller; all of them contain non-free blobs.
> The boot firmware is a non-free blob, which believes it owns the
> machine, modern machines are not VIC-20's.
> ...



Regarding the blobs specifically, I _suspect_ their increasing presence and size is not directly desired but instead a result of the natural evolution of hardware to be more generic, and for the more specific parts to be soft microcode and firmware. As an oversimplified example x86 is layered up with RISC at the very bottom as actual circuits, then most of the layers that transform it into CISC can be considered soft, implemented in microcode etc...

Think of it this way though... the only real difference to how this was done in the 90s, is that all that complex stuff would be in hardware, and it would still be proprietary without the VHDL source provided, it could still have backdoors and other nasties hidden in it, the chips are essentially a binary blob too, you have to use a TEM to reverse engineer it. It's quite an arbitrary separation. The important thing is that replacing microcode and firmware is not as easy to re-write as the block device.

EDIT

That ended up a bit unfocused... my point was that firmware, microcode and the physical hardware should be considered the same in terms of openness. Asking why the microcode isn't supplied with source without asking why the hardware isn't supplied with source is a flawed enquiry.


----------



## ANOKNUSA (Jul 25, 2016)

zspider said:


> People like to get paid for their work, it is an effective motivator. Some of the best additions to this project were from people who were contracted to do the work - like the KMS additions.



Uh, "Speach" versus "Beer" and all that. I don't think OP was recommending slave labor in the IT industry.


----------

