Ramblings from Richard's Ranch

Brain surgery: /usr/ccs tumor removed

Monday Jun 25, 2007

Sometimes it just takes way too long to remove brain damage. Way back when Solaris 2.0 was forming, someone had the bright idea to move the  C compilation system from /usr to /usr/ccs. I suppose the idea was that since you no longer had to compile the kernel, the C compiler no longer needed to be in the default user environment.  I think the same gremlin also removed /usr/games entirely, another long-time staple.  This move also coincided with the "planetization of Sun" idea, so the compilers were split off to become their own profit and loss center.  IMHO, this is the single biggest reason gcc ever got any traction beyond VAXen.  But I digress...

No matter what the real reasons were, and who was responsible (this was long before I started working at Sun), I am pleased to see that /usr/ccs is being removed. I've long been an advocate of the thought that useful applications should be in the default user environment. We should never expose our company organization structure in products, especially since we're apt to reorganize far more often than products change. IMHO, the /usr/ccs fiasco was exposing our customers to pain because of our organizational structure.  Brain damage. Cancer. A bad thing.

I performed a study of field installed software a few years ago. It seems that Sun makes all sorts of software which nobody knows about because it is not installed by default, or is not installed into the default user environment. I'm very happy to see all of the positive activity in the OpenSolaris community to rectify this situation and make Solaris a better out of the box experience.  We still have more work to do, but removing the cancerous brain damage that was /usr/ccs is a very good sign that we are moving in the right direction.


[6] Comments
Like this post? del.icio.us | furl | slashdot | technorati | digg
Comments:

Two things: 1. I thought the ccs was either "code construction/compiler suite" or "C compiler suite". 2. People will have to be a lot more careful about what comes first in their path, since blastwave puts their GNU tools in /opt/csw/bin and SunFreeware puts their GNU tools in /usr/sfw/bin . I believe make (not gmake) ar, ld, etc. are being moved from ccs to /usr/bin as well, so users will have to be careful to specify whether they want the GNU version or the Sun-supplied version.

Posted by Patrick Giagnocavo on June 25, 2007 at 10:31 PM PDT #

what a bad title for a blog entry...

Posted by Stoyan Angelov on June 25, 2007 at 11:48 PM PDT #

Woohoo! Although for me the worst part of the decision to create /usr/ccs was to put make there. Make is not a tool for compiling C programs, it's a tool for specifying/generating a dependency tree.

Posted by Chad Mynhier on June 26, 2007 at 04:56 AM PDT #

Patrick, considering that /usr/ccs/bin was never in the default path, people had to go look for it, so many just didn't bother. The same is true for /opt/sfw/bin and others. My contention is that separate directories aren't a bad thing, as long as they are in the default environment or at least easy for a user to add. If you go back to the USENIX/LISA archives circa 1991-1992 you'll find some papers on work I did in this area. Consolidating back into a seemingly reasonable default environment should be a big win.

Chad, make is very useful for many things beyond compiling programs. You may remember that makefiles were used to manage NIS. Of course, once we get make back into the main /usr/bin, ant has been taking over. Unfortunately, ant is cleverly hidden in /usr/sfw/bin, which is not in the default path :-(

Posted by Richard Elling on June 26, 2007 at 01:48 PM PDT #

So when did /usr/games disappear? I remember it in SunOS 4.1.3 for sure, did it make it to Solaris?

Posted by Andy Paton on June 30, 2007 at 08:55 AM PDT #

Andy, /usr/games was in SunOS 4, but never made it to SunOS 5 (Solaris 2+). IIRC, the excuse was that Solaris needed to be perceived as a "serious" commercial OS. Never mind that the most frequently used application in the business world is Solitaire :-)

Posted by Richard Elling on July 01, 2007 at 01:09 PM PDT #

Post a Comment:
Comments are closed for this entry.