From time to time, people may bring up CMOS, which can be a confusing topic because it can actually mean several things. These days it normally means one specific thing though. So let’s explore the question of what is CMOS in a computer.
It’s a tougher question than you might think. It even confuses professionals sometimes. Including published authors.
CMOS is a process for making computer chips
Let’s talk about the most elementary part first. CMOS is an acronym for Complimentary Metal Oxide Semiconductor. In the 1980s, it was a fairly new process for making chips that required less power than older technologies.
But when we’re talking about PCs, we’re referring to something more specific.
What is CMOS in a computer, or at least in a PC?
When IBM introduced the IBM PC/AT in 1984, it included a small amount of CMOS memory with a battery backup in it. This memory was distinct from the main system RAM that you used for running programs and manipulating data. The AT used this memory to store settings, like what kind of hard drive was in it. This was a lot easier than setting jumpers or flipping DIP switches like earlier IBM computers required. It was a long way away from Plug and Play, but believe me, it was progress.
Macintosh computers had something similar, but Apple called it PRAM, for Parameter Random Access Memory. Apple’s name is considerably more descriptive, but the two are equivalent. Even after Apple switched to using Intel CPUs and chipsets that are direct descendants of the IBM PC/AT, Apple still calls it PRAM.
Modern PCs retain this functionality, although it’s a lot more comprehensive today. When you turn your computer on and see a prompt on the screen that says something like Press F1 to enter setup and you press that key to enter your BIOS or UEFI, you’re editing your CMOS. Today it stores a lot more than just what kind of hard drive you have. When you adjust your CPU or chipset settings, those go into CMOS too.
If you look at your PC’s motherboard, you’ll see a battery of some sort on it. On laptops it’s usually in a plastic package that connects with a cable. On desktop PCs, it can be in a plastic package or a coin-style lithium battery. This battery powers your PC’s clock when you have it turned off, and preserves the contents of the CMOS so you don’t have to hit F1 and set your computer up every time you turn it on.
If you need to, you can erase the CMOS in a PC by pulling a jumper on the motherboard or removing the battery. The most common reason to do this is to erase a power-on password, but if a corrupt setting is keeping the computer from booting, erasing the CMOS and running setup again and loading the defaults is a quick way to get the computer booting again. This is why setting a password in your BIOS isn’t a very strong security measure. It’s better than nothing, but it’s easy to erase.
CMOS isn’t firmware
Computers make a distinction between hardware, software, and firmware. Hardware is burned at the factory and you can’t change it in the field. It’s permanent. Software is changeable, but it disappears from memory when you turn off the power. Firmware blurs the two. You can change firmware, but it doesn’t go away when you turn off the power. When you upgrade the BIOS on a PC, you’re changing its firmware.
About 20 years ago, I was acting as a technical reviewer on a book about computer hardware. Of course he wanted to answer the question of what is CMOS in a computer. The author stated in his draft that CMOS was a type of firmware. I told him it’s not, because if you take the battery off the motherboard, it goes away. He told me I was being pedantic. Maybe I was, but I don’t think he understood the relationship between the BIOS, the chipset, and the CMOS, and it’s better for a reviewer to bring it up than a reader. I don’t know if he changed it in the final draft. Some of my friends bring this up sometimes when they want a laugh. Or when they just feel the urge to be pedantic.
In 1984, using battery-backed CMOS was IBM’s most practical option. Today we could store the settings in flash memory, which wouldn’t require a battery. But then erasing its contents in an emergency by changing a jumper would be much more complicated. So keeping this bit of 1984 technology in modern computers makes sense.