I've been working for months on OSUNIX (OpenSolaris technology
distribution) to slowly refactor out the dependency on closed
binaries. The other day during the lastest build (onnv_115) the kernel
package fails. (No big surprise here really) However, solving the
failure wasn't nearly as interesting as digging into some of the files
around the failure.
As it turns out.. There's a few binary files with binary license in
this island called onnv-gate. Looking a bit more into what others are
doing..
OpenBSD may or may not be sane, but it's a project I have a lot of
respect for. To cite one of their developers and possibly answer my own
question..
Reyk Floeter explained, "/there is a major difference between binary
blobs and firmware images; the blobs are loaded as code into the OS
kernel, but the firmware runs directly on the device on crappy embedded
micro CPUs./"
So there's a distinction being made here for open software and open
hardware. Blobs possibly being a security risk, but firmware not
executing directly on the host cpu and thus falling into a difference
category or lower risk.
So then on there's the edge case of microcode updates. Which generally
happen during a bios upgrade, but for convenience can be loaded each
time on boot..
usr/src/cmd/ucodeadm/amd-ucode.bin
usr/src/cmd/ucodeadm/intel-ucode.txt
i1480-usb-0.0.bin
Some possibly interesting links to help distinguish the thin line between tin hat and todo item.
http://kerneltrap.org/OpenBSD/That_Which_We_Call_Free
http://www.openbsd.org/lyrics.html#39
http://lkml.indiana.edu/hypermail/linux/kernel/0903.1/00335.html
So my goal today is to have everything be entirely open software. In
the future maybe this moves and the goal to have entirely open hardware
is also possible. I write these words now and wonder how I'll reflect
back in the years to come.