Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Appleuser201

macrumors 6502
Original poster
Here's my dumb question of the day as someone who enjoys retro technology, but knows very little about how code works. I like the classic Mac OS, specifically 9.2, which was actually designed to be an internet OS. These days nearly 3 decades later, that's far from the truth and to be expected, as the latest browser that will run on it is Classilla which will load barely anything anymore due to lack of modern security like TLS 1.2 and 1.3.

But something unexpected happened this year and that was the fully modern Powerfox browser ported over to 10.5 Leopard. That alone was no easy feat at all, and OS 9 is worlds apart from Leopard. But I can't help but wonder what if we could get something like Powerfox or Aquafox running on OS 9?

It sounds utterly ridiculous and impossible and I'm sure it is, but I'd love to learn more about the technical hurdles of what it would take to bring a modern web browser to an ancient operating system abandoned by Apple in 2002. Also, theoretically could a massive corporation like Google or Microsoft port their latest browsers over? *if they absolutely wanted too for whatever insane reason*.
 
I don't see why not. It would probably have to be written specifically for Mac OS 9 – the sophistication of the rendering engine might threaten to hit some walls – but the Web (aside from the now-pretty-fully-adopted SSL encryption) still uses the original simple protocol from the 1990s.
 
Here's my dumb question of the day as someone who enjoys retro technology, but knows very little about how code works. I like the classic Mac OS, specifically 9.2, which was actually designed to be an internet OS. These days nearly 3 decades later, that's far from the truth and to be expected, as the latest browser that will run on it is Classilla which will load barely anything anymore due to lack of modern security like TLS 1.2 and 1.3.

But something unexpected happened this year and that was the fully modern Powerfox browser ported over to 10.5 Leopard. That alone was no easy feat at all, and OS 9 is worlds apart from Leopard. But I can't help but wonder what if we could get something like Powerfox or Aquafox running on OS 9?

