Interview with Ryan Rempel
Author of Xpostfacto

Published: 10/31/2003

Ryan Rempel, author of the popular Xpostfacto (utility for installing OS X on unsupported/legacy Macs) was kind enough to answer some questions on Xpostfacto (present and future features), his favorite/least favorite Macs, Mac programmming and other topics.

Q: First (for those that may not be aware), summarize what Xpostfacto is and how it works

Ryan: XPostFacto is an application which allows you to install Mac OS X on some computers that Apple isn't supporting. Basically, XPostFacto installs some kernel extensions which contain the device drivers needed for the older computers. There's a little more to it than that, but that's basically what XPostFacto is about.

Q: How is the Xpostfacto update for 10.3 compatibility going? When do you estimate it will be released?

Ryan: It's going pretty well now. I had been having some trouble with pre-release versions of Panther, but now that Apple has released the source code, I've spotted the problem and fixed it. The main remaining problem relates to built-in video and certain video cards, but I have a few ideas around that too.

I expect to release something within a week or so with support for Panther on the 7300 - 9600 series. Hopefully the Beige G3 and Wallstreet support will follow soon.

Q: What are the Mac models that Xpostfacto currently does and doesn't support?

Ryan: The "main" models that XPostFacto supports are the 7300 - 9600 series, and the clones which were based on those models. There is also some support for the original Powerbook G3 and the 3400, but it is quite limited (in particular, no sleep support, which is a big issue on the Powerbooks).

I'm also working on supporting Panther on the Wallstreet Powerbook and the Beige G3s, and hope to get that working pretty soon.

It should also be possible to get XPostFacto working on the Starmax models, as well as the 6400, 6500 and Twentieth Anniversary Mac, but that is going to take a little longer -- I don't have a firm date for that.

Q: Are there any specific tips/info/problem areas for certain Mac models?

Ryan: Oh, there are a variety of things to keep in mind -- the XPostFacto documentation mentions a fair number of potential issues. One of the larger issues is that the 603 and 604 processors are not supported in Mac OS X 10.2 and later, so you need a G3 or G4 upgrade card if you want to run Jaguar or Panther.

Q: What are your most frequently asked questions on Xpostfacto? (and the answers)

Ryan: Often people will want to know why Mac OS X won't install on their particular setup. Sometimes I can figure it out, but there are cases where it remains a little mysterious. Most people who are still running these older machines will have upgraded them in various ways, so there are a lot of variables from one setup to another.

Q: What are your most frequently asked feature/support requests?

Ryan: There are a lot of Twentieth Anniversary Mac fans out there, and I hear from them fairly often. And, of course, people are very, very keen on Panther support.

Q: How is the effort to add boot from Firewire PCI card/drives going? (is this a novram patch/bootstrap loader?)

Ryan: It's taken a lot longer than I thought it would to implement that.

The problem is that Firewire PCI cards do not have any drivers on them, and for that reason they are not bootable on older machines. On newer machines, there is a Firewire driver in the machine's firmware that allows for booting, but not on the older machines. And the mechanisms for patching the firmware on the older machines are very limited.

The method I'm using to work around this is to start the boot process from a different disk that is bootable (for instance, a SCSI disk), and then switch to the Firewire drive at a later point in the boot process. This is basically the same technique that I use to boot from the Mac OS X Install CD.

The reason it's taken longer than I thought is synchronization issues. The problem is that I need to keep the kernel and the kernel extensions synchronized between the Firewire drive and the "helper" drive that I'm using in the boot process. So if the user does an update (e.g. from 10.2 to 10.2.1 etc.), or installs a new driver for some new hardware, then I need to notice that and synchronize the changes. And it turns out that there are quite a few tricky issues to consider in doing that. But I think I've just about got that solved -- I was doing some testing, but then Panther intervened and I've been spending most of my time on that lately.

The other problem is that some Firewire cards appear to have problems on older machines in Mac OS X which affect the boot process. It appears to relate to a problem in the Mac OS X Firewire drivers. I had been hoping that Panther might make that better, but people have been reporting Firewire problems in Panther even on supported machines, so it's hard to say. It's a problem that I am going to be trying to debug, but haven't had time to really tackle it yet.

