A couple of points on "SUN Microsystems: A Friend or a Foe"

I recently read an article in the November issue of Linux For You titled "SUN Microsystems: A Friend or a Foe" authored by the well known John "Maddog" Hall. I felt there are a couple of misconceptions in the article that should be pointed out.

He mentions a comment by a LUG speaker: "... how hard it was to work on a Solaris system because of the antiquated and non-standard set of utilities on the upper levels of the Operating System ...". I am not sure what is meant by non-standard here. POSIX compliance is followed on Solaris and there are conformance testsuites for the commands and utilities. Is he equating non-standard to meaning non-GNU ? Well for that it requires a tweak of PATH to put /usr/sfw/bin on Solaris 10 to get a whole host of modern FOSS tools. If more is needed Blastwave.ORG is a very good resource. In addition SXDE is a very complete and modern Operating Environment with a complete GNU CLI environment under /usr/gnu/bin. Again a PATH tweak is all that is required. In adition SXDE bundles a plethora of FOSS including latest GNOME releases in /usr/bin . SXDE today is indeed very comfortable to use. It is amazing to see how far Solaris has come from the earlier days in a relatively short period of it's history.

"Sun also claims binary compatibility between releases, ... Sun guarantees your program to run as long as you did not use any interfaces that did not change or were not deleted. This is a guarantee ?". HUH, I smell FUD in this statement. What does one expect ? Absolute backward compatibility till the point when the OS was born! Every interface is Solaris is meticulously documented for interface stability guidelines and indicated which are stable and which are evolving etc. There is an ARC process that oversees every public interface being introduced, their implications and backward compatibility criteria. What more can one expect ? If you are using an evolving interface of course you know what the implications are. Of course changes do happen, interfaces do get obsolete - an inevitable part of software evolution. But these changes are "managed", one does not see APIs disappearing or changing suddenly without warning in micro-releases/updates for eg.

There is also a point in the article that mentions about lack of clear information about claimed several hundred benefits of Solaris. This is something to consider IMHO. Everyone talks about the big features of Solaris: DTrace, ZFS, SMF, Zones et. al. but there is much less talk about loads of other stuff that make the Operating System unique and compelling. For eg. Fine Grained Resource Management, RBAC, Integrated Real-Time features and so much more. How many people know that Interrupt Shielding has been present in Solaris since Solaris 7 ?  There are so many more such little-known things about Solaris that are just crying out to be better highlighted. We need a well-organized how-to collection.


Forgot about one point:

"... some of those features are offered by major Linux distributions, and others can be added by 'rolling your own' in the Linux space."

Correct me if I am wrong here. AFAIK, apart from ZFS there is one other thing that cannot be had even by rolling your own: Comprehensive Resource Management (CPU Caps, Memory Caps, Dynamic Resource Pools, Processor sets,  Fair Share Scheduler, Zones + Resource Controls etc.).

Some partial things are available for eg. the project: ckrm.sourceforge.net (Class Based Kernel Resource Management) but there is a long way to go.


a comment by a LUG speaker: "... how hard it was to work on a Solaris system because of the antiquated and non-standard set of utilities on the upper levels of the Operating System ..."

This is a typical mindset of a Linux user weaned on GNU diet. I agree with you that it implies that GNU is somehow some sort of a standard.

The reality is, Solaris is System V. System V requires understanding of certain concepts on a certain level. Concepts about how the system is organized, how it functions, what the command interfaces are like and the ways in which this makes the system consistent and portable.

This is something that a kiddie or a junior sysadmin do not have any knowledge of, and it is a problem. I've written before that it is our problem, because we should bring up the next genration of UNIX(R) experts, since the academia failed miserably at it.

The fact that I can do everything with System V that can be done with GNU, and more, in a consistent and portable way, that also works on GNU, is something that we have to actively work on bringing to the forefront and something that we have to promote.

People need to be made aware of the fact that System V is more portable, and more powerful than GNU. GNU was not made to be better than System V, just to make do in the absence of System V tools. And most people do not realize this important distinction.

Another big problem is, people with GNU background do not understand the concept of portability, precisely for the same reason they do not understand System V.

We must actively bring these issues to the foreground; people need to be made sensitive to them, and they need to be acutely aware of them. Teach people System V.

Posted by UX-admin on December 16, 2007 at 06:41 PM PST #

I think the misconception about the compatibility guarantee is around the word "changed". If you look at what the original speaker is saying is that the guarantee sounds like we guarantee that the API's are guaranteed to work unless we change them. That is not the case, the committed API's are guaranteed to work, EVEN IF we change them. Of course, the reality is somewhat more complex. For instance, there is currently no guarantee in the business sense, since the Solaris 10 guarantee program expired and no later version of Solaris has been released. On the other hand, the engineering rules have not changed, so the technical side of the guarantee is still in effect. But of course, this only applies if a program only uses committed interfaces in the first place.

Posted by Brian Utterback on December 16, 2007 at 11:41 PM PST #

That's very well said. I have seen certain programs compiled on Sun OS 2.4 or 2.5 and could still run on Solaris 9! This is developer's duty to check the interfaces he is using. If I use an evolving interface which are subject to change, how it can be guaranteed that'll run other releases ...

I agree about having an organized how-to... probably on Wiki on opensolris.org.

Posted by Vivek Joshi on December 17, 2007 at 01:21 AM PST #

Funny thing, i had it the other way round. Missing pstack, pmap and truss in linux. I asked colleague and found a replacement, which was enough for the task.
I think John "Maddog" Hall has a problem, if he cannot ask a coworker or do some internet digging.
Even Windows has some nice tools, although system observability in general is not up to unix.
You can learn a bit from everyone, even if it's how to not do it.

Posted by Knut Grunwald on December 17, 2007 at 09:26 PM PST #

Post a Comment:
Comments are closed for this entry.



« July 2016