[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: LCC and blobs



Brian Thomas Sniffen <bts@alum.mit.edu> wrote:
> Matthew Garrett <mgarrett@chiark.greenend.org.uk> writes:
>> will happily present you with a copy of your system firmware (assuming
>> you're on x86). If you run ndisasm over it, you'll find it's x86 machine
>> code. You can even extract bits of it and run them. It looks awfully
>> like software. The fact that you lack the skills to turn it into
>> something that you recognise as software doesn't mean it isn't software.
> 
> And putting a paper copy into a good scanner will transform a printout
> of a program into software.  The fact that something has a two-way
> conversion to software doesn't make it software.  I've asked several
> times for a delineation, in the world where anything convertible to
> software is software, between what is software and what is not.  I
> have yet to read such.

All code that is executed is software. Other material that can be
represented digitally can be intermingled with software in such a way
that it is useful to treat the digital representation as software.
Anything that can't be represented digitally, and non-digital
representations of non-executable code, are not software.

This deliniation allows us to say that a processor or a graphics chip is
not software, any more than a book is. We would treat a verilog file
representing the function of that processor as software, in the same way
that we would treat a text file containing the contents of the book as
software. Code run on the processor of graphics chip is also software.

The alternative leaves us with a situation where you claim that software
ceases to be software is it's put in a slightly different (but equally
digital) form. The BIOS in your computer isn't abstracted away on the
other side of an insulating bus - it's sitting there in physical address
space, just like the contents of your RAM. You can read from it quite
happily - you're even free to execute code from it (and if you're
running XFree, it probably /does/ - one of the common ways to handle
DPMS code is to run it directly out of the video BIOS under vm86
emulation).

Arguing that executable code is not software while at the same time
believing that non-executable data /is/ software seems a strange
position to hold.

-- 
Matthew Garrett | mjg59-chiark.mail.debian.legal@srcf.ucam.org



Reply to: