?

Log in

No account? Create an account

Time Warp, Solaris

« previous entry | next entry »
Nov. 28th, 2008 | 02:01 pm

The date is the summer of 1992 and I have a Sun 1 Sparc Station that I need to turn into a working development environment.

What is the process?

I have to ftp a lot of software off of ftp.gnu.org to my local MicroVax. From there I will download all of the software over my 9600 baud modem to the Sparc sitting in the living room of the house I am living in at the time.

It will take days, if not weeks to assemble all of the software and turn the machine into a working system. This was the state of the art at the time.

Today?

Today I take a similar system, install pkg-get and grab packages. What do I discover?

Half of them are out of date. So what do I do?

I could grab one of the package systems that are put together to make my life easier, but they won't play well with the stuff I have downloaded with pkg-get. Could I ditch pkg-get and just install the prepacked stuff I can find elsewhere but they too are incomplete.

So?

I ftp packages off ftp.gnu.org and compile those into /usr/local.

Except unlike 16 years ago, half those packages will not compile any longer on Solaris. Between pkg-get and ftp.gnu.org I do make it work.

None of this will automatically update though, so I am stuck maintaining it. Open Solaris is not an option because it does not run on this system (and Open Solaris comes with a bunch of old compilers/libraries so it is just a different sort of hassle).

One other incredibly annoying thing, except for what I installed in /usr/local, the rest of programs/libraries it takes to compile anything is found across a half dozen directories in /opt and /usr. The entire structure is not GNU like, and GNU like is the model for other systems. There is nothing innovative about picking your own directory structure.

