Freitag, Januar 12, 2007

Opinion: Why Solaris and MacOS X should unite?

There are dozens of articles like this one on the net. Over and over people suggested solutions like this for different reasons and although I know that such thing probably won't happen any time soon, from my point of view now it is the best moment ever in the history of both operating systems to merge in a one powerful alliance. And the hell has already frozen over, hasn't it?

First I will give short description of both OSes, so we can see the strong and the weak sides of them and see if the combination should eliminate the shortcomings and make the good points even better.

MacOS X

After running MacOS X several years exclusively on PowerPC processors from IBM and Freescale (former part of Motorola), Apple decided to make a switch towards x86 architecture, which is completed now. PowerPC version of OS is still developed, although no one outside Apple knows for how long this version will be feature complete with the x86 version. While the kernel of MacOS X is freely available, the complete OS costs about $150 per seat.

The kernel of MacOS X is called Darwin, it is open sourced, but it is not very popular among third party developers outside Apple. First reason is that the development itself is closed source, only the finished kernel is delivered by Apple, sometimes with months of delay. So the developer can study the kernel, write drivers for it, but has only little influence on the development of the kernel itself. The second reason is that the architecture of the kernel is quite unusual. It is an outdated Mach3 microkernel with a FreeBSD "personality". So after understanding of the concept, still hardly anyone can explain the reason (probably heritage of NextStep) and the benefits of having such architecture. Some people are talking about Frankenstein OS, which consists of parts somehow glued together and brought to life. The problem with such approach is that the concepts from other OSes cannot be applied to Darwin. That might affect security, reliability and scalability of the OS, because there is no experience from other OSes, so all these topics require extra effort and research. Virtualization is not even on agenda of the kernel developers. Darwin kernel has also received lot of negative press, because it lost several benchmarks against Linux and Solaris. Even if the benchmarks were not always correct, they still contribute to the negative image of Darwin, which decreases the amount of voluntary programers, who want to spend their time with this program.

The UI and user-land programming on the other hand are among the best in class. MacOS X was the first platform with 3D GUI acceleration, is very consistent and simple to use, but powerful. Lot of technologies like Quicktime, ColorSync, PDF-based compositing system, desktop-search system Spotlight, Core Audio and Core Image are built-in and are used by the OS itself and by the third-party programs. MacOS X can be used by not tech-savvy people without any knowledge of the command line. For command line-aware people, whole UNIX power is available. MacOS X also includes an X-Window server, so even UNIX-programs, which require graphical output can be ported to MacOS X. The programming of MacOS X is either possible using libraries and languages known from other UNIX platforms like TK, QT, Motif for libraries and C, C++, Perl for languages or MacOS X-native Cocoa or Carbon environments.

Main usage of MacOS X is creation and consumption of multimedia content, video and image editing, audio processing, desktop publishing, main focus is desktop user, who might not be aware of command line and should not be. MacOS X is used as server mostly in MacOS X environment. Most of the software has already been ported from PowerPC to x86 or is still in development. For PowerPC-only software there is an emulator available, which translates PowerPC code to x86 commands.

MacOS X is supposed to run on Apple computers only. Apple offers two lines of notebooks, three lines of desktop computers and one server line. Although it is theoretically possible to run MacOS X on an other x86 compatible computer from other manufacturer it is legally forbidden. Drivers exist only for devices, which are used by Apple computers, so running the OS on a computer with different devices, might cause problems. MacOS X has been already tried out for running on 8 processors (2 4-core Intel processors). However, there are no experiences how well it scales for this number of processors or even above (remember, Linux 2.2 was also running with 16 processors, but it did not scale well). The maximum supported amount of memory is 16GB.

Solaris

With the open-sourcing of the Solaris 10 version of its operating system, Sun has awaked new interest in it. Solaris 10 is running on SPARC and x86 processors both versions are feature-complete. There are attempts of porting it to PowerPC processors as well. Solaris 10 is available for free, however you have to pay for support.

