We all know Classic only officially runs on Tiger or earlier. We also know Snow Leopard is the only Intel release with Rosetta. Now that I see there is interest and progress in getting Snow Leopard on PPC, I thought I should mention one of my older pet projects for which I've had no time for developing for many years: Classic on Leopard. As a related thing, it also seems like it should be possible to run OS9 natively on a G5 (I think it has been done on some unsupported PowerBooks, but not a G5).
I know that there are various other Classic-like environments out there, such as SheepShaver, but none of them has seemed particularly good. Sheepshaver in particular is buggy. It's development team, while very dedicated, are also not really OS/kernel types and so most of the development has been tinkering around the edges, which would be fine, except I've encountered serious issues with using it (like it often hangs and has to be force-quit). Classic, by contrast, is mostly reliable. Except it won't run under Leopard. For me, I'd be MUCH happier if I could run Classic under Leopard rather than needing to reboot into Tiger just to run Classic I have some apps that I don't need to update and can't or justify the cost of upgrading, just to run natively in OS X. One is ChemDraw for which I have an old OS-9 binary. One can find a Leopard compatible binary, but the comany refuses to even sell a license code for it (even though they have been able to generate one for me a couple of times, they refuse to do so any more).
Although others may have tried these techniques (or know that they'll lead nowhere), I haven't found this info elsewhere, so I will through it out in case someone with more current abilities would know it either won't work or take it further.
For Classic on Leopard, my point was to try and include in the Classic binary all of the shared libraries that it would normally pull from /System/Library/Frameworks or /System/Library/PrivateFrameworks. I did this by running the binary and finding what it complained about, then copying that library in the Contents/Library/Resources tree of the Classic application binary, and then re-writing the classic or TruBlueEnvironments' library load list to point into the new location using otool. I then repeated again to get the next-level dependencies and repeated the process until I could progress no further along these lines. I think I may have tried pointing into their equivalent locations within the /System/Library tree of a Tiger distribution elsewhere on disk, with the appropriate rewriting.
The roadblock I eventually ran into was when I needed to deal with dependencies within the dynamic loader itself. I could not find a way to discover what all of the libraries or make them available.
I realize it is possible there is something within the system calls within Tiger itself that may not be be available in Leopard that be a fatal flaw in this method: basically that all of the "missing" code is only in user-level libraries. Presumably there would be nothing within the BSD layer that could not be rebuilt for Leopard. It would be nice to know that if this is or is not definitively the case; the dynamic loader doesn't seem to be be the that type of roadblack to me.
With regard to loading Classic on a G5, I think that would be harder to debug. However, I notice that, for example, the AHD disk that comes with the G5 both looks like booting OS 9 and has very OS 9-like environment. We know the ROM in any New World machine is really in the System Folder. Is it possible to override the check for not loading OS 9 in Open Firmware?
Thoughts?-kby
I know that there are various other Classic-like environments out there, such as SheepShaver, but none of them has seemed particularly good. Sheepshaver in particular is buggy. It's development team, while very dedicated, are also not really OS/kernel types and so most of the development has been tinkering around the edges, which would be fine, except I've encountered serious issues with using it (like it often hangs and has to be force-quit). Classic, by contrast, is mostly reliable. Except it won't run under Leopard. For me, I'd be MUCH happier if I could run Classic under Leopard rather than needing to reboot into Tiger just to run Classic I have some apps that I don't need to update and can't or justify the cost of upgrading, just to run natively in OS X. One is ChemDraw for which I have an old OS-9 binary. One can find a Leopard compatible binary, but the comany refuses to even sell a license code for it (even though they have been able to generate one for me a couple of times, they refuse to do so any more).
Although others may have tried these techniques (or know that they'll lead nowhere), I haven't found this info elsewhere, so I will through it out in case someone with more current abilities would know it either won't work or take it further.
For Classic on Leopard, my point was to try and include in the Classic binary all of the shared libraries that it would normally pull from /System/Library/Frameworks or /System/Library/PrivateFrameworks. I did this by running the binary and finding what it complained about, then copying that library in the Contents/Library/Resources tree of the Classic application binary, and then re-writing the classic or TruBlueEnvironments' library load list to point into the new location using otool. I then repeated again to get the next-level dependencies and repeated the process until I could progress no further along these lines. I think I may have tried pointing into their equivalent locations within the /System/Library tree of a Tiger distribution elsewhere on disk, with the appropriate rewriting.
The roadblock I eventually ran into was when I needed to deal with dependencies within the dynamic loader itself. I could not find a way to discover what all of the libraries or make them available.
I realize it is possible there is something within the system calls within Tiger itself that may not be be available in Leopard that be a fatal flaw in this method: basically that all of the "missing" code is only in user-level libraries. Presumably there would be nothing within the BSD layer that could not be rebuilt for Leopard. It would be nice to know that if this is or is not definitively the case; the dynamic loader doesn't seem to be be the that type of roadblack to me.
With regard to loading Classic on a G5, I think that would be harder to debug. However, I notice that, for example, the AHD disk that comes with the G5 both looks like booting OS 9 and has very OS 9-like environment. We know the ROM in any New World machine is really in the System Folder. Is it possible to override the check for not loading OS 9 in Open Firmware?
Thoughts?-kby