Solaris, Linux, it is GNU folks…

Brian “Krow” Aker’s Idle Thoughts – Solaris, Linux, it is GNU folks…

Brian hits the nail on the head… The way you get a usable system is install all the GNU tools.

This is how I go from fresh Ubuntu install to building MySQL:

apt-get build-dep mysql-server

apt-get install bison

(now go and build).

(and i could do this graphically if I wasn’t so stuck in my ways)

For Solaris? umm… there was a point where I could get Solaris to apply security updates and Brian could get all the stuff needed to build a MySQL Server. Together we had the knowledge needed… but neither was as trivial as with Ubuntu and combining knowledge was too much – I just gave up and went on to more productive things.

Even on an existing Solaris system… getting your PATH right is a trip into some weird fantasy land seemingly designed to annoy you. No doubt this all made some sense back in the day… but now it just causes pain when all you want to do is compile your program, find the bug and fix it.

When I started at SGI several years ago, what’s the first thing I did? Went and installed all the GNU packages. IRIX is a lot nicer then.

Same with MacOS X – the first thing you do is go and install darwinports or fink and get a remotely usable system.

With Windows, it varies – but the shell is so outrageously shit you need cygwin just for bash, you need either emacs or VisualStudio to get an editor you don’t want to kill, Firefox for a web browser that works etc etc etc. The fact that the Windows packing system just blows chunks makes it the most painful experience of all.

So even if you’ve heard rave things about the debugger in VisualStudio – actually getting a Windows install to the state where you can run the debugger takes hours. Click click click, upgrade, yes, install, swap disks, upgrade, upgrade, wait, reboot, install manually, install manually, install manually. ick.

Project Indiana is possibly the saviour of Solaris. Default userland is gnu, default shell is bash. Starts to make it feel like home. Just as when Solaris started shipping GNOME made it feel more homely.

Solaris comes with a version of vi that is old enough to drink in bars. Project Indiana realises that a drunk editor isn’t a good idea and ships something sensible.
The BSDs get a lot of things right. Sane userland that is familiar to people. Jumping onto a FreeBSD box is remarkably easy.

The typical thing said by people is “backwards compatibility” and all that… basically so that everyone can run their apps from 1985 and not change a thing. Worthy goal. Of course, 1985 does not need to be the default environment in 2008.

There is a standard for the unixy way of things: it’s Linux with GNU tools in userland.

Just as Windows set the big standard for having a kind of usable GUI (the Mac did it better, but Windows got the numbers) – and to get people to use Linux on the Desktop we needed to get it to a stage where those people are comfortable.

If you want your UNIXy system to be used by anybody today, you need to have it be comfortable for Linux people.

On the other hand though, Ubuntu is still the best desktop I’ve ever used and am rather happy with it (no matter how much i bitch and moan about certain things being obviously broken).

(and no, I’m not switching my desktop to any Solaris variant – but wholeheartedly look forward to the days when maintaing software than runs on Solaris is a heck of a lot easier because Solaris becomes less annoying).

One more point: OSX and Solaris are the only remotely proprietary UNIXes left. Everybody else is either dead or doesn’t know it yet. Solaris is nearly all free (AFAIK there’s still just some binary only drivers around… which sucks… but these things can take time, so that’s okay) and OSX has parts which are (sometimes seemingly dependent on phase of the moon) free-ish. So really, OSX is the one last hold out of the largely proprietary UNIX world. It’s a fascinating thing to think about…. freedom wins.

(and this no doubt goes on far too long and incoherently…. but that’s because of long days and late nights because of upcoming really cool stuff which I’ll blog about later)