The kernel of Solaris is BSD UNIX with some heritage from System V (according to the www.levenez.com/unix/ ). The kernel is very scalable (largest server offered by Sun contains 72 CPUs), secure (merged with parts of Trusted Solaris), reliable (Solaris Fault and Service Managers, Self-Healing technologies). Technologies like Containers for virtualization, DTrace for debugging and performance optimization, ZFS as high-end file system are still not available on other systems (or have been ported from Solaris). Performance-wise Solaris gets very good notes from several benchmarks. It receives lot of attention from the open source community. Sun releases very often previews of the next version of Solaris and works close with the third-party developers.

On user-land side, Solaris 10 is delivered with completely outdated CDE or Java Desktop 3, which is based on GNOME. This software is included in Java Desktop 3:

• GNOME 2.6
• Evolution 1.4.6
• Mozilla 1.7 browser
• OpenOffice.org 1.1 (basis for StarOffice 7 suite)

One can see, that this software is completely outdated (compared with e.g. SUSE Enterprise Desktop). There is no 3D-acceleration included, no desktop search. And nowhere on the net I could find a shipping date for Java Desktop 4. Moreover Sun will have problems sticking with further versions of GNOME, because it seems, that GNOME's high-level language will be Mono's C#, which is big rival for Sun's JAVA. User-land programming is done in JAVA, C, C++ with GTK+, QT or Motif libraries.

Solaris is heavily used in technical and science areas. It is still OS of choice for such tasks as EDA, CAD, CAM, CAE. It is also used as server OS for large databases, file and computation server or websites in mixed environments. The user should be very skilled in usage of the command line and understanding of UNIX. Lot of software, which is available for SPARC only has still not been ported to x86. There is no emulator available, which could translate SPARC commands to x86 (the only emulator demonstrated by Intel translates SPARC code into Itanium code, Sun tries to ignore that one). Currently there are no plans to abandon SPARC processor, but the roadmap for a workstation SPARC processor is not quite clear.

Solaris runs on wide variety of SPARC and x86 based hardware, especially servers from big companies. But it has to share the same problems as Linux with notebooks, where there might be no support for non-standard hardware build-in, or no open available documentation, so no open source drivers may exist. Sun also produces workstations and servers for Solaris.

Elimination of Shortcomings

Now it becomes clear that the weak side of the MacOS X is its kernel. Even if it is technologically interesting, it has negative image in the minds of developers, so there are only few people outside Apple, who are doing research and develop for Darwin. Lost benchmarks, complex architecture (and unknown security holes as a result), not proven scalability, lack of virtualization, self-healing, and a noncompetitive file system also doesn't make it system of choice for large server administrators. Additionally, though MacOS X is a UNIX system, there is hardly commercial software available, which comes from "old" UNIX platforms (e.g. Solaris).

The weak side of Solaris it is user-land. While making good shape on server, Solaris looses ground on workstation market, especially to Linux. Lot of workstation software packages, which were running on SPARC Solaris, are not ported to Solaris x86, but to Linux instead. Linux supports more hardware, it receives more frequent updates and ISVs (Independent Software Vendors) see no point in supporting two very similar (from the workstation point of view) operation systems on the same hardware. Unclear situation on the SPARC side (for the workstation) only increases the problem.

Strengthen the Good Sites

So what kind of advantages will the user have, if both systems will be merged?

- industry-proven, trusted, fast, reliable, secure, scalable kernel as fundament
- server OS with great manageability as known from MacOS X server
- unmatched technologies like DTrace, ZFS, Containers, Spotlight, Time Machine, Quicktime and so on in one package
- attractive UI with modern multimedia, office and communication software for former Solaris users
- programs from both worlds on one platform
- increased number of users, who might attract developers for porting their programs to this platform
- new buzz OS for geeks
- shared development resources
- ...

Is it just a dream?