Q: How many times has Xpostfacto been downloaded? (or how many users do you estimate have used Xpostfacto?)

Ryan: It's hard to come up with an exact figure for downloads, but it's in the hundreds of thousands. We've got about 2300 registered users, but we've been pretty laid back about getting users to register. With XPF 3, we're going to be encouraging registration a little more strongly. And, of course, there will be the Beige G3 and Wallstreet users to add to the mix.

Q: What do you consider the minimum and recommended legacy mac configurations? (i.e. CPU speed, ram, drive space, graphics card)

Ryan: I figure that a 300 MHz G3 is about the minimum. But the 450 MHz G4 is better, and Sonnet's 700 MHz G4 is what I use in my 7300. For RAM, Apple says the minimum is 128 MB, but I think that 256 MB is more realistic. I have 384 MB in my 7300.
For drive space, it depends on what you're going to do with it. Mac OS X itself needs about 2 GB, though you can probably get away with 1.5 GB in a pinch. After that, pretty much the more's the better, especially if you're planning to rip all your CD's :-)

Q: Has Apple assisted you in this effort? How do they feel about Xpostfacto?

Ryan: I haven't heard anything officially from Apple one way or another. But I do have some contact with people at Apple from time to time. Some of them are quite keen on what I'm doing, while others are less interested. I've had some help on a few specific points, mainly through the Darwin mailing lists.

Of course, XPostFacto would not have been possible without Darwin, which is the open-source version of the underlying parts of Mac OS X. Without seeing the source code, it just wouldn't have been possible to figure out how to install Mac OS X on unsupported systems. And the elegant design of the whole IOKit system in Mac OS X has certainly made the process easier than it might have been.

Q: What features/capability would you like to add in future verisons?

Ryan: Well, once I get Panther support and Firewire booting working, I'll probably take a little rest! And catch up on user support -- one of my biggest issues is how to divide my time between writing code and doing user support -- it's easy to get that balance wrong.

And of course there is additional model support to work on. I'm very keen on getting the Twentieth Anniversary Mac working, for instance. I'd also like to get XPostFacto working on some of the supported systems in the future, mainly for the sake of the supported systems that can't boot from Firewire drives otherwise. And there are nagging issues such as sound input, which hasn't been working properly in most cases.

So, there are a fair number of things to keep me busy!

Q: What's your guess about the percentage of Macs in use that are legacy (pre-G3 design) models?

Ryan: Hmm. That's a good question, and I don't really have an answer.

Traditionally, there are more legacy Macs around (by percentage) than legacy PC's, because Macs tend to have a longer useful life, for a variety of reasons. For some people, at least, there there is something neat about working with older hardware. To some extent, it is culturally conditioned -- there is a particular interest in XPostFacto in Japan and Germany, for instance. And even if you buy a new machine, there is often some good use that the older machine can be put to.

Q: What Mac model do you use most?

Ryan: Still my 7300, which I bought new in 1997. It's been upgraded a little, though :-)

I've also got (at last count) 12 other computers, most bought on eBay, that I use for testing and development. My only supported computers are a Blue & White G3, and an iBook, which I use quite a bit when away from home.

Q: What is your personal favorite mac of all time? Least Favorite?

Ryan: I think the Mac I remember most fondly was the Powerbook 100. It was a really nice little package back then -- not very impressive by today's standards, but at the time I remember being very fond of it.

Now that I have a Twentieth Anniversary Mac, I think the Mac I most long for is a Cube. Hopefully Apple will stop supporting it someday, so I can buy one :-)

My least favourite Mac would be my Powerbook 5300. That gave me no end of trouble.

Q: What are Your Personal Favorite Utilities?

Ryan: I'm a big fan of Carbon Copy Cloner. I met Mike Bombich at Macworld last January, and it was fun to talk about developing for Mac OS X. DiskWarrior has always done a great job for me. I use BBedit a lot for programming.

(We posted an Interview with Mike Bombich last week.)

Q: What new Hardware or Software would you like to see Apple develop?

Ryan: Well, I guess I'm pretty fond of their "old" hardware :-)

As for software, I'd love to see Apple "embrace and extend" something like OpenOffice. Like what they did to create Safari out of KHTML. There is a lot of scope these days for contributing to open-source projects, or adding value to open-source projects in a variety of ways.

