Personal tools

Xenophobic Firmware

From GPLv3 Wiki

A hardware device is released (for example a Network Appliance), it contains 80-90% GPL/LGPL software.

The 10-20% non-gpl parts are the real important parts for this device's functionality (for example, a proprietary ADSL3+ application for some custom hardware with no hardware specs) The presence of that application does not violate the GPL (it is just there running with every other app on the box). No GPL alternative exists for this application.

Those important parts however HATE new or unfamiliar software running with them.

When they start, and while they run, they continually check the device to ensure every program running is known to it (say by generating a cryptographic hash of the in memory kernel image, and running process images) It does this by reading physical memory and does not call or link to these tasks. If a process is discovered that is not known to it, or a process that is known is not the same as it expects (ie modified), the Xenophobe ether refuses to run, or worse halts all operations on the unit.

The user then has 2 options,

1. Don't put any modified software on the unit, so the Xenophobe is happy.
2. Don't put the Xenophobe on the unit, in which case the purpose of the device is neutered and it is no longer functional in any meaningful way.

In either case, even though the hardware vendor can give you the source code for the GPL/LGPL parts, freedom 0 is thwarted by either the presence or absence of the Xenophobe. In case 1, it just wont run, cause the Xenophobe kills everyone. In case 2, there is no point because the primary function of the device is inoperative. Does this system take Freedom 0, the freedom to run the software as you wish, and nullify it without violating the GPL? --Stevo 09:52, 29 September 2006 (EDT)