From Wikipedia, the free encyclopedia
Jump to: navigation, search

Old talk[edit]

Can someone explain to me what is meant by "A hardware configuration is usually used to represent the software." The line doesn't really make sense to me.

Who knows. Maybe it was in fact meant the other way round: a hardware configuration is represented by data contained in the firmware (which is software).
Makes sense to me. A 'hardware configuration' (as in some physical construct) is used to represent software, a form of information. ex. the hardware configuration is the flash chip and the software is the firmware it contains.

Much firmware is contained in ROMs. Many ROMs have a physical wire per bit, connected to the Hi or Lo power lines. The configuration of a particular wire -- whether it is connected to Hi or Lo -- represents a 1 or 0 bit. (The Core rope memory also represented bits by physical location of a wire). The data can be (and in some cases has been) read off with a microscope, by looking at which way the wires go. Most other software is represented by magnetized spots on hard drives or voltage levels in RAM -- but such data cannot be detected by a microscope. Perhaps that is what the original poster meant ?--DavidCary 09:11, 25 Jun 2005 (UTC)

Picture is wrong ?[edit]

"A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications"

Assembler is horribly misplaced. Assembler is _an application_ which produces executable programs (by reading, parsing and converting human-readable source assembler program into machine code). So in this picture assembler sits among applications.
If picture author meant "assembler CODE", then it is also misplased (should be removed altogether) - ALL machine code can be called "assembler code" in a broad sense in the term (as opposed to "high-level languages"). Computer cannot execute anything else. Firmware is machine code. Kernel is machine code. OS is machine code. Etc... The difference is that firmware is commonly writted _directly_ in assembler language, whereas most of the kernel, OS, and apps is written in C, er, high-level languages, and then compiled into assembler (optionally) and then into machine code.

where did the name "firmware" come from ?[edit]

Does the name "firmware" imply that it's "harder" than regular software but not as "hard" as hardware? Since it's sorta inbetween - software that's built right into the hardware?... Just curious - thought maybe there should be something about how it got it's name...

I believe so. Supposedly firmware is somewhere in between hardware and software where the distinction between them is unclear.

Doesn't the link to 'Embedded Systems' when referring to the embedded nature of the firmware seem erroneous? The reference is embedded as in contained not as in an embedded computer system.


I am not a lawyer, but my understanding is that from a legal perspective, firmware is no different than any other kind of software. See software license and software copyright. From a hardware perspective, ROMs often include a copyright statement indicating the company that produced it and the year it was produced. --DavidCary 09:11, 25 Jun 2005 (UTC)

External links[edit]

Although it's not under the 'external links' headline, there is a "Tanenbaum 79" link under the 'computer architecture' diagram that doesn't go anywhere.

Firmware is not only software[edit]

The first line reads: "In computing, firmware is software that is embedded in a hardware device" But these days, firmware can contain a configuration for an FPGA chip in the embedded device. It could also contain other configuration information. FPGA configuration data could potentially be > 1MB, hence a significant part of the firmware. This configuration is definitely not considered software. We could change the first line to: "In computing, firmware is software or configuration information that is embedded in a hardware device" Then add an item to the examples section about FPGAs.

I agree. The definition of firmware needs to expand a great deal. Firmware in the sense of FPGAs and ASICs (usually written in VHDL or Verilog languages) is absolutely not software since it is not executed by a processor of any kind. In fact, firmware is often used to write processors in hardware that execute software.

The usual hijacking of words: The term software (for data) was coined in order to contrast to the old term hardware (for devices), based on the simple observation that data can be changed much more easily than devices can (with firmware "in between"). Some data is intended to be interpreted as program code (i.e. executed), some describe data structures manipulated by program code, others describe data structures used to configure hardware (such as in an FPGA), etc etc. (talk) 00:19, 15 December 2009 (UTC)

Maybe This should be read first: Firmware is by no means usable for FPGA.


I wikified the page as you guys asked. I probably did a horrible job, though- Sorry if I did it wrong. 18:18, 23 March 2006 (UTC)

Can we remove the "Assembler" and "Kernel" from the diagram ??[edit]

Assembler is a form of expressing CPU instructions, not a layer in itself. Kernel is an operating system core. It would make more sense, if Assembler is struck, and kernel is replaced by Device Drivers, followed by Operating system (or Kernel if "we" want to stick with that term), followed by Applications.

Aki Korhonen 17:05, 7 November 2006 (UTC)

In Tanenbaum 79 a layer is formalized as a Virtual Machine (VMi) for the above levels and that exposes for them a set of resources by a language Li.--BMF81 22:49, 8 November 2006 (UTC)

I understand. However, after dealing with these distinctions for 20+ years, I can say that mixing these concepts makes it difficult for others to follow. Assembler is not really the name of a language, but rather a higher-level abstraction, that is compiled to create the underlying machine language instructions, similar to (but with less abstraction capabilities than) C, C++, Pascal, etc. ... In fact, all of these languages produce machine language instructions, and are executed similarly in the same environment. And last but not least, firmware is often written with a multitude of tools, including higher level languages such as C.
Because of these confusing elements I have found it to be far easier to explain the layered architecture based on functional responsibility in a system. Thus firmware is squeezed between hardware and device drivers, and so on. It is a separate implementation-specific discussion as to what types of interfaces these layers provide, how they are accessed, and what types of tools are used for such access. Aki Korhonen 06:21, 9 November 2006 (UTC)
FWIW, on the HP 4101, SOME of the firmware resides on the hard drive. So using the location of firmware as part of the definition may need updating (or deletion).