So what are the main differences 16 years later?

  • I have broadband so the download is a lot faster.
  • More disk space means I can download everything at once and not be concerned about having enough space to build a working development environment.
  • gmake -j. This machine has a lot of cores so compiling software is lot faster!

    I was asked on Twitter if I would be supporting development for Drizzle on Solaris if I did not work for Sun.

    The answer is "yes".

    There are still quite a few Solaris users out there and I am very interested in seeing how well we perform on the T5240. It is an interesting piece of hardware because of the number of hardware contexts it provides us.

    Now if I had a simple method for installing Ubuntu on it, would I still care about making Solaris work?

    I honestly do not know. I am looking forward to finding the time someday to find out if Solaris or Linux runs best on one of the beasts. My T1000 is with Stewart now so I I don't have a way to test what Linux looks like on a working piece of Niagra based hardware that supports Linux currently. The T5240 does not yet run Ubuntu.

    If I found that Linux ran better I would be mighty tempted to leave the Solaris porting to others. There are a lot of things that I could be doing to make better use of my time.

    Tim commented on "What Sun Should Do". I have not been at Sun long enough to really make any broad comments on the future of Sun.

    One thing is very certain in my mind concerning Sun's future. The problem I described above needs to have been fixed a decade ago, and is at the heart of the failure of Solaris. Many point to the failure of Solaris being CDDL and not being GPL. I believe this is an issue, but it is not the center issue.

    My Mac has plenty of non-GPL code on it.

    It is also a superior development environment to Solaris.

    And why is that?

    It just works.

    And Linux?

    It just works.

    Solaris?

    Someone needs to take a hard look at what is being done today and get it on track.
  • Link | Leave a comment |

    Comments {14}

    awfief

    (no subject)

    from: awfief
    date: Nov. 28th, 2008 11:20 pm (UTC)
    Link

    From 2001-2004 I worked in a mostly Solaris (sparc) environment. We used the packages from http://www.sunfreeware.com/, which *just worked* as I remember. This was for mostly Solaris 8, some Solaris 9, so YMMV.

    Reply | Thread

    Gaius Aurelius Octavian

    (no subject)

    from: gaius_octavian
    date: Nov. 30th, 2008 12:38 pm (UTC)
    Link

    I'm using Blastwave and my Solaris experience has been pretty slick.

    Reply | Parent | Thread

    Mark Atwood

    (no subject)

    from: fallenpegasus
    date: Nov. 29th, 2008 12:38 am (UTC)
    Link

    We should be able to figure out who that "someone" is...

    The question then is, how can we make them do it?

    Reply | Thread

    I have a funny feeling...

    from: anonymous
    date: Nov. 29th, 2008 05:26 pm (UTC)
    Link

    The guy that stood in the way just left Sun.

    Reply | Thread

    (no subject)

    from: dmpk2k
    date: Nov. 30th, 2008 05:39 am (UTC)
    Link

    Hi,

    I stumbled on your blog today and reading through it I'm surprised at the number of things you Simply Get (e.g.: the trends you see regarding databases on the net -- yes!); Sun needs you as a CTO.

    I just wanted to concur with your assessment regarding Solaris. Here is my rant^Wexperience having to admin a dozen Solaris zones the past couple years:

    A startup I'd just joined decided to use Joyent for hosting. Joyent is an all-Solaris shop.

    I went in with an open mind; Solaris is a *nix, it's mature and it has some really compelling technology. Unfortunately, Solaris has been a frustrating experience. The problem isn't with Solaris itself so much as many pieces of software -- that we depend on -- don't compile cleanly on Solaris. We've had a couple issues where the software compiled and ran, but didn't work quite right.

    Two examples that particularly stick out in my memory are Memcached and Freeimage. One version of Memcached truncated objects beyond a certain size because of a problem with libevent; that was a fun one to solve. I never managed to get FreeImage working at all; as I recall it compiled but wouldn't link correctly with anything else since some struct's padding was four bytes too large. I spent an entire day mucking with that piece of crud and even started to question my competence at C. I can't blame Solaris for this since there were a scary number of Microsoft-centric pragmas all over that code, but it worked on Linux and not Solaris. Problem.

    By the way, our Joyent nodes seem to have at least three different C compilers, assemblers and linkers depending on where you point your path. I recall one occasion where I had to mix-n-match the compiler, assembler and linker to get something to work. Madness.

    So, there's always sunfreeware.com and blastwave.org, right? Not really, since a lot of packages are out of date or simply not available. I appreciate the efforts those people put in, since it sometimes is useful, but the sites are a bandaid that only partly covers a rather horrid wound. Also, that compiler-compiler-everywhere problem I mentioned in the previous paragraph is probably thanks to using these services as well.

    Anyway, we're a startup. We can't afford to have a developer spend much of his time trying to smack our software's dependencies into behaving on Solaris. Ultimately we persevered, I think to our and my detriment, but we've been planning ever since to move off Solaris as soon as is expedient.

    Thanks to this experience I've ended up recommending to anyone who asks about which operating system to use that they should stick to Linux for dear life. Why? Because you're almost guaranteed that any piece of OSS software you bump in to will work on it.

    Maybe Sun ought to shack up with Nexenta for some of their Solaris offerings -- while I've never used it the idea seems sound. Newcomers aren't interested in scrounging mailing lists to find a solution to their problem, and then find one lonesome email from 1994 that helps them (personal experience again; IIRC it was some still-unfixed problem with that utter POS stone-age syslog that Solaris still has). What IT and developers want is something that works right the first time, and the OSS world has decided that the right way is GNU -- and perhaps *BSD as well.

    Solaris could be the killer platform for startups. ZFS snapshotting? Compare how long it takes to restore a large RDBMS instance from an SQL backup to simply restoring a ZFS snapshot. DTrace? Oh baby, yeah, I want that.

    PS: Solaris did something right once: when that whole Debian OpenSSL keys fiasco occurred we weren't directly affected. Unfortunately, most of our SSH keys were created by one of our developers using Debian, so...

    Reply | Thread

    gibigiane

    (no subject)

    from: gibigiane
    date: Dec. 6th, 2008 01:45 am (UTC)
    Link

    @dmpk2k, I'm wondering if you're talking about Solaris (as in Solaris 10 or Solaris Express which is what Joyent uses) or the OpenSolaris binary distribution. Although by no means have all or even most of the issues you've mentioned have been resolved in OpenSolaris, most of them have been or are being worked on. As what I believe Ted is saying in his comment, we're dealing with a tension here where we have a large number of existing customers who have expectations around compatibility that have served them well and we also would like to obviously attract developers coming from other operating systems, particularly Linux who have standardized on GNU and other frameworks.

    In May 2008, we introduced the first OpenSolaris binary distributions and six months later, we have a second distribution. It includes a lot more GNU and other FOSS components in a repository, many of which have been well integrated into core parts of OpenSolaris such as the Service Management Facility, some have DTrace probes introduced for observability, etc. The default environment is in fact a GNU environment although not all of the GNU tools are there yet. This in fact has caused quite a bit of consternation amongst Solaris old-timers but we're interested in adopting the new, providing comaptibility where it makes sense with the old and adding support for things like ZFS ACLs to the FOSS components and contributing them to the upstream communities.

    I spoke with Brian several years ago (not sure if he remembers that) but we got the memo long ago and we're working slowly towards what you're talking about. Of course, an alternative would be to have two distinct operating systems or use some sort of virtualization and though I'm not in favor of the former, the latter has some virtues.

    Like I said at the start, we've only just begun. We not have a network-based packaging system, we've introduced some major FOSS components and they're well integrated. That said, we're going to be focusing on finishing the commands, providing more libraries and other infrastructure and yes, integrating the current version of GCC 4. :-)

    BTW, I'm fairly certain the memcached issue was resolved - at least I remember a fix being provided to the upstream memcached community about a year or so ago. And if you're willing to download the 2008.11 release and give it a spin, I'd love to get your comments. Thanks for listening.

    Reply | Parent | Thread

    (no subject)

    from: dmpk2k
    date: Dec. 6th, 2008 07:41 am (UTC)
    Link

    @gibigiane, my experience with Solaris comes from Joyent. Uname says SunOS 5.11, so it looks like Solaris Express.

    I'd like Solaris to become a major player in the OSS world -- a very mature kernel, ZFS, DTrace, and SMF make for an ideal server OS. Zones could be quite handy as well, although I'm waiting for the virtual network interface to be complete so I can use IPF from within zones.

    Hopefully the OpenSolaris devs find a clean way to meld Solaris' backwards compatibility with GNU. Both are crucial, so it's doubtless a difficult balancing act. As a newcomer my complaint is effectively about OSS libraries and applications. Ideally I could grab any library and compile and use it without problems, at least if it doesn't depend on anything Linux-specific like epoll.

    Regarding the memcached issue, that was fixed -- I don't recall how -- and we've been using it on live for the past year.

    As an aside, a more configurable SMF and better zone isolation would be nice too. And a pony. :)

    Best of luck, guys.

    Reply | Parent | Thread

    Ted Tso

    (no subject)

    from: tytso
    date: Dec. 1st, 2008 12:25 am (UTC)
    Link

    Solaris's biggest strength is also is biggest weakness, and I think it's the core issue in the problem which you have identified. The problem is that for certain Solaris customers, it is Critically Important that software than ran 15 years ago on Solaris 2.3 still work today on Solaris 10. This constrains API issues, CLI issues, directory layout issues, etc. The question is can you make a system look sufficiently GNU-like that shell scripts, programs, ancillary open source libraries, etc. written by developers who develop on Linux and MacOS systems will work on Solaris systems --- without breaking shell scripts, programs, et. al that were designed to work on a 15-year old System V-based system?

    The other big issue is the network effects of Linux and MacOS --- there is a huge community that packages various software libraries and programs for Debian and Ubuntu, and for a variety of reasons, Sun seems to be have trouble harnessing volunteeers to do the same for Solaris. Some of this is just that there are many more Linux users, to be sure; but I suspect some of it is also due to some really ham-handed community relations failures such as the whole brouhaha over the OpenSolaris trademark issues and what was allowed to be called OpenSolaris. Whether you call it "being responsible with Sun's Corporate Crown Jewels," or "Sun being a control freak who is afraid to let go," either way Sun management have done made a number of less-than-smooth moves that, even if I hadn't invested the past 17 years of my life in Linux, would have seriously turned me off investing much of my private time helping a community which is so firmly controlled by a single corporate interest.

    Reply | Thread

    Brian "Krow" Aker

    (no subject)

    from: krow
    date: Dec. 1st, 2008 12:45 am (UTC)
    Link

    OSX seems to be able to put together a UNIX system without a community helping them... I can build Drizzle on it without much issue today (the only library missing is the same that is missing still from all Linux distributions).

    As far as backwards compatibility goes... Cadillac still makes cars. Why? Because all of their customers have not died off yet. Keeping around a legacy OS like IBM or HP does is just fine. But... is it the future? No.

    There are a lot of folks internally who know what needs to be done, I'm hoping the recent shake ups causes folks to act.

    Reply | Parent | Thread

    Time Warp and Compilers

    from: anonymous
    date: Dec. 2nd, 2008 06:21 pm (UTC)
    Link

    BTW, OpenSolaris comes with the latest compilers. Unless you mean GNU, in which case, yes, they are old (3.4.3). But Sun Studio is Express 5/08 (and 11/08 with the latest version of OpenSolaris). GCC will also be updated soon.
    It is different issue that OpenSolaris doesnt run on SPARC yet.

    Reply | Thread

    Brian "Krow" Aker

    Re: Time Warp and Compilers

    from: krow
    date: Dec. 2nd, 2008 07:50 pm (UTC)
    Link

    People compile with GCC. Love it or not, this is the dominant compiler.

    FWIW, I find the Sun Studio is giving me a lot of great feedback. Other then it not being open source, it is good technology.

    Reply | Parent | Thread

    gibigiane

    Re: Time Warp and Compilers

    from: gibigiane
    date: Dec. 6th, 2008 06:36 am (UTC)
    Link

    Brian, just a note that GCC 4.x is coming to an OpenSolaris repository fairly soon.

    Reply | Parent | Thread

    Brian "Krow" Aker

    Re: Time Warp and Compilers

    from: krow
    date: Dec. 6th, 2008 09:34 pm (UTC)
    Link

    I would love to see Sun Studio open sourced and it get distributed as well.

    Reply | Parent | Thread

    gibigiane

    Re: Time Warp and Compilers

    from: gibigiane
    date: Dec. 6th, 2008 10:08 pm (UTC)
    Link

    That may happen as well although we've taken the first step (back in May 2008) by releasing a completely redistributable version of the Sun Sudio Express compilers/toolkit.

    Reply | Parent | Thread