It sounds utterly ridiculous and impossible and I'm sure it is, but I'd love to learn more about the technical hurdles of what it would take to bring a modern web browser to an ancient operating system abandoned by Apple in 2002. Also, theoretically could a massive corporation like Google or Microsoft port their latest browsers over? *if they absolutely wanted too for whatever insane reason*.
Technical hurdles include, but are not limited to:
1. Lack of a modern compiler. The most recent GCC for OS 9 appears to be 2.3.3 - see https://macintoshgarden.org/apps/gnu-c-compiler
For comparison, here is what the following browsers want
Aquafox/TenFourFox - gcc 4.8
PowerFox/White Star/UXP - gcc13 (or 14 if you don't mind having no altivec)
Ladybird/Firefox/Chromium/Webkit - recent clang/llvm or at least gcc14
Cross-compiling will be of less help than on OS X, because OS 9 is not considered a valid target for modern gcc or clang/llvm.
For Firefox and Chromium, and possibly Ladybird going forward, you need rust. Ladybird only added rust a few days ago, and only into one part of their browser, so it still may be possible to get a decent experience without rust for a while.
Rust is a very difficult language to port, because it is written in rust. Therefore, if you don't have rust, you normally can't get rust on your platform. Luckily, the mrustc project exists, which in theory can allow you to bootstrap rust from c. In practice, this is not easy on obscure platforms.
2. You need some sort of GUI. Cocoa/Appkit doesn't exist on OS 9. No modern browser uses Carbon. SDL has been ported to OS 9, but no browser seems to use that either.
Realistically, you would have to port GTK or QT to have a GUI browser. QT would be better, but we don't even have that on OS X PowerPC, so it can be assumed to be difficult. With gtk, you need an X server, and eXodus is going to really struggle with handling even GTK 2, much less modern GTK.
On the plus side, if money is no object, QT is run by a for-profit company that I am sure would port QT6 wherever you wanted for enough money.
3. As pointed out above, OS 9 is not Unix or Unix-like. So many things will need to be completely rewritten by people who have lots of experience porting open source software to OS 9. It may be to the point writing a new browser from scratch would be easier. The issue with not being a major browser is that the modern internet is designed for Chromium, Webkit, and Firefox. If you aren't close to those codebases, websites may just not work. User agent spoofing helps to an extent.
4. You are also running on Big Endian PowerPC 32 bit, many things which are problematic.

Could Google or Microsoft port a chromium fork to OS 9? Probably. Those are companies with massive resources. It would still take years and many developers who have extensive OS 9 experience.

More realistically for hobbyists, Netsurf has been made to run on a lot of operating systems, and is in C89, which helps with portability. It will not give a comparable experience to Aquafox or more modern browsers.

If Classzilla could be updated to be more like TenFourFox or UXP, Cameron Kaiser probably would have done it. I am sure he would have preferred two similar codebases were it possible.

OS 9 also is ram limited to 1.612 GB, which isn't actually that bad, as MorphOS is similarly limited. And it actually has better multiprocessor support than MorphOS. So in theory you could get a browsing experience as good as is possible on MorphOS if you had enough talented and dedicated developers.

If I were to do a cost estimate of getting a modern browser (main cost is skilled developers):
OS 9: 1-2 million minimum (based on what the Ladybird team has spent already). MorphOS probably hasn't spent as much on Wayfarer though, so maybe it could be less.
10.3: Maybe for $100,000 you could get someone to pull this off.
10.4: Some of us are trying, like myself and @danupsher, and we are not charging anything. We also haven't had major success thus far, but some visible progress has been made.
 
Classilla was made by Cameron Kaiser cherry-picking various patches from later in Mozilla development to the WaMCom sources. Nobody's prepared to wait an eternity for it to compile though.
 
Here are some thoughts:

1. It is simply not possible to create something from scratch, nor is it feasible to adopt a 20 year-old codebase. The web simply moves too fast for any of this to be viable.

2. The only viable option is UXP. There do exist other engines that may be okay, but they're definitely much further behind in web compatibility.

3. Retro68 is the compiler that you would have to use. It is based on GCC 12, and is modern enough for what you would want to do.

4. There exists work to bring up UXP on SDL2, which is what you would probably want to use for the toolkit. Though, note that more functionality would probably need to be implemented in the SDL2 port to support the browser.

5. The major problem is POSIX. UXP has code for both NT-like systems and POSIX-like, but OS 9 is none of those. You would need to spend a very significant amount of time to reimplement everything that is not supported, which is the major blocker for any OS 9 port.
 
Here are some thoughts:

1. It is simply not possible to create something from scratch, nor is it feasible to adopt a 20 year-old codebase. The web simply moves too fast for any of this to be viable.

2. The only viable option is UXP. There do exist other engines that may be okay, but they're definitely much further behind in web compatibility.

3. Retro68 is the compiler that you would have to use. It is based on GCC 12, and is modern enough for what you would want to do.

4. There exists work to bring up UXP on SDL2, which is what you would probably want to use for the toolkit. Though, note that more functionality would probably need to be implemented in the SDL2 port to support the browser.

5. The major problem is POSIX. UXP has code for both NT-like systems and POSIX-like, but OS 9 is none of those. You would need to spend a very significant amount of time to reimplement everything that is not supported, which is the major blocker for any OS 9 port.
That's very good to know UXP has work toward an SDL2 backend, that definitely makes it most viable, though still very difficult.
 
Classilla is also gecko-based. Could the platform-specific code from Classzilla be merged with the newer browser engine from Basilisk?
Note that I said Basilisk - that source base uses UXP, and deliberately excludes Rust.

The author of Powerfox (Basilisk based) has talked about adapting TenForFox’s jit. A PPC version of an OS9 based browser could reuse much of that. For 68K, that would be largely from scratch.
 
Note that I said Basilisk - that source base uses UXP, and deliberately excludes Rust.

The author of Powerfox (Basilisk based) has talked about adapting TenForFox’s jit. A PPC version of an OS9 based browser could reuse much of that. For 68K, that would be largely from scratch.
Just noticed that Jazzzney had joined the conversation.
 
I've been pessimistic about AI elsewhere but this could possibly be a test case for its usefulness. If the real workload were shouldered by Gemini or Claude (whichever is more useful for code shenanigans) there might be some reasonable progress to be made. I don't mention ChatGPT only because, as I believe I've mentioned before, it's always wound up spiraling into a kind of despair when I've asked it about OS 9 related things. Very strange, but maybe it's since been fixed to be less depression-prone about non-UNIX systems.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.