What does "Flashing the BIOS" mean? Are there benefits to flashing it? Is it safe? Should it be done inside or outside of an OS, for example my current Windows 7 installation?
There is a chip in your computer that has bootup instructions (The Basic Input Output System). It tells your computer how to do very basic things, interact with some hardware, load the operating system, etc. Flashing it means to update it with a new program. You shouldn't do it unless you need to do so in order to fix something.
The process is usually done by using either built-in functionality of the old BIOS, or a MS-DOS-based program (booted from floppy), or more recently, a Windows program (which comes with a special driver to obtain access to hardware). (Linux? What's that?)
If power goes out while flashing, you will likely be left with an unbootable computer. Some motherboards come with secondary firmware on a separate chip though, which kicks in if the main BIOS is corrupted (e.g. power failure during flashing). This firmware usually supports flashing the BIOS from a file in a CD or floppy disk.
BTW, the word
The BIOS is a stand-alone chip on the motherboard that is plugged in to provide basic functionality (hence
Unlike magnetic media in which a magnetic head is used to flip tiny bits of ferro-magnetic molecules on the disk, in the old days, chips like this would be EPROMs that had a little circular window on the top of the chip, through which specialized equipment would literally flash a beam of ultra-violet light to erase the chip, allowing it be re-programmed (somewhat like how CPUs were manufactured with beams of light baking the transistor masks into the silicon wafers). Think of erasable CDs or DVDs; to erase them, the laser basically “melts” (not technically) the material, then it can be written.
(Note, just like leaving CDs/DVDs in the sun can damage them, leaving an EPROM exposed to the sun could also damage them, so they often had protective stickers covering the flashing window.)
These optically programmed EPROMs were too expensive to manufacture for general use, so EPROMs were often made without the window, thus making them write-once and non-updateable. As a result, they were later replaced with EEPROM (Electronically-Erasable, Programmable Read-Only Memory) chips, making them much easier and cost-effective since they could be updated with the customer’s system itself instead of needing to be sent to a shop to use the special equipment.
That’s where the term flashing comes from, and like most outdated terms, it just kind of stuck.
In the past (and to a lesser extent still), flashing the BIOS was considered risky because the BIOS was the foundation of the device (recall the Basic part of the name). Therefore if the write was interrupted or corrupted for any reason (imagine bumping or pulling the plug of the computer while burning a non-erasable CD), the data would then be corrupt, so it would not surprisingly, not work. Plus since the chips were relatively slow to write and took about a minute to write a 1MB block, this made them a little susceptible to environmental problems like power-loss. Since the chip provides the basic functionality required to even boot the device, there would be no way to re-program it again to fix it (if you need the computer to program it, but the computer doesn’t work, how would you program it? Chicken-egg.
Of course this was not the end of the world; you could pop it in another computer with dual-BIOS slots or a special BIOS programming device and program it, but unfortunately these special motherboards were rare and expensive as were the devices, which could usually only be found in some computer shops.
(The same problem exists for other BIOSes as well like in optical drives, video cards, etc. To be able to re-flash the BIOS of a drive or card, it has to be detected and identified by the system, but if the BIOS doesn’t work, then the system cannot do so because the device can’t initialize properly.)
These days, while the problem still exists for drives and cards, motherboard manufacturers have provided some solutions to help. A common method is to implement a backup BIOS in the board that can kick in when the primary one is faulty. This backup BIOS can then be used to flash a copy onto the primary, thus restoring functionality. In the past, this was done with a second BIOS socket on the board with a second, identical chip, but these days, board mfgs often opt to use a non-writable chip since the backup does not need to be updatable and using a non-flashable one is cheaper. When booting, a compatible board will usually display a hotkey (eg F2, Insert, etc.) that can be pressed to copy the backup to the primary.
Another method that some boards use is to include a small, dedicated chip that has a “flasher” on it. When the system receives power, even if the system won’t boot, you can press a special key that will trigger the flasher to read the floppy (or USB drive, etc.) to see if there is a file with a BIOS image on it. If so, then it copies the image to the BIOS.
Again, in the past, Flashing utilities were DOS programs because DOS was the closest thing to an RTOS (Real-Time Operating System) due to it’s non-multi-tasking nature. As such, it was not as vulnerable to interruptions, task-switches, paging, low-memory, and whatnot that could corrupt the flashing process. These days (ie several years ago) however, DOS is effectively “dead” (never!), and the chips are much faster (a 4MB block can be flashed in ~30 seconds), so flashing utilities are generally Windows programs, though DOS ones still often exist.
Here’s a photo I just took of an old 8-bit Sony IDE controller. Notice the EPROM with its protective sticker removed. Below it, you can see a close-up of the EPROM, including the connective wires through the flashing window. (Don’t worry, the flash from my digital camera is not sufficient to wipe out the chip. Besides, I have a couple of other 8-bit controllers if I need them.