CMUG - Christian Mac Users’ Group

This is the CMUG.org Bully Pulpit. Home of our articles and other commentaries from various CMUG mailing list members. CMUG.org is the Christian Mac Users’ Group and is the home of Christian Mac users who are interested in discussing both Macs and their Faith in the saving knowledge of Jesus Christ.

Tuesday, June 07, 2005

Chronology of MacOS X

Here's a chronology of (some details might be slightly hazy) of how OS X progressed over the years:


Versions of OS X over the Years

Pre-1998 - Intel x86, HP PA-RISC, SPARC, Windows (OpenStep & Rhapsody Preview), m68k
1998 - x86, PowerPC (Dev Rel 1)
1998 - PowerPC (DR 2)
1999 - PowerPC (DR3, DR4)
2000 - PowerPC only (Public Beta)
2001 - PowerPC only (10.0)
.....
2005 - PowerPC only (10.4 Tiger)
2006 - x86, PowerPC (10.5 Leopard)


Releases of WebObjects
By the way, WebObjects could compile code for Windows until around version 4.5 which was somewhere back in 2001.

WebObjects was something like this:
1998 - Intel x86, HP PA-RISC, SPARC, Windows (OpenStep & Rhapsody Preview)
1999 - Intel x86, HP PA-RISC, SPARC, Windows, PowerPC (DR3, DR4)
2000 - Intel x86, HP PA-RISC, SPARC, Windows, PowerPC

The coolest thing was back in 1999, when we were using Wallstreet Powerbooks, running DR2 and DR3 of Rhapsody (OS X), running WebObjects code on our machines and then deploying the same application on a SUN Server, Tatung SPARC server and on an iMac!

It was even cooler having our code communicate (same source code) across our PowerBooks to the Sun server and back.

My point is: going to Intel and other processor architectures - that's OLD technology where Apple is concerned.

You can still buy a license for a SPARC and NT server for WebObjects going back as recent as 2001. I remember we were negotiating the license at about US$60,000 per CPU per server. ouch!


Jesse Sng

Monday, June 06, 2005

The Transition is Feasible!

This was something that I had written up and posted on another mailing list on Sat night in between working on my sermons.

Briefly put: The transition to an Intel architecture at THIS particular stage of the life of OS X IS Feasible and IS Credible and I have a number of reasons.

I had gone through this scenario planning back in 2000 when I was the founding Chief Technology Officer of my last startup company and this was intended as a 5 year view of the Mac and OS X platform and how closely we should tie our software and technology to Apple's.

Why the Transition to Intel isn't that Painful
The transition isn't going to be as difficult as it seems. There are a number of reasons for this: 1. Darwin 2. Carbon 3. Cocoa 4. Core Technologies 5. Quicktime 6. hardware standards 7. Red Box 8. BSD 9. Compilers 10. Emulation

1. Darwin
This is a portable kernel and even before the acquisition, NeXT already was able to get things running on more than one processor architecture in the first place. The problem was that in the acquisition of NeXT, all this was dropped in favour of getting the kernel to work well on the PowerPC.

That means, this multiple processor architecture aspect of the OS kernel was already there in the first place, but it was NOT a major FOCUS for the past few years and was left primarily in the hands of the Open Source hackers to play around with as the Darwin kernel was open sourced by Apple to other developers who had brought this over to other processor architectures including Intel.

2. Carbon
For the legacy API based applications to work on OS X, those apps had to modified to port to Carbon's API instead of the old pre-System 9 APIs. This meant also a recompile in ALL cases. The move to Carbon was intended by Apple to REMOVE the last dependencies within the OS upon Motorola 68K architectural dependencies such as those used by System Extensions and other patches.

Back in 2000, my internal technology brief to my own people was that it would imply that legacy applications would now not be dependent on the 68K and that meant that it was inherently recompilable to some other architecture, including Intel.

3. Cocoa
Apple back then was pushing for New apps to be written in Cocoa simply because this was a very high level designed for Objective C and later Java. This was what made the NeXT OS what it was and it was a very nice object oriented framework.

Prior to the acquisition, NeXT had this running on the HP, SPARC and Intel architectures already (before 1998).

This is currently still promoted by Apple as the development framework and platform of choice if you are doing new applications and it is a wonderful way to develop new applications.

4. Core Technologies
Upon the acquisition, Apple started to separate many of the things that were in the Object Oriented Cocoa Frameworks into another layer - Core Technologies. These were all callable from any normal C program and were designed to be a portability layer.

This also allowed Carbon apps to take advantage of Core Technologies in OS X without having to use Objective C, Java and Cocoa.

5. Quicktime
We had Quicktime running on Windows as early back as 1992/93. Even back then, the Macromedia developers were saying that Apple's drawing code in QT for Windows was far more efficient than Microsoft's own graphics code.

This is a killer because QT has been running on Windows and Intel for ages and the code is very stable and very portable.

Even back in 1999, the engineers were telling me that they make frequent builds for Intel just to ensure that their version of BSD is compatible and will work. Obviously back then, some of the other layers of technology would take more time to make them portable.

6. Hardware Standards
Apple's been on a very deliberate policy of going with standards over the past 6 to 8 years. USB, USB2, Firewire, AGP, PCI, PCI-X, memory, hard drives etc. These are all standard components that you are going to find on PCs also.

Undoubtably, Apple is the one company that is going to be able to build an excellent Intel based box.

7. Red Box: Windows compatibility
This was an issue that Apple consistently refused to answer questions about while OS X was in development around the '98-2000 period. This was a way for Cocoa applications to be recompiled to run on top of Windows.

