It seems I’m perpetually fighting bad computer memory. For as long as I’ve been building machines (around 1998) I’ve constantly run into bad memory modules. Tonight, for instance, I was fixing my sister-in-law’s PowerMac. She’s been having problems opening applications so she wanted me to format the machine and start over. Being ever the memory skeptic I am, I decided the first thing I was going to do is run a memory test. Luckily, Apple packages the Apple Hardware Test software with most machines. It contains a memory tester that was able to root out the culprit: a bad memory module.
I’ve run memory testers in the past that have easily detected memory errors, which made me wonder why operating systems can’t employ the same technology to route around bad memory. The memory test didn’t take that long to run. Why can’t the OS do a memory scan at startup and mark bad blocks of memory to avoid (don’t many filesystems already do this for the hard drive?) or mark the entire memory module altogether? It would seem safer for the OS to deactivate bad sections of memory or fail to startup altogether than to start with memory that will fail at runtime.