Register Log in

Infinite Loop / The Apple Ecosystem

Ars at WWDC: Video interview with Mike Bombich, creator of CarbonCopyCloner (Updated)

Ars Technica's Clint Ecker took time to talk with Mike Bombich about his time …

Ars Technica's Clint Ecker sat down with Mike Bombich this past Wednesday to talk about his company, Bombich Software. We also talked about his most well-known software, CarbonCopyCloner, as well as how development life is treating him. Click the play button above to watch the entire interview.

Update (6/27/2007): Transcript has been added! Read the transcript after the jump.


VO: One Wednesday during WWDC, Clint Ecker sat down with Mike Bombich of Bombich software to talk about CarbonCopyCloner.

CE: So you make CarbonCopyCloner.

MB: That's right.

CE: What was the impetus for you making that? Did you make that out of something of your own need or something that you heard people [needed]?

MB: I really created CarbonCopyCloner for myself. Back when Mac OS X was initially introduced, there really wasn't anything that could do that. Even Retrospect didn't quite have the capacity for it. I was working for Bowling Green State University, doing just basic tech support and I needed a tool that would clone OS X. And I developed the core functionality of it probably in October 2001. I wrote up some articles; that's when I first kicked off my own website. And in December of '01, Apple introduced AppleScript Studio. And I had tinkered with AppleScript before and I thought it was great. And suddenly I could create a GUI application that was based on AppleScript and it was great.

So I had this great application for myself and for using it at work. And then somebody suggested to me that I could share it with other people because they might find it useful. So I did and I remember the day that I posted it to VersionTracker. I was sitting there with my wife on my lunch break and I had the page crafted up on VersionTracker, and I was ready to click Submit. And I was just nervous. There was that feeling that surely somebody would have developed this tool and they were going to submit it at the same time and just completely blow me out of the water and I'd fall into obscurity. But I was just completely blown away when there were like 5,000 downloads the first day. It was just stunning. But that's kind of the origin of CCC.

CE: So for people who aren't really familiar with all of your products, you make another product called NetRestore. Can you tell us a little bit about that and what purpose that serves compared to Carbon Copy Cloner?

MB: So when I first created CarbonCopyCloner, my role in tech support was deployment. And the only tool we had for deployment at the time was to use a FireWire hard drive attached to a machine, boot that machine into target disk mode, and use CarbonCopyCloner to clone that hard drive. Well as it turns out, it's not a very scalable deployment model. So in 10.2 I think, Apple released a command-line version of Apple Software Restore which is the tool that I used in Mac OS 9. It's a great utility and now it was available as a command-line tool. So command-line tool plus AppleScript Studio equals another GUI application, now for scalable mass deployment. That's where NetRestore comes in. NetRestore--the name implies that you do it over the network, and you certainly can. It also does basic volume to volume cloning, pretty much anything Apple Software Restore can do.

So probably about three years I made a transition from CCC to NetRestore for doing mass deployment. And a lot of people didn't really follow. There's always been a little bit of confusion about which tool people should use for mass deployments. And for the longest time, I've been saying to use NetRestore. That's really the tool that was designed for mass deployment. And really, the methodology that's used within NetRestore is far superior to that of CarbonCopyCloner. That said, the version 3 of CarbonCopyCloner that I've developed is now built partially upon Apple Software Restore. It's still not a tool for mass deployment. I just want to make that clear.

CE: Go on a little bit more into CarbonCopyCloner 3. What's there that's new for people who are more familiar with CarbonCopyCloner 2? I know it's out as a beta and people can try it, but what's the big, bullet points there?

MB: So, there's huge differences. I actually completely rewrote CarbonCopyCloner. It's now 100 percent Objective-C; not that there's anything wrong with AppleScriptStudio, it's just not quite as scalable. So for starters, CCC 3 is quite a bit more robust. I added some new features. The volume cloning is based on Apple Software Restore, which means that under certain conditions we can actually get a block-level output, so we can get some really blazing speed. That was never really possible in version 2.3.

The other thing that I added is the ability to use r-sync to backup to a network volume. So if you've got another machine on your network running 10.4.8 or later, you can use CarbonCopyCloner to back up to that volume. And a lot of people asked for that, and I thought "Network backups, that's never going to happen." So here it is. Now we have a robust tool built into Mac OS X, r-sync. I actually made some tweaks to it for myself, but fundamentally under the hood, CCC is using r-sync. And that gives me a lot of additional functionality.

The other thing, the third point I guess, is much more robust volume synchronization. It was kind of an add-on to version 2.3, and it was kind of an ugly hack. But now volume synchronization is pretty much the core. It's how CCC works.

CE: Out last question: you make an application that some people depend on in a critical way to copy over information that's near and dear to them. Whereas a lot of applications and app developers, they may corrupt a preference file and it's no big deal. Do you find that that makes developing CCC and your other applications a little bit more strenuous? Do you spend a lot of time making sure?

MB: Yeah, the worst e-mails that I get are "I backed up my hard drive and found out that there was nothing there and my other hard drive crashed." Every one of those I pay very close attention to, and I feel terrible that I could have potentially caused something like that. But at the same time, that's why I do this work. My files are very important to me. They're very important to my wife as well. And I think of the thousands of people that I've probably helped out in the opposite way. They've had that backup and tragedy struck and it bailed them out.

So it definitely adds stress to the development cycle. I have to think really hard about security in particular, about where you're writing. Hard drive selection alone is actually kind of complex. In CCC 2.3 I just get a list of devices that are in selectable volumes, which is a horribly counter-robust way to get a list of disks. So now in version 3, I access the disk arbitration framework directly. I ask for a list, and I get a list of disks and whenever I make references to volumes, I make a reference to either the UUID or that actual BSD Device ID.

So things like that you really have to pay very close attention to, so that you don't accidentally screw up and wipe out the wrong disk. So yeah that definitely adds a level of stress to it.

CE: Okay, well thanks for talking to us today. 

Expand full story

You must to comment.

You May Also Like

    Need to register for a new account?

    If you don't have an account yet it's free and easy.