There is a black horse element here in that Apple could deliver a 1-2 killer punch by releasing 1. Intel based OS X computers and then 2. allow developers to have great apps that run on Windows at the same time via the Red Box compatibility layer.

While Apple totally eliminated all discussions about a "red" (they said - no more colours!) box, I want to make the observation that Apple's been releasing one great application for Windows for some time - iTunes for Windows! This could have been a Trojan Horse strategy for them - testing the portability technology without drawing anybody's attention.

The development of this could be easily funded by the profits and revenues from selling iPods to the Windows market and they've made a lot of money doing that.

As we've seen, the Apple experience once brought over to Windows - eventually leads many to consider Switching over to the Mac because they've tasted of the Mac experience.

There are other great apps - Final Cut Pro, iWorks, iLife, various audio applications etc that could be brought over to Windows. This plus the Intel move allows Apple to further operate in a manner that makes them less dependent on Hardware for revenue in the long term and become more of an OS and Application company which also sells great devices like the iPod.

8. BSD
All through '98 to 2000, having spoken to the OS X product managers in highly technical sessions with other former NeXT developers, they reminded us again and again that while Apple had NO plans for Intel, they had been making builds of for the Intel architecture and testing it to make sure they haven't broken anything.

Furthermore, they had been making builds of their OS to ensure that it was compatible with FreeBSD or OpenBSD (it's been a while and I can't remember which one) to make sure that nothing was broken. This would have meant that they are in line with one of the major BSD unix operating systems.

9. Compiler Technology
Ever since NeXT had put their operating system on Unix, they had been using GCC as their all-purpose compiler. Today, OS X is built using Apple's own XCode 2 code building tools and the foundation is GCC 4.0.

GCC is able to target their code output to multiple processor architectures, including Intel and this is consistently tested all the time by the Linux community who are predominantly on Intel. For that matter, WebObjects by Apple (until version 4.x?) and the original NeXT operating system development tools used to already target to multiple binaries.

You will notice that the current OS X .app file extension actually masks the existence of an entire folder which is an Application Bundle. Currently each bundle already contains the application binary, multiple language localization files and other things. This same .app bundle folder used to contain multiple binaries on the NeXT operating system that is now OS X.

That means that the same application can be dragged and dropped and installed on a different processor architecture by mere copying. This was previously called Fat Binaries by (not to be mistaken with the Apple fat binaries in the 68K/PowerPC days) by the NeXT developers.

This makes it a very interesting situation as Windows' 2 key competitors (Linux and OS X) are going to be playing on the same Intel turf architecturally.

10. Windows Emulation
The final hurdle is Windows compatibility. Apple will be able to get a port of WINE (Win Emulator) integrated into OS X which has been tested and running for years on Linux for x86. This gives Apple actually the best of both worlds - high performance Windows compatibility of select Windows apps without the overall security problems and the best personal productivity operating environment that you can get on the market right now.

Summary
The key components are all in place, from the OS, compilers, porting technology, frameworks and even legacy software components. Obviously some work is still needed.

Some Issues
The potential problem areas that I can see are as follows:

1. Really old legacy applications that require 68k code might have problems unless Apple ports the 68k emulator code. This should not be a problem because the code base for this is probably already portable since it was writen for the PowerPC and there's no dependency on the 68K in the first place.

The only issue in this area is that Apple migrated from the original emulator to a later version which dynamically generated compiled code on the fly. Now it would have to be reworked to generate Intel code instead of PowerPC code. Dynamic compilation was what made the 68K emulator so fast and efficient in later generations of the PowerMacs in the mid 90s.

Would they or could they drop the 68K emulator? Possibly. The only other source of a good emulator that I know of was written by Connectix some years back but it is now owned by Microsoft.

2. Should Apple go it alone or should they persue an OS Licensing Strategy again? Good question.

They could make OS X installable on existing PCs - there are risks there because of all the variables. But it would strike me that this is very much similar to a Mac Mini strategy where Apple tells users to keep the keyboard, monitor and mouse, but throw away the PC. This time around, KEEP everything, but throw XP out of your window!

3. Apple waited for some time to make this move because they needed to get the bulk of the developers to move from OS 9 to OS X instead of making this Intel transition back in 2000. Now that this is done, there is market momentum and developers are going to like the idea of being able to do this transition with Apple.

There is a risk that if Apple doesn't manage its relationship with developers, that they could balk at making this jump. But for them, this is relatively riskless as all the difficult stuff has been done already. It really will be mostly a recompile and some testing.

Much of this may depend on the release of Reference Hardware from Apple as I think they will first release Apple branded Macs running on Intel before they ever license the OS to others.

Some years back, Steve never quite said that they were permanently doing away with platform licensing, but rather that they will do it WHEN they are able to have a good business model to do so. It wasn't making business sense for them back then as they weren't making money.

4. the Timing of the transition is important. Without the ability to release faster and better machines in the next 12 months (eg. WILL there ever be a Powerbook G5 that won't melt in your lap?) and a long transition - Apple will be stuck and in No-Man's land. IF they are going to do this, it'll have to be very fast, possibly with releases as early as Jan 2006.

So your next Powerbook might have a Centrino inside. For nearly all Mac users, this isn't going to make a difference as Apple is STILL going to make great hardware that feels like a Quality product.

----

I might polish this up some more, but these are some of my initial thoughts on the matter. The transition is technically feasible, with very few difficult problems to solve at least on the technology side. What remains are marketing and market perception issues.

My feel is that Apple would need to products REAL SOON, definitely less than 12 months or else the news of this transition will cannibalize their current sales of PowerPC based Macs as people take on a Wait and See approach.


Jesse Sng
President, CMUG