Wednesday, October 6, 2010

Musings on Mac osX

From the day I saw screenshots of Mac osX when it was released(I believe it was "Tiger"), I was fascinated by the looks of the desktop,the dock and more shocking was that it was based on BSD code. BSD code is licensed liberally, ie, propreitory companies can make a derivative out of it and include in their binary environment. No need to give back the improvements to the community. Actually, No questions asked.

And when it was release GNU/Linux desktops were just emerging. I couldnt imagine that GNU/Linux environments would be as pleasing as a Mac. Now at this moment I am proud to make the statement that the GNU/BSD and GNU/Linux projects are heading in the right direction compared to what Apple is doing to OSX.

Here are my reasons.

1. They started with a micro-kernel approach(Using freely available university project Mach3). Incidentally GNU, the operating system envisioned by RMS is based on the Mach micro kernel. But they found out that still a lot of work is to be done for realising micro-kernels. So they took the best part from it and added the other parts from the BSD kernel to complete their xnu kernel. The summary is even the best hackers at apple couldnt write an OS from scratch.

2. The amalgamation is not to my best taste. For eg, a process creation is not a simple fork() as is the norm with the *nix os. If this is complicated then, I really do not care about the remaining. The apple engineers have not achieved anything outrageous, except for the quartz engine and the aqua interface.

3. There is no need for apple to demonstrate the scalability of the *nix os. We know that bsd/linux kernels scale excellently from toasters to super computers.

4. They hid the complexity of the kernel on their mobile device by not providing the capability to run multiple programs(This is a crime in the days of n cored processors)

5. While the users drooled on the touch interface and the beautiful interface, the apple engineers out of pressure from android devices, put in a restricted amount of running multiple programs in the next iteration. If apple had their way the users would be locked on to the single process model of iOS.

6. Right now, I think they would be scratching their heads to reach the multi-tasking capability of android and other GNU/Linux devices in the future.

7. Even the hardware on apple's desktops and laptops are way behind the advances in processor technology. This is owing to the fact that they code their os so tightly to the hardware that every change in the hardware requires a re-write of inter-dependent modules.(Oh my god, re-inventing the wheel every time).

8. To give the apple coders sufficient amount of time to catch up with the capability of GNU/Linux devices apple is now behind android devices so that, development in that camp also slows down.

To summarize, the MAC OSX is nothing beyond the aqua and the quartz engine. If it was anything but fantastic, apple would be in google's position now, that is selling the OS stack to anybody and everybody in the handheld world. Whatever apple tries, it will never be able to build a coherent kernel from the bits and pieces of contradictory software pieces of the free software world. Its high time that apple recognizes this fact "Software in the free software world is based on the *nix philosophy of doing one thing and doing it best".

xnu kernel is one big monolithic kernel which would give sleepless nights to Andrew.s.Tannnebaum, in such a way that his next book would excuse Linux for being monolithic and take the xnu kernel as an example for monolithic kernels going wrong and haywire.

More reasons to love GNU/Linux,GNU/Bsd,GNU/Minix and also Microsoft windows 7(!!! really? !!!)