2 ms·
> A device with a nonprogrammable ROM could be be harmful, and that could be due to code. But it is not fixable by programming, just like a harmful toaster. So
by comex 4y ago
> A device with a nonprogrammable ROM could be be harmful, and that could be due to code. But it is not fixable by programming, just like a harmful toaster.
So why is it better to be harmful and unfixable than harmful and fixable?
I can think of one reason: when something can't be updated, whether that be a ROM or hardware itself, device manufacturers are more likely to keep that thing as simple and well-defined as possible, in order to limit risk. Complex functionality, opinionated functionality, potentially user-hostile functionality: that is left to updatable software.
But that is only a heuristic, not a fundamental moral value. It cannot justify behavior like [1], where an existing hardware component, designed with the idea that its firmware would be updatable, has a downstream hardware manufacturer put that firmware into something hard-to-update for the sole purpose of getting Respects Your Freedom certification. To be fair, the Librem 5 still does not have RYF cerification (who knows why), but I vaguely (perhaps wrongly) recall there being older examples of similar shenanigans.
There is also the example of Linux-libre removing warnings to update insecure microcode. It doesn't make the un-updated microcode any more free! At best it protects against a hypothetical attack where the manufacturer adds a backdoor in an update, but again that seems less like a fundamental moral value, more like a practical question of threat models and security tradeoffs.
[1] https://puri.sm/posts/librem5-solving-the-first-fsf-ryf-hurdle/ https://puri.sm/posts/librem5-solving-the-first-fsf-ryf-hurd...
- kazinator 4y ago> So why is it better to be harmful and unfixable than harmful and fixable? In terms of the harm, it isn't better; harmful is harmful. A non-programmable device is more freedom-respecting than one that is only programmable by a vendor. It causes users to have some blackbox whose future behaviors are controlled by third parties. The situation with the non-programmable device is a vacuous truth. Like why is it possible that "all crows in set X are black" if X is an empty set? Yet not if X is a set containing one white crow? "Nobody can program this device" implies that users are just as free to program the device as the vendors and their cohorts. The statement "any firmware that can be flashed onto this device is allowed to be a nice, clean-smelling piece of GNU software" is a logically true statement, if the set of what can be flashed is empty. The statement becomes false when the set of what can be flashed becomes nonempty, and excludes free software. It's a waste of time to try to fix your definitions in order to eliminate "weird" vacuous truths. It's like trying to change the definition of what is a black crow so that not all crows are black in an empty murder of crows.