LorenzoB 04:50, 21 December 2006 (UTC)

Firmware vs BIOS[edit]

According to this page, a BIOS is a type of firmware, however, there is some evidence to the contrary. In particular, the Nintendo DS has both; BIOSes built into the CPUs and firmware stored on a flash ROM chip. There are a few key differences on the DS:

  • BIOS is memory-mapped, while firmware must be copied serially from the flash ROM chip into memory.
  • BIOS is read-only, built right into the CPU core, while firmware is on a rewriteable flash ROM.
  • BIOS executes immediately at power-on and serves only to load the firmware into memory, initialize hardware, and contains some useful routines that programs can call. Firmware is responsible for displaying the startup menu and applications built into the system (Pictochat and DS Download Play).

I can see the logic in saying a PC BIOS is firmware, since it does the initialization and useful routines as well as displaying the boot menus. Perhaps a small note is needed, that while PC BIOSes double as firmware, not all BIOSes do? 04:17, 17 March 2007 (UTC)

I changed the article some, now I think the answer to your question could be determined easily by reading the first few paragraphs of the page. Universalss (talk) 06:01, 31 August 2009 (UTC)

I changed the introduction back (no offense intended!)
  • As you both probably know, all programs are "memory mapped" - when executing - so the philosophical question arises: Are we talking about the program code itself or the physical device holding that code, when using the terms BIOS and firmware? Here, different people would give different answers, but I would vote for the code itself, not the device holding it.
  • To be precise, BIOS is not built "right into the CPU core" (by definition), but resides in a ROM next to it (in this case).
  • Neither BIOS (Basic Input/Output System) nor firmware ("firm software") are very precise terms (and hasn't been for the last 25 years). However, Nintendos terminology (as presented here) may still be considered slighly non standard, at least with older original usage of the terms in mind: Executing at power-on and initalizing hardware is a job for the typical firmware as well as for the typical BIOS. The reason Nintendo would call the higher level code firmware is probably just to contrast it with the slightly less "firm" software or applications in a general computer. (Uncommon terminology in japanese documentation is not uncommon either, at least in the past.)
  • There is one rather clear distinction though: A BIOS is almost always program code (and fixed data) intended to execute on a CPU; firmware may be just that, or, equally well, any other type of data: It may be configuration data for an FPGA gate array, or microcode to generate the internal control signals in a CPU, or in some other type of processor, or just about any piece and type of digital sequenced electronics. A BIOS is therefore, in most cases, a special case of firmvare.
HenkeB (not logged in) (talk) 21:50, 16 September 2009 (UTC)

Bad Image[edit]

This has been mentioned a couple of times in the discussion: what's with the image? Assembler is not between Kernel and Firmware/Hardware.... Kernel doesn't need to be assembled, it is already binary. Also, why are Kernel and OS so different? They share most of their functionality. I think the image should be remade or removed. I will remove the image in a couple of days if there is no opposition, and if possible, remake it without the mistakes. --DFRussia 23:37, 18 August 2007 (UTC)

Wii and Xbox 360[edit]

I have a wii, a 360 and a DS and I have seen a psp and a ps3 in action during firmware upgrades. As far as I can tell the wii and 360 don't use firmwares in the same sense as the other consoles. Both the wii and the 360 employ an operating system installed on the internal memory or hard disc respectively. One can deduct this fact from the time it takes to download the update and install. In case of the wii and 360 this takes mere seconds. On the ps3, psp and DS this takes a couple of minutes, due to the complete firmware flash being rewritten. (talk) 15:22, 4 June 2008 (UTC)

Firmware and remote control[edit]

Please give some more background about firmware in 90s remote controls, as suggested in the article. I currently doubt this fact. --Abdull (talk) 12:03, 27 January 2010 (UTC)

Doubt what? That a remote contains microcode and machine code? (talk) 22:20, 13 February 2010 (UTC)
I had wondered about that photo as well. It doesn't seem to be a very clear example of a firmware controlled device anyway; perhaps a Linksys router or a CHDK camera would be a better poster-child for firmware. -- Autopilot (talk) 13:06, 27 January 2010 (UTC)
A simple remote is familar to everyone and contains at least one level of firmware (they actually often contain at least two: microcode and machine code). A remote is therefore a perfect ubiquitous example of a firmware controlled device. (talk) 22:20, 13 February 2010 (UTC)

Not just read-only memory[edit]

The IEEE definition might say "read-only", but a lot of firmware is stored in read-mostly media/flash. Guy Harris (talk) 19:29, 1 May 2012 (UTC)


can you please explain how Firmware is important for an electronics devices like digital energy meter? How to undersatnd in a better way as how firmware is different from software? — Preceding unsigned comment added by (talk) 04:23, 4 December 2012 (UTC)

Security Risks section[edit]

The security risks section cites only one person calling for open source firmware due to the perception of increased security. Doesn't strike me as particularly NPOV.-- (talk) 04:45, 5 June 2014 (UTC)

As-is, Firmware § Security risks section raises a few eyebrows; however, content of the section is pretty much fine and reflects the true state of things, though we'd need more references and a further expansion so there's no doubt about the WP:NPOV. — Dsimic (talk | contribs) 02:33, 8 June 2014 (UTC)