Q: What do you use for most of your coding?

Ryan: For the kernel extensions, I've been using Project Builder, but I imagine I'll switch to XCode eventually. For the XPostFacto application itself, I use CodeWarrior, since I need to produce a Mac OS 9 version (of course).

Q: What do you think of XCode?

Ryan: XCode looks great, but I haven't done very much with it yet. I've got enough on my plate at the moment without trying to switch development tools :-)

Q: How did you got started in Mac software development?

Ryan: I've never had any formal education as a programmer, but it's been a hobby since my parents bought an Apple IIe when I was in high school. So I've basically picked things up as I needed to (which means there are enormous gaps in my knowledge that might have been filled by some education). But I suppose it's given me a knack for figuring things out.

I guess my pattern has been to spot something that needs doing, and then figure out how to get it done. For instance, my wife Joanne was working for Mennonite Central Committee in the early 1990's, when everyone was starting to put up web sites. So I did a little prototype of what an MCC web site might look like, and ultimately became their webmaster for several years. In fact, that was what introduced me to UNIX, because the web site was hosted on a UNIX machine, so I ended up learning a fair bit of perl scripting and general UNIX stuff.

I was working for the Canadian Department of Justice at that time (well, I still am), and our particular unit had a really labour-intensive way of keeping track of correspondence and files and the like, so I designed a database that simplified things considerably (using Microsoft Access, which I thought was a pretty neat thing at the time). They're still using it, and they say it's better than anything they've been offered since, which is pretty amazing.

When Mac OS X Public Beta came out, it would install on my 7300, but the L2 cache on my G3 upgrade card wasn't enabled. So I decided to try and figure out how to do that. Once I got that working, I suppose it was inevitable that I would take a crack at getting the final version of Mac OS X to work as well.

Q: What advice would you give to someone wanting to get started in Mac programming/development? (Any recommended primer Books, etc.)

Ryan: For learning how to program applications using Cocoa, I'm very fond of the Vermont Recipes (written by another lawyer, oddly enough). For the kernel programming side of things, you basically need to work through Apple's documentation, which is getting better all the time. And the Darwin mailing lists are an enormous help.

But my main advice would be to find an open-source project that you're interested in, and delve into it. Really, the best way to learn to program is to read good code and try to understand what it's doing. Basically, everything I know about kernel programming was learned by reading Apple's code and trying to figure out how everything was connected to everything else. So find a project you're interested in, figure out how it works, and then contribute something. It's great practice, and it can help get you noticed, too :-)
-Ryan Rempel

For more info or to download the latest version of Xpostfacto, see http://eshop.macsales.com/OSXCenter/XPostFacto/

The next interview planned in with Alsoft's "AL". (Thanks to Matthew Culmore for taking charge of that one.) Stay tuned...

(Ad/Sale items)

= UPGRADES by Mac =
Upgrades just for

= Refurb Mac Pros =
(Click for List)

SSDs up to 4TB
Fast SSDs for Most Macs/PCs

= ThunderBolt =
Drives, Docks & More

Up to 12TB HDDs
HGST, WD, Seagate, Toshiba

= 2.5in HDs & SSDs =
Notebook Hard Drives and DIY drive/case kit bundles

Lifetime warranty RAM Upgrades!

Internal and External Superdrives/Blu-Ray drives

Graphics cards, Displays, Adapters, Cables & more

Interfaces, Cables, Software, Speakers, Headphones & more

Apps, Utilities, OS, VM, Games and more

WiFi and Bluetooth Devices/Adapters/More

= Repair Service =
for iPhone, iPad, Macs

= iPad/iPhone/iPod =
Accessories, Cases, Repairs & More

NuGuard KX Cases
*Extreme* Drop Tested!

XLR8YourMac T-Shirts

= back to www.XLR8YOURMAC.com =

= Other Site Topic Areas =
Mac Mods/Upgrades | CPU Upgrades | Storage | Video | Audio/HT | OS Updates/Network | Recent

Copyright © 1997-2018. All Rights Reserved.
All brand or product names mentioned are properties of their respective companies.

Legal: Site Privacy and terms/conditions of use.