I had a Mac mini come in that was experiencing random crashes and kernel panics upon booting. The story was that it was running Leopard and started crashing randomly, so the customer upgraded the mini to Snow Leopard hoping that would fix the problem. Now, instead of random crashes, the system shows a kernel panic when it boots, rendering it completely unusable.
The Mac OS is written to be fault tolerant, with the idea that if an application crashes it will not affect any other application, and it cannot affect the operating system itself. Every now and then an application can develop a corrupted preferences file, causing the application to close unexpectedly, but other applications stay running. (Compare this to Windows, where an application that stops responding can cause the entire session to hang.)
If the operating system support files somehow get corrupted, the system can start to do weird things. In extreme cases, it may be necessary to reinstall the OS. The problem is that by default, Snow Leopard will preserve any settings from the previous installation, so if you have any corrupted settings, these corrupted settings are migrated to the new OS install. Now you have an up-to-date OS that crashes faster than the old one did. The only way to truly fix the system is to back up your data, wipe the hard drive, and do a clean installation.
I did verify that her system was crashing while loading some applications, but I wasn’t seeing the kernel panic. I backed up her data, reloaded Snow Leopard from scratch, and put all her stuff back on the system. It was now stable again, and she took it home. Next day I got a call that it was crashing again—she hooked it all up, then plugged in her wireless mouse USB module and it crashed with a kernel panic. Suspecting that the USB transceiver was at fault, I asked her to bring it in with the mini so I could test it.
A kernel panic is a major system failure, where the operating system cannot continue. You have no choice but to restart the system and hope that whatever caused the panic will not happen again. On a Windows system, this is known as the infamous “Blue Screen of Death.” It’s also occasionally called a “core dump” because everything that was running at the time is “dumped” to a log file in case debugging is necessary.
On a Mac, the screen you see telling you to shut down your computer in 7 different languages is a sign that a kernel panic occurred. In most cases, a kernel panic is caused by something external to the OS itself, such as bad RAM—if the data being read and written to a bad RAM chip is found to be unreliable, the system may shut down to prevent corruption to your data. If you’re driving nails into a wall and someone comes up behind you and covers your eyes, this places your fingers in danger, so naturally you stop hammering. Once the problem (the person behind you) is removed, you can restart what you were doing.
A kernel panic can also be caused when an incompatible hardware driver is installed, or in this case works fine with the previous OS but doesn’t work with the new one. The driver to support the USB mouse worked fine under Leopard, but didn’t play well with Snow Leopard. Hardware drivers are not loaded if the hardware they support is not present, so the crash never happened in the shop. Once the mouse was connected, the driver attempted to load, the OS said “I don’t know what to do with this!” and the entire house of cards came crashing down.
The solution was simple—download the correct driver for Snow Leopard. Things ran just fine from there. One could wonder why this happens. Had someone attempted to install the Leopard driver into Snow Leopard, the OS would have rejected it as incompatible. In this case, the driver was already there, but the OS couldn’t use it. (In the case of a data restore, no version checking is done, so Snow Leopard never got a chance to say “I don’t know what to do with that!” until it was too late.)
One way to avoid this is to check the web sites for not only your applications, but also for any devices or peripherals you use like printers, scanners, and mice. You want to make sure there is a compatible driver before you upgrade to make sure that your OS is stable afterward.