Talk:Firmware
From Wikipedia, the free encyclopedia
[edit] Old talk
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)
[edit] Picture is wrong ?
"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.
[edit] where did the name "firmware" come from ?
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.
[edit] can anyone give me some insight as to copyrights within the firmware?
- As firmware is a generic term used to encapsulate a concept, the copyright in any particular firmware is variable and decoding it will be a matter specific to that firmware.
Huh?
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)
[edit] External links
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.
[edit] Firmware is not only software
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.
[edit] Wikifi'd
I wikified the page as you guys asked. I probably did a horrible job, though- Sorry if I did it wrong. 68.64.175.222 18:18, 23 March 2006 (UTC)
[edit] Can we remove the "Assembler" and "Kernel" from the diagram ??
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)
[edit] Firmware vs BIOS
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? 142.59.173.240 04:17, 17 March 2007 (UTC)
[edit] Bad Image
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)
[edit] Wii and Xbox 360
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. 84.193.179.126 (talk) 15:22, 4 June 2008 (UTC)