Both companies Apple and Sun must change their politics to make such a dream happen. Apple has to accept that they do not have the full control over the development of the kernel, Sun has to accept that after open sourcing the whole OS, parts of it will be closed again (Aqua part, Apple will never open-source that one). From the license point of view such a merging is possible, I hope Sun will not do something stupid and put Solaris under GPL as they announced not so long ago. Both OS need to get some attention from users and developers for not being crushed from Windows on one side and Linux on the other. Sun should also declare SPARC workstations as depreciated, so not the complete OS should be ported to SPARC, but only the server relevant one. An emulator should translate SPARC code to x86. Aqua should run only on selected hardware, but kernel can run on a variety of x86 platforms. The Solaris port to PowerPC should be accomplished, but the quality doesn't have to match the x86 package, because, PowerPC platform is not the main business for Apple, they should do it only for the compatibility reasons. The interesting thing is that some of Solaris code has already been ported to Darwin, namely DTrace and there are lot of rumors, that ZFS will also find its way into the new Leopard. So why not make a big step and take the whole portion instead small crumbles.

20 Kommentare:

Anonym hat gesagt…

MacOS X already uses Unix and co-operates with one of the most active Unix communities around: FreeBSD.

What has Solaris to offer that FreeBSD couldn't?

Anonym hat gesagt…

What has Solaris to offer that FreeBSD couldn't?

scalable threading model
scalable VM model
scalable IP stack
should I continue?

don't get me wrong do I love FreeBSD but it is nowhere near as good as solaris in scalability for one.

Solaris bring Oracle, BEA, IBM "server" products on the table.

Solaris *is* the most advanced kernel out there. It is recognise by many as the standard kernel by which you compare others.

Anonym hat gesagt…

"For command line-aware people, whole UNIX power is available."

Actually Apple has stripped out several of the command utilities from OS X. There are whole sections missing from the manual. Do a:

man -k intro

on your sytem and see what is left. Now do that on a *BSD, Linux, Solaris box and see the difference. Now; don't take this as a cheap shot at Apple. From a couple of news reports; Apple is seeking Unix Certification from the OpenGroup. Leopard should be fully Unix compliant. When Apple has a fully compliant release with all userland tools. They will have a new customer.

Personally I am waiting for a review of Leopard as well as verification that they will have Unix Certification under their belt. I will be a new customer once that happens. It shouldn't be long now. :-)

Anonym hat gesagt…

Couple of small corrections:

The largest Sun server has 72 sockets but 144 cores. The largest Fujitsu SPARC server has 128 sockets.

Solaris 10 11/06 has something higher than Gnome 2.6, I don't recall what but maybe 2.14. The newer JDS theme from Solaris Express and 11/06 is an apple-ish silver metal look.

Also, I do not think you will hear from Sun that SPARC desktops are deprecated any time soon. I do not think they want to do anything to imply any lack of committment to SPARC. The SPARC workstations still sell to those who need them, and the Sun Opteron workstations well serve those who do not. I love my Ultra 40 :)

As for the emulator, I expect a motivated individual could get QEMU working in "User Emulation" mode.

Anonym hat gesagt…

GNOME is more likely to focus on Python as opposed to Mono as its next high level development platform. There are a lot more Python apps written for GTK+ and GNOME than any other language with the exception of C.

Anonym hat gesagt…

Waisting you time here :) If you carefully read what you write - yes, you ! - you will find that there is no reason for Solaris to merge with crappy OS X. Nope. They have scalability, they have good kernel, they have powerful servers to run on, they have good management(you don't know about it, but this is your problem not Sun's). Guess what - Apple don't have all this things - you wrote it :P.
So why did you dream bad?

John Doe hat gesagt…

Geo, did you even bother to READ the article??

"The weak side of Solaris it is user-land. While making good shape on server, Solaris looses ground on workstation market, especially to Linux."

I hope that answers your question!!

Anonym hat gesagt…

Note that Darwin is not based on Mach anymore, but on XNU.

Anonym hat gesagt…