12 thoughts on “Solaris, Linux, it is GNU folks…

  1. I disagree with your proposition. There is *plenty* of discussion on the opensolaris.org mailing lists about why Indiana is not the saviour of Solaris and OpenSolaris; most of it comes down to familiarity. The existing base of Solaris users took the time to get familiar with the supplied toolset, and are very happy that its compliant with standards such as SUSv3 and Posix.

    If you want your UNIXy system to be not given short shrift on slashdot then making the GNU toolset easily available is a good idea. Making it the *default* alienates your existing userbase. Not a good idea.

    If you want your experience of Solaris to become less annoying, perhaps you should spend a similar amount of time learning about how it works to what you invested in getting to know all those different linux distros.

  2. Stewart, if you’re going to be in Sydney in the first week of March perhaps you’d care to wander along to the Sun TechDays conference @ the Convention Centre – I’ll be there (talking about OpenSolaris Testing), and I’d like to catch up with you.

  3. Not alienating the user-base is a good thing I agree.

    if [ -f ~/.solaris_gnu_userspace ]; then
    # FOO
    endf

    would do a lot. Then you can have a ~/.solaris_gnu_userspace in /etc/skel (or not) – and providing a quick bit of info in /etc/motd would be *HUGE*

    The LSB File System Hierarchy standard gives us a number of nice things, including where binaries are found. There’s even clean migration: symlinks!

    /usr/ccs
    /usr/sfw
    /usr/perl5
    /usr/ccs/bin/amd64/
    /opt/SUNWspro/

    ARGH!

    FreeBSD ends up being a lot nicer and easier to move to… things are rather similar… you have /usr/local with lots of stuff in it, but otherwise things are very simple.

    IRIX ended up being quite weird… /usr can only be described as messy…. but at least there was a tendency to use words rather than abbreviations (/usr/OpenOffice is one that comes to mind).. so just working it out isn’t *too* painful.

    (of course, HPUX and AIX sholud just go away… but that’s another story)

  4. Of course… simple instructions on going from stock Solaris to “./configure; make” for mysql is much appreciated :)

    The thing is of course, it should be a trivial thing to do (see above on Ubuntu).

  5. James – thanks for pointing out the Tech Days event… I’m looking at it now (didn’t originally plan to be there… but could be a good idea… I’ll see how I go and let you know)

  6. I’m sure it fitted into your “dead but doesn’t know it yet category”, but I can promise that AIX is both still closed source and alive and well. Its embedded so deeply in many places that I can’t see it going anywhere fast.
    Whilst IBM is pushing Linux in many places, there’s certain areas that are still off limits for it in Big Blue’s eyes.

  7. If you’re doing a full install of OpenSolaris then you should be able to find gmake in /usr/sfw/bin/gmake – part of the SUNWgmake package. There are a lot of GNU tools in there (/usr/sfw), but there are also more and more GNU tools in /usr/bin – but where there’s a name conflict with an existing Solaris tool, the GNU version will most likely be in /usr/gnu instead.

    btw for others reading these comments: http://au.sun.com/sunnews/events/2008/techdays/ is the Sun Tech Days link for Sydney.

  8. AIX fits in the dead but doesn’t know it category :)

    Sure it’s already in a bunch of places – but can anybody give a single good reason to start a new deployment with it?

  9. Nothing alienates your users by putting all the good tools into addons instead of into the default install, and then making all those addons *and* any tools that were part of the default install into a place that isn’t even assigned to people’s PATHs.

    I was a Solaris admin in a previous life; that really sucked. I should be able to use stuff out of the box; good tools should be installed by default AND should be put into the PATH. We had a good jumpstart/cfengine setup, so I didn’t have to do this manually, but basically the first thing we’d do is change the user paths and the default user paths.

    (btw, as a complaint to MySQL…../opt/mysql vs /usr/local/mysql vs /var/lib/mysql . . . . . can’t we just have *one* default intall location, please?)

  10. I really dont understand the Indiana thing, Linux users will not use it.
    If they wanted they would gone to *BSD a long time ago.
    Solaris users will not use it. The want the crap called Solaris.

    There are no market and no users. Murdoch will soon move along…

  11. I disagree with no market for Indiana – it’s certainly the only way I’d ever consider really trying out some of the Solaris features. Otherwise it’s simply a lot of effort – which can be better spent improving other areas of your own product.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.