Wednesday, October 28, 2009

The World's Most Advanced OS?

A while ago Jenny bought herself a new laptop. There was no way we consider wasting money on a laptop running Windoze (you try buying a non-Apple laptop without paying Windoze tax!), so a MacBook Pro it was (I had some say in the machine's specs).

The Mac has some interesting features, and I like the way everything Just Works. MacOS is a bit different from Solaris, but it's really easy to pick up. So what's the point of this post? Apple touts Mac OS as "the world's most advanced OS", and that patently isn't so. Don't get me wrong: I like Mac OS (although I still find the idea of paying for an OS to be a bit grating), but the world's most advanced OS it isn't.

I'll raise just a couple of points to support my view.

1. Until the recent release of Mac OS Snow Leopard (10.6), Mac OS was a 32-bit only OS (Snow Leopard is apprently 64-bit--I can't confirm this cause I haven't got round to installing it yet). Colour me unimpressed: Solaris has been 64-bit clean the launch of Solaris 7, well over a decade ago! Also, Solaris' 64-bit kernel is quite capable of running brand new 64-bit apps and ancient 32-bit apps side by side. I don't know if Mac OS supports that.

2. Mac OS is based on (IIRC) FreeBSD. Not exactly the first OS that comes to mind for multithreaded scalability. How scalable is Mac OS? I guess we won't know because the biggest machine Apple sells is a piddly dual-socket, quad-core desktop. Big deal! Solaris scales from tiny single-core tiny laptops to massive 64-socket, quad-core behemoths that supports up to 4TB of RAM. And that's from the same OS binary.

3. Apple recently announced the dropping of ZFS, arguably the world's most advanced file system. If your OS doesn't support an adavanced file system like ZFS, then it is not a contender for the world's most advanced OS. It's just that simple.

4. Solaris has support for HW hot swapping that Mac OS can only dream of. In the right machine, if a CPU board dies, you can just replace it on the fly. No downtime, no interruptions.

I could go on, but I think I've made my point. Mac OS is a fine OS and is leagues ahead of Windoze, but the world's most advanced OS it isn't. That crown belongs to Solaris.


At 28/10/09 12:36, Blogger Chris Ridd said...

Yes, Mac OS can run 32-bit apps and 64-bit apps side-by-side, just like Solaris can. But a 32-bit Mac kernel can still run 64-bit apps, which is something that Solaris cannot do.

It would be handy if Solaris could also do this; the OpenSolaris install CD is 32-bit only, and as a result can't handle big disks very well.

At 28/10/09 13:39, Anonymous Joshua D. Boyd said...

"World's most advanced" is a rather ambiguous statement since any two operating systems could be the world's most advanced at different points.

1. Past history does not determine advancedness today. If both systems have the same feature, they are of equal advancement regardless of who got the feature first. Advancedness can only be determined by who implements the feature in a superior manner, or has better related features. OS X has had the ability to run 64bit applications since 10.4 in 2005. This is clearly not as long as Solaris could, but it also is only about 1.5 after they first shipped 64bit hardware, while Sun took 3 years from the UltraSPARC to Solaris 7. The presence of 64bit in OSX has been a bit messier since the kernel itself was and still is mixed. On OSX, the 32bit kernel can use 32gigs of ram and can run 64bit applications using 64bit address space and more the 4 gigs of real memory usage. With 10.6, machines that have EFI64 (a minority of the 10.6 compatible machines) can use more memory and can also use 64bit addressing for DMAs and IO, but the difference between the two kernels is negligible for most users with a maxed out MacPro and and a need for 64bit software. This could be interpreted as OSX having more flexible 64bit support that Solaris. Also, I never have trouble with getting 32bit libraries crossed with 64bit libraries like I frequently do on Solaris and Linux.

2) OSX is not based on FreeBSD, but they did borrow a lot of code from FreeBSD. OSX uses the XNU kernel, which was originally a blend of Mach (2.5), 4.3BSD, and proprietary extensions like DriverKit. Since then IOKit replaced DriverKit and some components of FreeBSD have been reused to update parts of XNU. Multiprocessor performance of FreeBSD probably has little to no relationship to multiprocessor performance on OSX. We don't know what OSX is tested on in labs, but if Apple is smart, they will at least be testing on 48 processor machines and tuning for performance on those for the future. OSX does offer nice features that Solaris doesn't such as Grand Central Dispatch (libdispatch), and extremely nice tools for multi-threaded development and profiling (in part based on top of DTrace, which obviously comes from Sun).

