The Personal Computing Paradigm
Mac OS X’s Increasing Stability
Remember why Apple felt the need to stop development of the classic Mac OS and transition to Mac OS X? Looking at the situation now, we see all kinds of benefits. For users, OS X features major improvements in graphics, text, networking, internationalization, multi-processing, and other areas. Many of these features could have been added to Mac OS 9, but it was easier to use the foundation from NeXT. Developers love the Cocoa frameworks and having access to the Unix tools, and they’ve used these to start a renaissance in Mac application development.
Apple was surely thinking about these benefits, but they weren’t the main reasons given for the switch. Long before OS X, Apple announced various plans to move the Macintosh to a “modern” operating system—one with pre-emptive multitasking and protected memory. Pre-emptive multitasking is important for developers, since it simplifies the code that they write, but I doubt that most users saw it as a big deal. It was better than co-operative multitasking, sure, but we’d been multitasking since Switcher and MultiFinder. No, what we really needed was the protected memory. Mac OS crashed a lot, though less if you were careful about what software you installed. Protected memory promised crash-free computing.
Actually achieving this has taken a while. When Mac OS X 10.0 shipped, it was, for many users, less stable than their OS 9 setups. Applications crashed frequently. This is somewhat understandable. Many of the crashes were caused by bugs in the OS itself. Also, developers were writing lots of new code on top of an operating system that was still in flux and only partially documented. When a crashing application doesn’t bring down the whole system, there’s less incentive for the developer to fix all the crashing bugs, especially when there’s so much other work to do during an OS transition.
The nature of application crashes had changed. Under OS X, the protected memory system instantly shuts down an application that tries to read or write from memory that it shouldn’t. Under the old Mac OS (especially prior to Mac OS 8), illegal memory accesses often went undetected. An application could silently corrupt its data structures, or even those of other applications or the system, and it might not be until much later (if ever) that this was manifested in a crash of the machine. The fast-failing in OS X can make applications seem more unstable, but they truly are protected from one another, and the instant crashes and crash logs help developers to write software that’s more stable.
I also experienced a lot of system crashes in Mac OS X’s early days. These encompass a wide variety of problems with different causes, but all of them mean that you lose what you’re working on (in every application) and need to reboot. In 2002, I started keeping track of the system crashes to see if any patterns would emerge. That year, OS X spontaneously logged me out nine times. Six times, the screen and mouse froze. Four times, the kernel panicked. Once, the Mac wouldn’t wake from sleep. Once, the entire machine slowed to a crawl and I had to reboot. And once, all the applications I was using crashed within a minute so of each other, so I thought it best to reboot.
In 2003, there were no spontaneous logouts, but stability wasn’t much better. There were seven total freezes, plus four effective freezes where I couldn’t do anything but watch the beachball spin. Three kernel panics. Once, all the applications quit when I plugged in my iPod. Once, it wouldn’t wake from the screensaver.
By 2004, things were improving. There were no logouts and only one panic, which I attribute to a bad Toast driver for my external DVD burner. Seven freezes without the beachball. Four with it. My guess is that my most stable OS 9 system crashed once a month, so this is a slight improvement.
2005 was the most stable year for me: just two kernel panics. Perhaps not coincidentally, this is also the year that I stopped using Classic. There were quite a number of “soft crashes” this year, which I didn’t count. Several times per week, the Mac would get slower and slower. Short scripts that used to run instantaneously would start to take up to 15 seconds. I was never forced to reboot, but I chose to do so every few days to recover the lost speed.
2006 hasn’t been quite as good as 2005. So far, there have been three freezes (one while copying to a hard disk that turned out to be bad, and one at shutdown so it didn’t really matter) and one panic. Once, iTunes froze (and couldn’t even be force-quit) when I plugged in my iPod shuffle, and it was impossible to restart or shutdown the Mac cleanly. Once, Front Row gobbled up nearly 2 GB of memory, bringing the rest of the system to its knees, and I had to log out. A similar thing happened with Xcode 2.3's dedicated network builds feature, until I disabled it. And a bug in the OS made it impossible to use the LaTeX i-Installer without freezing the system, so I downloaded a different LaTeX package. The creeping slowness problems have mostly abated with some OS updates a few months into the year, though I still see regular font rendering problems that require resetting the font cache and rebooting.
Although Mac OS X’s stability isn’t perfect yet, it is indeed getting better. Of course, I still save my documents frequently, just in case. It’s been a reflex since I started using computers. The reduced number of crashes has, I think, reduced the amount of damage to my disks’ catalogs. I still run DiskWarrior and Disk Utility regularly, but they only find problems occasionally—not nearly every time, as they used to. But if the increasing system stability hasn’t changed these habits, it has changed my state of mind. Applications still crash, and every once in a while I lose a few minutes’ worth of work, but I no longer worry about the whole system crashing. Instead of expecting the Mac to crash, but not knowing when it will, I expect it to just keep running.
Also in This Series
- How Cool Is Your Mac? · May 2012
- Mac OS X’s Increasing Stability · August 2006
- Coping With Mac OS X’s Font Rendering · January 2006
- E-Mail Archiving with Eudora and Mail.app · January 2003
- Grab Bag · October 2002
- Mac OS X 10.2—First Impressions · September 2002
- Mac OS X 10.1—First Impressions · October 2001
- Mac OS X Tips · June 2001
- Mac OS X—Finally · May 2001
- Complete Archive
Reader Comments (11)
a) Mac OS X has nothing to do with Linux. b) You must have been reading something different than I was. Pretty much my experience, and the consensus of everyone else published or not, was that 10.1+ was a gradual road up, out of the nightmare of OS 8 and 9 (which were infinitely more stable than 7). Hardly anyone professional bothered with 10.0. It was still a curiosity at that point. The future, but nearly useless for work.
I was curious about Macs and when OS X was released I started to pay attention. Then, late in 2003, I learned (DoH!) that OS X was unix-based. That piqued my curiosity sufficiently that I decided to replace my Widow$ notebook with a PowerBook.
What I learned was that I had all of the power of unix sitting prettily beneath the OS X hood. All I had to do was open a terminal shell, which defaults to Bash (Hooray!), and I was as much at home as I was on my linux boxen.
Panther was about as stable as the RHCL 9 systems I was running (which would run for months without a reboot). Office was available and ran acceptably, with few compatibility issues from the Window$ side. Virtual PC was available, but was too slow to be useful on the PB's G4 processor.
But, I found the system to be a pleasure to work on. I had all the access to the unix subsystems I wanted, plus the utility of the OS X GUI. This worked very well for me and I continued my migration by purchasing a dual-G5 desktop a couple of years ago. That system now does most of my heavy lifting.
I just (as in last week) purchased a MacBook Pro. I have a feeling that the last of my Window$ notebooks will now be handed off to either a colleague or a student. I'll have more to report as the experiment continues...
I had pretty good luck stability wise, and most of the articles I read back then agreed. It was simply the horrible performance of the system on the hardware of the day that was so hard to handle.
It *was* harder to write applications that efficiently and effectively used memory under MacOS than under MacOS X. This is mostly because of the lack of the same kind of virtual memory that Unix systems have. This required the use of Master Pointers (Handles) and movable memory blocks, etc. Thus, MacOS X offers some really great advantages:
1. A misbehaving application causes the application to crash, not the whole OS.
2. It is easier for the developer to write applications that use memory properly because you only have to deal with pointers (not Handles) and you don't have to worry about memory blocks moving around.
3. OS X has better facilities to locate the source of memory leaks.
There are some nice facilities for monitoring memory usage under OS X. None of them seem as straight forward to me as Metrowerks Zone Ranger on MacOS. However, this is because AppKit (Cocoa) allocates all kinds of things under the covers that make it much harder to interpret the results coming from such a tool.
Have tried most of the common remedies (permission fix, memtest, zero-out and reinstall from DVD, etc.), but to little effect.
Once the machine "freezes" up, all that it will do is let you ssh in from the network and run top, which shows nearly 100% CPU time devoted to system, with no process showing up as the culprit. Leads me to believe the kernel is spinning mad.
Stability is a BIG problem with current version of OS X.
Add A Comment