Mittwoch, 29. Juni 2011

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.


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.


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 ). 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
• 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.

Keine Kommentare:

Kommentar veröffentlichen