3. Apple dropping ZFS is sad for me and many users and ZFS is unquestionably more advanced than HFS+. I question if ZFS is really the most advanced file system in the world though. BtrFS looks extremely advanced, and I'm sure there are others as well.

4. On a laptop, desktop, or 1RU server that can run Solaris, how much can Solaris hot swap other than HDs?

As to other things that OSX does, OSX does offer better audio latency. OSX does offer a very advanced and polished compositing desktop. The OSX kernel does usefully run on more CPU architectures that Solaris as well. OSX provides and encourages the usage of superior programming languages. While Sun developed some nice systems like DisplayPostscript and Self, they never really showed full commitment to them. Also, OSX shows more commitment to the workstation market, something I don't feel that Solaris has been taking seriously for a long time now, much to my disappointment.

At 28/10/09 13:59, Blogger georgz said...

I am disappointed the most by the scheduler. A simple rsync of a big file brings the whole user interface to a grind... Unbelievable for me, having used Linux for 10 years on my work laptop...

My colleagues who switched from Windows to Mac are delighted, me, switching from Linux, not so much.

At 28/10/09 14:19, Anonymous Anonymous said...

> if a CPU board dies, you can just replace it on the
> fly. No downtime, no interruptions.

If kernel wasn't running on that CPU ;)

At 28/10/09 15:06, Anonymous Anonymous said...

MacOS X is based on Mach, a very scalable message-passing micro-kernel. The BSD-derived parts are layered on top of that.

At 29/10/09 01:41, Blogger Dennis said...

Apples oranges.. Clearly your definition of what an advanced OS is is different.

If you define 'most advanced' in terms of ease of use, not getting in your way and having all the features a 'normal' person needs, OS/X is probably the most advanced OS.

At 29/10/09 03:18, Anonymous Anonymous said...

"The OS X kernel is not based on FreeBSD. The BSD part is based on 4.4BSD with some code from FreeBSD, NetBSD and others. The OS X userland UNIX tools are mostly based on FreeBSD code, though."

At 29/10/09 09:43, Anonymous Anonymous said...

The Mac OS Kernel is XNU ( a hybrid of Mach and BSD.

So there cant really be a big link to the multithreaded scalability of FreeBSD.

At 29/10/09 17:32, Blogger john said...

I own a Dell Linux-outfitted laptop. It works really well. It came with Ubuntu but Fedora works great. I also installed Opensolaris (build 122 or so) on it which worked without any hardware compatibility issues. I think the wireless hardware in particular is chosen to be friendly to open source OSs.I hope that Dell did not give my money to M$. I like to think that buying this product is "voting with my wallet" for Linux and I hope other open source OSs. It was also much less than an Apple.

At 28/12/09 07:05, Blogger macdrew said...

Apple has a lot more than a 16 core Desktop, the author missed that Apple has the 1U Xserve series.


At 19/4/10 10:09, Blogger Morris said...

Mac OS is only good for "consuming" technology, not creating it.
I wonder why anybody would argue that Mac OS is the "most advanced OS" . Maybe it's just lack of knowledge, but that's not my fault

At 4/12/10 09:08, Anonymous Anonymous said...

Well, IMHO, since Solaris is closed source it cant be configured as well as the Linux kernel... considering this fact Linux leaves everyone wayy behind.

I mean you can select i/o and processor scheduler, the drivers, and more than 500 different options.

At 31/12/10 19:34, Blogger Rich Teer said...

Selecting compile-time options does not make an OS advanced. With proper design, one doesn't need to do this. Solaris is very good at self-configuring.

Solaris proper isn't fully open source, but OpenSolaris and Illumos et al are. Bit of a shame Oracle seem to be trying their best to fsck things up...


Post a Comment

<< Home