I know that is confusing, but the 1.0 version of OS X was released in 1999. I should have saved the receipt, but I still have the box.
It does go without saying that OS X changed apple, as it FINALLY integrated the NeXTSTEP OS onto the consumer level machines, and propelled Apple to the #1 spot for the Unix market. Yeah take a step back with me here, and look at the market like this. Apple ships more computers in any given year then HP/SUN(Oracle)/IBM ship that come preloaded with a UNIX. Not to mention Apple also loads their UNIX is the core of the iPhone, iPad, and some of the iPods. Wow imagine that, Apple brought UNIX everywhere. And made it so buried under a UI 99% of the users don’t even know it’s there.
That’s pretty snazzy, isn’t it?
So 10 years ago today, Apple finally shipped 10.0.0 . And let me tell you it was rough around the edges. I had an iMac and at the time I LOVED it. In between the 1.0 & the 10.0 I had bought a G4 and was disappointed that 1.0 wouldn’t run on my beloved G4. I had no intention of running OS 9, but that’s all it could run. So in those fleeting months I managed to run windows 95 on SoftPC (SLOW!) and even got my hands dirty on OpenBSD for the PowerPC.
OS X really made a splash with usable applications that shipped with the OS. I know the nerds hate iTunes, but damn, it’s something a user can use. Same with Mail, and even Microsoft Internet Explorer.
So enough with the reminiscing, I’m sure you want to see it run under some kind of emulation, right?
Well the best (if not only) emulator for running PowerPC Macintosh stuff is PearPC. And version 0.4 is about as good as it gets. Mostly because of Stefan Weyergraf’s untimely death.
Which is sad, however I did find with a little playing around, 10.0.0 can boot single user mode from the CD.
One thing was for sure, at the time, 10.0.0 was so.. rough around the edges Apple did give everyone a free copy of 10.1 . And that version certainly better then 10.0! And it runs on PearPC!
The boot screen, notice the old style mac.
And the progress bar, just like NeXTSTEP. The more things change the more they stay the same..
And welcome to the desktop.
Well since it does run in single user mode, maybe it could be possible to manually place a 10.0 dump on the disk, but that may take a bunch of time… So for now enjoy 10.1!
Today I thought I’d isolate the portion of simh that crashes 4.X BSD, when SIMH is built with GCC. I managed to find that the “op_ldpctx” and “op_mtpr” procedures of vax_cpu1.c become unstable when built with -O2 flags.
So I extracted the two procedures so I could then built the remainder of SIMH with GCC’s O2 flags. Before going too far, I first went to verify that the results would be consistent with the i386/32bit binaries…
However the results were.. interesting. By default SIMH will build with -O0 flags for the VAX giving the following dhrystone benchmark in 4.3 UWisc BSD:
Dhrystone(1.1) time for 500000 passes = 24 This machine benchmarks at 20833 dhrystones/second Dhrystone(1.1) time for 500000 passes = 24 This machine benchmarks at 20833 dhrystones/second Dhrystone(1.1) time for 500000 passes = 24 This machine benchmarks at 20833 dhrystones/second
24 seconds, not so hot. Then the same thing with -O1 flags…
Dhrystone(1.1) time for 500000 passes = 18 This machine benchmarks at 27777 dhrystones/second Dhrystone(1.1) time for 500000 passes = 18 This machine benchmarks at 27777 dhrystones/second Dhrystone(1.1) time for 500000 passes = 18 This machine benchmarks at 27777 dhrystones/second
18 seconds! pretty good, thats a 33% increase! Now for my hybrid -O2/-O1
Dhrystone(1.1) time for 500000 passes = 17 This machine benchmarks at 29411 dhrystones/second Dhrystone(1.1) time for 500000 passes = 17 This machine benchmarks at 29411 dhrystones/second Dhrystone(1.1) time for 500000 passes = 17 This machine benchmarks at 29411 dhrystones/second
A 5% increase over the -O1 … Nothing too big, but still an INCREASE.
Now for the real fun, I re-ran these bulid factors with the x86_64 compiler.
The -O0/-O0 combination came in at 19 seconds!!
Dhrystone(1.1) time for 500000 passes = 19 This machine benchmarks at 26315 dhrystones/second Dhrystone(1.1) time for 500000 passes = 19 This machine benchmarks at 26315 dhrystones/second Dhrystone(1.1) time for 500000 passes = 19 This machine benchmarks at 26315 dhrystones/second
This is pretty amazing considering everything we do should make it faster… The next thing I tried was the -O1/-O1 combination and go the following:
Dhrystone(1.1) time for 500000 passes = 12 This machine benchmarks at 41666 dhrystones/second Dhrystone(1.1) time for 500000 passes = 13 This machine benchmarks at 38461 dhrystones/second Dhrystone(1.1) time for 500000 passes = 13 This machine benchmarks at 38461 dhrystones/second
A 12.5 second average! This blew the doors off of the -O2/-O1 on the i386! Naturally I was hoping for at least a 5% increase going to the -O2/-O1 flags on the x86_64, however I got this…
Dhrystone(1.1) time for 500000 passes = 14 This machine benchmarks at 35714 dhrystones/second Dhrystone(1.1) time for 500000 passes = 13 This machine benchmarks at 38461 dhrystones/second Dhrystone(1.1) time for 500000 passes = 12 This machine benchmarks at 41666 dhrystones/second
And I ran it numerous times, but the bottom line is that the O2 flags actually produces a SLOWER SIMH on OS X 10.6.4 then -O1 flags… The whole exercise is a tad perplexing to me, to say the least, but unless you bench it, you’ll never know if the compiler is getting confused somewhere, and going to throw a loop. I should also point out that SIMH will not run with full -O2 flags as there is something in the code that breaks under optimization so this very well may not hold true 100% of the time, but at the same point things still have to be tested…
This builds the single file for all 3 machine types of OS X..
For anyone that cares, this is my quad core box..
$ ./dhrystone Dhrystone(1.1) time for 500000000 passes = 83 This machine benchmarks at 6024096 dhrystones/second
Ok, now let’s pull out the PowerPC executable, and run that….
$ lipo -extract ppc7400 dhrystone -output dpc $ file dpc dpc: Mach-O universal binary with 1 architecture dpc (for architecture ppc7400): Mach-O executable ppc $ $ ./dpc Dhrystone(1.1) time for 500000000 passes = 214 This machine benchmarks at 2336448 dhrystones/second $
Which isn’t too bad, seeing the emulator runs at 1/3rd speed of the native exe.. It’s no wonder that IBM bought transitive, and shut them down. This kind of technology would make it far too easy for everyone to move away from expensive CPUs…!
Now let’s extract the 32bit i386 exe.
$ lipo -extract i386 dhrystone -output di3
Nothing to really see here.
And for the final part, let’s combine the extracted PPC & i386 executables.
And there we have it.. Using this I guess I can try to find versions of Qemu that will hopefully cross build on my machine that I can stitch together so that some platforms (PPC) have *SOMETHING* to run at least…..
Or maybe it’ll help someone at least make a stub ‘we are sorry, nothing to see here’ vs an exe error.
Well let me be the first to say this is a little “modern” compared to all of my prior stuff, but anyways I’ve been enjoying life under OS X the last few days (along with crunch time @ work.. .sigh). As part of my day job I do still have to maintain some MS-DOS & Windows stuff, so while I do run Qemu under OS X, I’ve also purchased a copy of VMWare Fusion 3.1 (available online, and as a 30 day eval!). Ok so it’s $89 with the one year support, pretty snazzy stuff.
Now one thing that I find very interesting, is that unlike all the other more expensive versions of VMWare, Fusion for the MAC allows for SOME 3d apps to run!
I’m still kind of amazed at the stuff that does run and how cleanly it does so.
So I’ve installed good old Windows XP in a VM, then tried Fallout 3. No go. For the hell of it I tried Sims 3, and surprisingly it worked.. Even though it’s silly as there is an OS X version available.
Now KOTOR has been kind of finicky about what machines it’ll run on, in the past, but I have to say, much to my surprise the emulated 3d hardware ran KOTOR out of the box, without any modifications or anything!
So here it is, KOTOR in a ‘window’ on Windows XP in a Window on OS X.
And it’s playable at 1024×786.. and 1280×960, although at higher resolutions I’ve had issues with the mouse tracking.. .perhaps something about hardware/software mice support?
Anyways, emulation has now come to the point where 3d stuff really does run!
I nearly forgot before I shut down the VM for a long while, to do a f2c/dungeon build… I only had a minor snag on how libf2c removes symbols from the build, but commenting out it’s “ld -x” fun, and it worked great.
Now I think I’m only a few dozen builds behind Tenox’s aclock.
Well as the maintainer of the SIMH binaries on sourceforge, I end up needing access to a bunch of different platforms to build some prebuilt binaries for non win32 people out there.
As a direct result, I end up emulating many of the platforms, but for OS X, I have an old PowerPC mac mini that I used to build stuff, but I gave it away last year. Anyways after digging around on various networks, I came across this file, “tiger-x86.tar.bz2” So after copying it to my pc, and doing the bzip2/tar decompress shuffle, I had what looked like a VMWare config for OSX on intel.
So I figured this was as good as any test for the latest build of Qemu. After a bunch of experimenting I worked out this was the best way to start it:
Then when the bootloader comes up, I just typed in:
And away it went!
Now sure it works, but it’s SLOW. VERY Slow. You can remove some TPM extension, and it’ll speed up somewhat, and at least idle like a normal process. After all, I only wanted this setup to build some binaries, not run this like a desktop OS.
To make the bootstring permanent, you just have to open up a termianal window, and edit the file:
<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”>
Save it, and you’ll be good to go!
For me it was nice that the networking works, so I had an easy way to get source code into the VM, and executables out of the VM. One cool thing about this VM image is that it contains the compiler! I just wonder since it’s super old will it’s exe’s I make run on modern machines…? I don’t have any way to tell, so it may all be in vain.
As a test for the heck of it, I downloaded Internet Explorer 5.2 for the PPC version of OSX, and it runs.. It’s too slow to actually use it, although I’ve run it on real intel macs at the apple store, and it FLIES… It’s too bad they killed it IMHO I kind of liked it.
I’m not trying to advocate piracy and all that, but rather show how Qemu can help you run some VMWare disk images, and just how flexible it is.