Welcome to Hell: Here's your Solaris box

Picking Solaris as your home operating system has decidedly mixed consequences. On the one hand, you can say that you're running with the Big Boys of Unix. On the other hand, an out of the box Solaris system is set up in a way that would make you think that Sun has a bunch of idiots working for them. If you don't believe me, walk over to your newly-configured Solaris system, log in, and type "cc".

yuffie% cc
/usr/ucb/cc: language optional software package not installed

What the hell?

It's true. Solaris 7, out of the box in its standard configuration, is a lot like your average "operating" "system" from Microsoft: it eats up 700MB of disk space, chews through memory, brings otherwise zippy computers to their knees, and doesn't come with a compiler. That's right: they sent you the developer's edition of an operating system and neglected to include a compiler. (Cheer up. At least you didn't buy the whole computer from them. You don't want to know what that's like.)

If Solaris is so bad, then why use it? If it's such a pain in the ass to get up and running, why bother with it? Arguably, the pay-off for fighting with Solaris is simple: you get one of the most robust implementations of Unix with up-to-date code that can handle just about anything you throw at it, limited only by hardware constraints. If you're rich, this means you own a Sun Enterprise-class server; if you're cheap, you have a high-end x86 system. Either way, you have a system that's going to be very hard to push over. It can work as a database server, a nice strong Web server, or even a decent development platform if you outfit it correctly.

Important Lesson #0: The people who put Solaris together were idiots

The practical upshot of all this is that nothing is where you expect it, nothing works properly, and half the stuff you think would be standard on a Unix system isn't there.

Important Lesson #1: This ain't Linux

If you have a lot of experience running a Linux system, great. This, however, is most definitely not Linux. Don't get me wrong -- I love Linux; I think it's a great operating system. Unfortunately, the majority of the Linux distributions out there encourage some really bad habits, the most glaring of which can be corrected very easily. The root account is not for every day use. If you don't understand why you shouldn't be running as root, consider the destructive power of something like rm -rf * as a normal user, and as root. Linux also affords you the luxury of having a separate directory assigned to root (generally, it's /root). Solaris doesn't work this way. root's home directory is /, meaning you can accidentally wipe out the entire filesystem if you're not careful.

For a more in-depth examination of why the root account shouldn't be used for day-to-day tasks, run to your local bookstore and buy a copy of Aeleene Frisch's Essentials of UNIX System Administration, published by the source of all good advice in the Unix world, O'Reilly Press. Actually, if you don't have a lot of experience with Unix (specifically, if your experience is limited to Linux), go buy this book now and read it before doing anything else.

Important Lesson #3: It may cost $2,000, but it doesn't support your chipset

First, let's clear up an unusual concept here. X is not a program; it's a protocol that lets applications display their information graphically. Much like the kernel is the interface to the hardware for user-level programs, X doesn't do anything other than provide a convenient way for the hardware to talk to software. What sits on top of X is much more important.

The Solaris implementation of X, as it comes out of the box, is really dumb. It understands all of Sun's own chipsets (duh) and knows how to beautifully display all kinds of stuff on them. Sun's graphics hardware, unfortuately (and to put it rather bluntly), sucks. You can buy a $35k workstation and still have it come with only 8-bit color. If Solaris is running on genuine Sun-brand hardware, you're in luck, and you probably don't have to do anything to configure it. If Solaris is running on Intel hardware, you're in for a rough ride.

The Hardware Compatibility List (HCL) is 1) Install XFree86, see their info on how to do so. 2) Then edit the file /usr/dt/config/Xservers, changing the line " :0 Local local_uid@console root /usr/openwin/bin/Xsun :0 -nobanner"