If you dislike the user land from stock Solaris or Solaris Express, you may well like to try Nexenta (http://www.gnusolaris.org).

Latest OpenSolaris kernel mated to the latest (or near latest)GNU suite, sort of like Ubuntu on Solaris.

Only in Alpha 6, but still very useable.

kloty hat gesagt…

Sean,

the problem is not what I can run on Solaris, but what is supported by Sun. I know that Solaris run the latest greatest GNOME version, but if you're running into trouble there is no official support for this. And no responsible system administrator will install that on a production system.

Anonym hat gesagt…

Apple won't cooperate with Sun and vice versa. Why?
Sun already cooperates with Canonical which ported Ubuntu server to SPARC and officialy supports it.
Sun is now embracing Linux, at least a little. I don't think they'll have any interest in supporting another OS.

Anonym hat gesagt…

Maybe you should review the notion of kernel... Apple will use ZFS most probably, ok. But Solaris is a (superb) server kernel. It would require quite heavy tweaking for a desktop/multimedial use.

The Apple 'just on my hardware' is a clear and reasonable (from their pov) strategy. Doesen't really matters with the ability of Aqua or Darwin themselvers to run on different hardware. So, what is your point with the babbling about what they should change to limit the hardware and emulate x86 on SPARC ?! -.-''

The interesting part imho instead is: might Apple decide to use Solaris as a commoditized kernel?
My take: they *vaguely* lokket at it for the far future. And they saw it won't be convenient for a long time.

Oh, about virtualization... Parallels work great for most needs of Apple customers. And Apple (imho) doesent' really want you to use anything else than their product. So, why? To have the buzzword? :)

Makc

Anonym hat gesagt…

GNOME's high-level language will not be Mono's C#. IIRC there was some discussion about this after Novell announced their irresponsible and ill-received deal with Microsoft. Mono is a liability in spite of Miguel's and Nat's continued fanboy attitude and, appareantly, Microsoft (why else haven't they resigned like Jeremy?). AFAIK Mono will not be part of Red Hat Enterprise Linux 5. The apps based on Mono will be replaced with alternatives free of possible liabilities. Afaik GNOME is coded in C and I see no problem for Sun to build on that.

Anonym hat gesagt…

another way to see it is Apple "owns" the good looking client side, has a great and limited (but fully capable for their target market) server side - they leave the big scalable multi-million dollar server side of thing to Sun & the other... that's a choice, focusing on their strengths - and the SMB market out there is growing fast while at the same time high end server/services part becomes more and more outsourced, abstracted and will end up as a web servcie...

you forgot a critical point is that OS X was developped to have the user in mind, so some of the choices impacting what you judge as performance hit were "made by design" for either user experience or latency in the multimedia world.

let's things be true to themselves, Solaris will never be a great client operating system, Aqua is not just a glossy user interface dumped on top of the OS, they both work hand in hand...

Anonym hat gesagt…

Regarding "There is no emulator available, which could translate SPARC commands to x86", have you seen http://www.transitive.com/products/sol_sparc_lin_x8664.htm ?

Anonym hat gesagt…

Very interesting suggestion, I would agree there are a lot of potential synergies in merging the rock solid kernel of Solaris with the interface of OS X, but I think the only way it would ever come to fruition is if one were to buy the other, and apple have I think indicated their focus with the name change is not to expand in this direction.

Its a shame, as in theory they have similar business strategies, both produce a high quality, premuim product, both of them do this in part, by retaining almost complete control over both the hardware and software side.

Vinny hat gesagt…

yup, you are absolutely correct. I have been saying it for ever to my mates. Apple and Sun should merge and bring their product together. Solaris based OS XI! Sun side of Apple-Sun can tackle IBM, MSFT, DELL, HP and Apple side of Apple-Sun can take out MSFT, SONY and other consumer electronics players. Together they would be very powerful and could leverage each others technologies.
Makes perfect business sense and is more than possible from a technical perspective.

Anonym hat gesagt…

I hope Sun will not do something stupid and put Solaris under GPL as they announced not so long ago.

Is that because you hate freedom?

Anonym hat gesagt…

Thanks for the nice comparison!

Pune City hat gesagt…

I would like to thank you for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well.

Golden Triangle Tours