logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git
commit: 7892621d3ca4bc7b6b787fb949f3de72a121c695
parent c5683fdd797d5c8e1334dcaf3bf79330c11dda9a
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Thu,  1 Jun 2023 00:44:42 +0200

articles/firmware-broken-terminology: New Article

Diffstat:

Aarticles/firmware-broken-terminology.xml30++++++++++++++++++++++++++++++
Mconfig.ninja1+
Mfeed.atom.in3++-
Mhome.shtml1+
4 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/articles/firmware-broken-terminology.xml b/articles/firmware-broken-terminology.xml @@ -0,0 +1,30 @@ +<entry> +<title>Firmware is broken Terminology</title> +<link rel="alternate" type="text/html" href="/articles/firmware-broken-terminology"/> +<id>https://hacktivis.me/articles/firmware-broken-terminology</id> +<published>2023-06-01T00:00:00Z</published> +<updated>2023-06-01T00:00:00Z</updated> +<link rel="external replies" type="application/activity+json" href="https://queer.hacktivis.me/objects/bcf1e1ba-a560-4347-9a04-9ca8088e4a93" /> +<link rel="external replies" type="text/html" href="https://queer.hacktivis.me/objects/bcf1e1ba-a560-4347-9a04-9ca8088e4a93" /> +<content type="xhtml"> +<div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="h-entry"> +<a href="/articles/firmware-broken-terminology"><h1>Firmware is broken Terminology</h1></a> +<p> + Software and Hardware have pretty clear definitions, but when it comes to firmware… I ended up with the horribly vague definition that it's about software that's usually hard to modify or just external to the OS or just scary to update in case of failure. And I wouldn't be surprised to discover yet another common usage that would require to update this definition as it's pretty much a kitchen-sink. And I could bet that no one could say that some software definitely isn't firmware.<br /> + The annoying part is seems to serve as a way of hiding that it is in fact just plain software, meaning something you can modify, rewrite, audit, … albeit sometimes with the hardware putting some limits but that says more about the hardware than the software.<br/> + In fact you can sometimes avoid such hardware limitations with some flash storage instead, see <a href="https://en.wikipedia.org/wiki/Flash_cartridge">Flash Cartridges</a> for example, where you can even use data that used to be on a ROM on those, with no modifications to be done but then made easy. +</p> + +<p> + And in a case that happened to me quite few times, what's the firmware of a smartphone or home-router? Is it the whole software that runs on it (usually a Linux-based system stored on flash storage) except some user applications, or it is some parts of the software that runs on it and so which?<br /> + If you ask around, you'll get all kinds of answers, meaning that when you say "my phone/router's firmware" it ends up needing clarification, a difficult task if you never thought of alternative ways and near impossible if you're not so sure what the software in question is for.<br /> + The fun part of those devices, is how the software they run (main OS, bootloader, software for periperals, …) is almost entirely hosted on a single <a href="https://en.wikipedia.org/wiki/MMC#eMMC">eMMC</a>, sometimes through the aid of partitions and/or hardcoded offsets+length, meaning you can modify all that software from the OS without the need of dedicated flashing software (like <a href="https://flashrom.org/">flashrom</a>) or dedicated hardware like an <a href="https://en.wikipedia.org/wiki/Programmer_(hardware)">external programmer</a>. +</p> + +<p> + So as you might have noticed, I just avoid the use of the term firmware as much as possible to prefer using something more precise, a rather usual one ended up being "embedded software". I don't expect everyone to do it, but I would appreciate technical people doing so, specially in the libre software community. +</p> + +</div> +</content> +</entry> diff --git a/config.ninja b/config.ninja @@ -11,4 +11,5 @@ build nginx_autoindex.xsl: xinclude nginx_autoindex.xsl.in | ./templates/head.xm build articles/2022$ Summary.html: article entry.xsl articles/2022$ Summary.xml build articles/Why$ I$ embraced$ Wayland.html: article entry.xsl articles/Why$ I$ embraced$ Wayland.xml build articles/cve.org-disaster.html: article entry.xsl articles/cve.org-disaster.xml +build articles/firmware-broken-terminology.html: article entry.xsl articles/firmware-broken-terminology.xml build articles/self-hosting.html: article entry.xsl articles/self-hosting.xml diff --git a/feed.atom.in b/feed.atom.in @@ -8,8 +8,9 @@ <name>Haelwenn (lanodan) Monnier</name> </author> - <updated>2022-12-30T13:00:00Z</updated> + <updated>2023-06-01T00:00:00Z</updated> <!-- new.sh: new articles here --> +<xi:include href="articles/firmware-broken-terminology.xml"/> <xi:include href="articles/2022%20Summary.xml"/> <entry> diff --git a/home.shtml b/home.shtml @@ -57,6 +57,7 @@ <li>2021-08-22: <a href="/articles/filetype%20automation">(Semi-)Automatic opening of Files</a></li> <li>2021-10-03: <a href="/articles/cve.org-disaster">The new CVE.org website is a security disaster so I made my own</a></li> <li>2022-12-30: <a href="/articles/2022%20Summary">2022 Summary</a></li> + <li>2023-06-01: <a href="/articles/firmware-broken-terminology">Firmware is broken terminology</a></li> </ol> </main> <!--#include file="templates/en/footer.shtml" -->