libreboot-dev
[Top][All Lists]
Advanced

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

[Libreboot-dev] Hardware related confusions, Was: [GNU-linux-libre] MAME


From: Denis 'GNUtoo' Carikli
Subject: [Libreboot-dev] Hardware related confusions, Was: [GNU-linux-libre] MAME
Date: Sun, 3 Apr 2016 12:15:43 +0200

On Fri, 1 Apr 2016 20:42:40 +0200
Jean Louis <address@hidden> wrote:

> It is good to remember that "free firmware" cannot be free software,
> as there is no corresponding source code for that. It is firmware.

On Fri, 1 Apr 2016 19:14:23 -0300
Felipe Sanches <address@hidden> wrote:

> Now people seem to thing that the definition of "firmware" is
> something like "piece of lowlevel program without freedom-respecting
> source-code" :-P That's not true! Look how crazy this situation has
> got
That's because they have a very confusing understanding of what a
firmware really is.

This is probably because:
- "Firmware" is used in many different contexts. I like the definition
  given before ("low level software that talks directly to the
  hardware") There is still room for improvements though.
  I would add the fact that it's not a generic purpose software.
- Technology changes too fast, that has several consequences:
  - People continue to use a term when it no longer applies. Let me
    give a fictitious example:
    Imagine that the free software community had functional free
    software firmwares for non-smart phones[1] (called feature phones in
    jargon) before the smartphones would appear.
    Now when smartphones would appear, people would continue using the
    term fimrware[1] for a while, when relating to the software that
    runs on such devices. 
- Few people can gasp how the hardware works. Even computer
  science courses in universities don't go in great details on the
  topic. Many people with interest in computers get more or less how a
  CPU worked many years ago. But most people with interest in
  computers often don't deal with low level software.
- Among the people who deal with low level software, most of them are
  really specialized, and few touches very different areas of low
  level software.
- Some free software projects like the Linux kernel are confusing
  since they threat all "big data that you have to send to a
  peripheral for it to work" as "firmware" regardless of the fact
  that it might not be a firmware.
- Proprietary software is even worse: Many of such data are
  proprietary software, and as such, you can't even know if it's a
  firmware(code), some register dump, some configuration format, or
  whatever. Sometimes it's even encrypted (like with the Intel CPU
  microcodes). So you send "Something" to the hardware, but you have
  no clue what it is.
  However the free software community often have clues on what it
  does permit. For instance if you don't send that data[2] to your ATI
  GPU, 3D acceleration will stop working.
  Sometimes the hardware works fine without that data. Sometimes
  manufacturer such as Intel document what doesn't work without that
  data (called microcode here), for their CPU.
- Some hardware have code in ROM:
  - Sometime the data is a "patch file", this is to permit patching
    bugs in that code. The "patch file" has no permanent effects, you
    have to load it each time you start the peripheral.
  - Sometimes it's just a full firmware that is run instead of what
    is in the ROM. This is to have the same effects than above
    (fixing bugs).

I may have missed some of the reasons (yes there might be even more of
them).

I feels like that: https://xkcd.com/386/

Making related free software projects explain it in a way that regular
people can understand would be the first step in fixing it.

This is what Replicant is working towards
with: http://www.replicant.us/freedom-privacy-security-issues.php
There is still lot of room for improvement, especially to make it
easier to understand for less technical people.

Maybe something like it should be done for libreboot too.

This kind of documentation is really important for such projects.
This is what makes it possible for users to appropriate themselves the
technology. I think it's as important as the code[3].

References:
-----------
[1]This is fictitious.
[2]Such data is in fact composed of several files, some are probably a
   firmware, some probably are register dump, maybe there is some
   configuration too? I didn't look into it yet.
[3]Think of users not running libreboot and Replicant. Also for users
   running it, it might be more or less important depending on their use
   case(like journalism in repressive countries for instance).

Denis.

Attachment: pgpfcDkTSuYFG.pgp
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]