Re: Proposal: The DFSG do not require source code for data, including firmware
On Tue, 22 Aug 2006 15:18:04 -0700, Steve Langasek <email@example.com> said:
> Hi folks, Ever since the sarge release, an ongoing question has
> been: what do the DFSG require for works that are not "programs" as
> previously understood in Debian? Several rounds of general
> resolutions have now given us answers for some subclasses of
> non-program works, but debate still rages regarding one particularly
> important class: firmware for peripheral devices.
Actually, I disagree, and, even worse, so does the common
definition of the phrase computer program: asking google about
define: computer program gives:
| * A computer program is a set of statements or instructions to be
| used directly or indirectly in a computer in order to bring
| about a certain result.
| * A combination of computer instructions and data definitions that
| enable computer hardware to perform computational or control
| * A series of instructions or statements, in a form acceptable to
| a computer, prepared in order to achieve a certain result.
| * program: (computer science) a sequence of instructions that a
| computer can interpret and execute; "the program required
| several hundred lines of code"
| * A computer program (often simply called a program) is an example
| of computer software that prescribes the actions
| ("computations") that are to be carried out by a computer. Most
| programs consist of a loadable set of instructions which
| determines how the computer will react to user input when that
| program is running, i.e. when the instructions are 'loaded'.
What is firmware, then? Speaking as en electrical engineer, I
would say that firmware is just compiled binary programs that are
meant to be executed by a processor (that often lives on the
mainboard) which happens not to be the contral processing unit.
Why is freedom of software only important for the central
processing unit, but immaterial for other processing usints?
And, given the trend of multiple processing usints, and not
all of them being symmetric (the cell, for example, the central
processing unit serves as little more than a traffic cop), with
processing increadsingly off loaded to the graphics processing unit,
physics processing units, encryption processors, biometrics
processors, peripheral processing units, we should be careful about
how we define processing units for which software freedom in
Si, am I silly and alone in thinking that firmware is binary
computer programs? Let us ask google to define: firmware:
| # An Often-used microprogram or instruction set stored in ROM. Usually
| # refers to the ROM-based software that controls an unit. Firmware is
| # found in all computer based products from Cameras to Digital
| # Peripherals
| # Software contained in a read-only memory (ROM) device.
| # Proprietary code that is usually delivered as microcode as part of
| # an operating system. Firmware is more efficient than software loaded
| # from an alterable medium and more adaptable to change than pure
| # hardware circuitry.
| # instructions and data programmed into the circuits responsible for
| # controlling the operation of peripheral devices
| # These are permanent instructions and data programmed directly into
| # the circuitry of read-only memory for the purpose of controlling the
| # operation of the computer or disk drive.
| # Software (programs or data) that has been written onto read-only
| # memory (ROM). Firmware is a combination of software and
| # hardware. ROMs, PROMs and EPROMs that have data or programs recorded
| # on them are firmware.
| # Computer instructions which are permanently imbedded in the
| # circuitry, usually in a ROM chip.
| # Programming inserted into programmable read-only memory (PROM), thus
| # becoming a permanent part of a computing device. Firmware is created
| # and tested like software (using microcode simulation). When ready,
| # it can be distributed like other software and, using a special user
| # interface, installed in the programmable read-only memory by the
| # user. Is sometimes distributed for printers, modems and other
| # computer devices.
| # In a CD recorder, firmware is the programming instructions contained
| # on a ROM chip within the CD recorder which tell the recorder how to
| # respond to commands issued by software. Some firmware is
| # flash-upgradeable, meaning that you can upgrade the firmware by
| # running a piece of software on the computer attached to the
| # recorder. Other firmware is coded into non-rewriteable chip, so the
| # entire chip must be changed in order to upgrade the firmware.
| # A computer program or software stored permanently in PROM or ROM or
| # semi-permanently in EPROM.
| # Programs kept in semi-permanent storage, such as various types of
| # read only memory. Software is “burned in” on the memory device so
| # that it is non-volatile (will not be lost when power is shut off).
| # Programs or instructions which are stored in read-only memory.
| # The same as software, except it is executed from ROM, and does not
| # disappear when the computer is turned off. Almost any software could
| # be in ROM, except programs that modify themselves as they run.
| # this refers to software, applications and/or data which is stored in
| # a ROM
| # Computer instructions stored in ROM, as in a game cartridge.
| # is low level software that controls the system hardware.
| # System software or hardware that has been written and stored in a
| # device's memory that controls the device.
| # Executable software that is stored within a ROM.
| # Software that is permanently stored in a chip. The BIOS on a
| # motherboard is an example of firmware.
| # A micro program often used and stored in ROM. Normally the ROM based
| # software is in all computer based products from PC´s to digital
| # cameras. You will often see firmware updates for electronic goods
| # that deal with problem issues.
| # Software or programming code that is permanently burned onto a ROM chip.
| # Any software stored in a form of read-only memory----ROM,EPROM,or
| # EEPROM---that maintains its contents when power is removed. The BIOS
| # used in IBM-compatible computers is firmware.
| # Programming embedded onto a computer’s ROM chips. This information
| # is permanently burned into the chip and can be changed only by
| # replacing the chips, or in the case of EEROM by a special
| # procedure..
| # Software which is semi-permanently stored in read-only state on a
| # computer chip. It is used for vital programs, such as the operating
| # system core, which must not be lost when the computer is turned
| # off.
| # A set of program or software embedded in a device that instructs how
| # the device should execute or perform. Firmware may or may not be
| # updated depending on the ROM chip type and design.
| # (computer science) coded instructions that are stored permanently in
| # read-only memory
| # In computing, firmware is software that is embedded in a hardware
| # device. Often it is provided in flash ROMs and can be updated by an
| # end user.
> 4. determines that for the purposes of DFSG #2, device
> firmware shall also not be considered a program.
This would require us to amend the foundation document of the
DFSG, and define that what Debian defines as software program
is different from the common definitions of the term
In order for us to have a meaninglul foundation document, we
can't debate and use our own "special" definitions of common terms,
since the definition in turn uses words that can be "defined" in a
So, unless otherwise stated, the foundation document terms
refer to commonly understood meanings of words; looking to
dictionaries, encyclopedias, and common references.
Calling firmware not programs is our own "special" definition
of firmware, and or program, and hence must be defined explicitly in
the DFSG. If we want to state that we only consider certain programs
to be free, we ought to be upfront and clear about it in our
Meester, do you vant to buy a duck?
Manoj Srivastava <firstname.lastname@example.org> <http://www.debian.org/%7Esrivasta/>
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C