Solaris, formerly known as SunOS, is a trademarked UNIX operating system derived from 4.4BSD-Lite and System V Release 4. It's a combination of BSD, SVR4, and proprietary Sun code, and it currently powers most of the world's 64-bit workstations. It was originally designed for the SPARC and UltraSPARC platforms, but it has moved into the x86 market as well and there will be an AMD64 port possibly as early as Q1 2004.
So if you have a Sun workstation or if you're thinking about buying one, you're more or less stuck with Solaris. In most instances you could use GNU/Linux or one of the *BSDs, but you might have trouble with some of the proprietary Sun peripherals, especially in the new Blade series. That's a moot point anyway because most people with SPARC-based systems don't have a problem with using Solaris. The real question is, why would you use Solaris x86 -- the edition made for IA32 hardware? After all, if you have an IA32 PC you have a wealth of choices for your operating system, from Microsoft Windows to SCO UnixWare.
Solaris 9 is not very impressive when you put it next to FreeBSD or a good commercial GNU/Linux distribution like Mandrake, RedHat, SuSE, or one of the better community distros like Debian or Fedora. Even Sun is now coming out with their own GNU/Linux distro called Java Desktop System. If you're feeling particularly masochistic you could pay a ton of money for SCO's rinky-dink UnixWare or OpenServer products, and if you like patching your system every day, you could go with Microsoft Windows in either the XP or Server 2003 varieties. Clearly there are a lot of choices. Let's take a look at some of the advantages and disadvantages of Solaris 9 x86.
The Solaris 9 binary license is not all that restrictive when compared with Microsoft's EULA, but the additional supplements end up piling on so many more restrictions that it's more or less on par with the Windows license.
Sun has conveniently put their licensing terms on their website. Click here to read the binary license with the supplemental terms appended. Fortunately Sun does not require any ridiculous product activation procedures in their single-CPU x86 edition (I can't speak for the other editions because I have not tested them). In case you're wondering, virtual CPUs do not count as multiple CPUs, so a Pentium4 system that employs Intel's Hyper-Threading Technology will not require the 2-CPU license.
First and foremost, Solaris is developed, maintained and supported by Sun Microsystems. Since its first release Solaris 9 has had five updates which added hardware support, updated software versions and patched security flaws. For this review I was sent the 08/03 update which was the most recent version until yesterday when a 12/03 update was released. An update to this review will be available in the future with the 12/03 update in mind.
As mentioned above, Solaris is a trademarked UNIX. That means that it's undergone extensive qualification testing by The Open Group to comply with the UNIX98 standard. It also means that the operating system must conform to certain requirements for usability, like using a standard graphical environment, which is CDE (Common Desktop Environment) as the primary GUI. Although it is not required by The Open Group, Sun also includes GNOME 2.0 with Solaris 9.
CDE as it is implemented in Solaris 9 gives it an array of system administration and configuration tools similar to the Administration menu in Microsoft Windows 2000 Server but not quite as comprehensive as SuSE's YaST2. There's a manager or control panel for almost everything you need to configure or monitor, from a Removable Media Manager to the Solaris Management Console where you can change various hardware controls (click here for a complete listing and explanations of the CDE/Solaris managers and services). There's also a handy Watch Errors program that monitors all error messages produced by the system (much like you'd find by pressing ctrl-alt-F1 from a window manager in *BSD or GNU/Linux). One thing that CDE/Solaris is missing is a comprehensive network configuration panel; network settings still have to be set by hand in Solaris 9, unfortunately.
The media kit comes with a DVD with the entire operating system plus some optional software and a matching set of CDs. It also comes with StarOffice 6.0 and a CD that adds support for other languages. The installation manual is quite large and thoroughly covers a new installation or upgrade including tips on planning a strategy for installing the software and a section dedicated to producing your own Custom Jumpstart installation procedure. The manual does not cover post-install configuration or an outline of system administration procedures -- it is strictly an installation manual.
Also included with the media kit is a quick start guide, a list of changes that have been implemented since the last update, a paper copy of the binary license and a separate booklet for the supplemental terms, and a list of errata and known bugs in the installation program.
Solaris 9 x86 comes with different software than the SPARC edition does; it comes with a lot less, as a matter of fact, but it's still quite useful to run a small server or a workstation. Most of the programs on the Companion CD are open-source tools that have been recompiled to run on Solaris/x86. A partial list of the extra software included with Solaris 9 x86 can be found here and you can download an ISO with these Companion CD packages by clicking here.
Click here for a complete list of all of the security protocols, policies, and precautions built into Solaris 9 x86.
From a developer perspective Solaris is a stable, steady and well-supported platform with standardized APIs and source code availability (with restrictions, of course) for development purposes.
The hardware compatibility list is very, very thin and I had a great deal of trouble trying to get my hardware to work properly. I tried two different systems, one with an Intel D845GBVL motherboard with Intel Extreme Graphics (I also tried an ATI Radeon 9800 non-pro and an Nvidia GeForce4 TI4200) and an Asus K8V Deluxe with a Radeon 9800 Pro AIW. I had better luck with the newer system, although neither of the motherboards are listed in the HCL.
I never did get the network to work, and I tried three different network cards, two of which were listed in the HCL. I think this was more an issue of setting up the network properly, but since Solaris 9 x86 doesn't come with a configuration guide and since the installation programs can't automatically detect my network settings (I don't have a network -- it's a cable modem connected through a router) I wasn't able to get access to the Internet. The trouble seemed to be with the naming service, but no matter what options and settings I tried (I have as many settings as my ISP could provide) I could not get it to work.
My SoundBlaster Audigy went without a driver; I didn't try the onboard sound but there isn't much I'd do with it anyway -- Solaris 9 is not designed for desktop use and doesn't take into account peripheral sound cards like the Audigy. Drivers are, however, available through the Open Sound System. My Sony IDE CDRW was also not immediately recognized, but I didn't attempt to figure out why. It is possible that a known bug in dual-CDROM systems may be at fault.
The most detrimental compatibility issue that I encountered with Solaris 9 x86 was that it did not have binary compatibility with Solaris SPARC, GNU/Linux, FreeBSD, OS X, MS Windows or any other operating system. The only software you can run on Solaris is the software made for your port of Solaris. While many of the programs made for the SPARC architecture are also ported to Solaris/x86, there are a significant number of Solaris/SPARC applications that are not available for Solaris/x86. From what I can tell, most of the SPARC-only programs are server applications specific to large clusters, SPARC-based machines or other things that the x86 edition couldn't do anyway. According to Sun there is a program called lxrun that can provide Linux binary compatibility but it is not installed in the default installation and it is quite difficult to configure. I did not attempt to install it for this review. Sun says that it will be made much easier -- possibly integrated into the Solaris kernel -- in the future.
There are basically two install methods: Suninstall, which is text-based and therefore safer; and Web Start, which requires the X Server. As many Unix veterans know, configuring X before the system is fully installed is a good way to crash the installation program and be forced to start all over again. Solaris 9 is no exception -- I went through several different options before I selected the VESA Generic video driver and a known safe resolution and screen size. Although the Web Start program allows you to access the Internet through a custom browser based on Netscape 4, I had no web access because of the aforementioned network setup problems.
Installation from start to finish was about 45 minutes on both the Pentium4 2.53ghz machine and the Athlon 64 3200+ machine with an ATA133 Maxtor hard drive. It's simply a matter of going through the configuration options and copying binaries from the CD to the hard drive. Since there is no compiling involved, system speed has little to do with install time. Of course if you have a very slow system or a slower hard drive, you can expect it'll take longer.
Frustratingly, Solaris 9 x86 refuses to install on a drive that has GNU/Linux partitions on it. You must either erase the entire hard drive and format it all for Solaris or you'll have to use a different drive. Solaris was very specific about it, too -- it knew the difference between a GNU/Linux partition and a BSD slice, but it demanded that Solaris control the entire drive in either case. According to Sun, there are engineers working on giving Solaris the ability to work with other types of partitions including Linux partitions and BSD slices. Solaris 9 can read from and write to FAT filesystems either on Windows drives or on removable media.
The Solaris boot loader requires that the Solaris hard drive be the boot drive. Since I have multiple hard drives in my test system to test multiple OSes and other software, this was a real hassle for me. Fortunately I could just change the boot order in BIOS and that satisfied the boot loader. Solaris 9 could not recognize my WD Raptor SATA hard drive.
The rest of the installation went very well -- everything was installed without a problem.
For some reason every time I start the system under Solaris an error screen comes up telling me that my X configuration (video, specifically) is not correct. I accept the settings as they are (VESA graphics, 17" Plug N Play monitor, 1024x768x24 resolution, which is what I specified during the installation and verified through testing) and can boot into Solaris without a problem. But even though I shut down properly and have no trouble with the display, this error message comes up every time. There is an option to skip the warning message on subsequent boots, but I really do want to know about genuine problems at boot time so I haven't disabled it.
As I've mentioned, the network setup is not easy to do. Coming from a background in GNU/Linux and FreeBSD, I figured Solaris would be fairly easy to figure out. But there was no /etc/rc.conf or /etc/resolv.conf or any other configuration options or files that I was familiar with. Since Solaris is binary-only I couldn't get to the kernel to see if the proper drivers were being loaded and since the media kit didn't come with any documentation on configuration and use, I was left with no offline option for self-help.
That's when it occurred to me that Sun sells subscription support contracts; this explains why there is no manual, I suppose.
My network card, in retrospect, was probably not recognized properly. Even though the hardware probe detected it, it's likely that no driver was installed -- this, according to Sun, was probably the reason for my network problems. The network setup during the installation assumed that I was on a corporate network with a DNS, NIS, LDAP or other kind of name server. Theoretically I would just type in the address of my DNS server and I'd be all set. The trouble is that I'm directly connected to the Internet and the naming is handled through my ISP (as is the case with most non-corporate users). My ISP does have a name server, but Solaris couldn't connect to it for some reason. Solaris 9 is the only network-aware operating system that I have ever used that cannot find my ISP's network settings all on its own. I reinstalled the OS several times in an effort to try different settings and options, but after six installs I concluded that it was destined not to work for me. I read the manual, followed the directions and used compatible network hardware and it did not work properly. This is partially my fault for not knowing what to do to set up the network in Solaris, and I could have called Sun and gotten free support (being a reviewer and all) but I wanted to show what Solaris 9 was like from the kind of perspective that most of my readers would be coming from. The lesson here is that you need a Sun support contract, a complete manual on configuring and using Solaris, or an experienced Solaris expert to properly install, configure and administer a Solaris 9 system. Whereas with GNU/Linux or *BSD you can get great online help and documentation, with Solaris you're much more limited in your unpaid support options.
Networking aside, everything else was just fine. Being commercially developed, CDE (click for a screenshot of CDE under an older Solaris version) is not a common environment for Free Software users, but it is a very nice desktop environment. I'd describe it as a cross between IceWM and XFce; the main menu is a slit at the bottom which has rollup menus for each category and icons for specific programs. Right-clicking on the desktop will bring up a condensed menu with all of the same options as the slit. It's not difficult to configure but it's not really like most of the window managers and desktop environments I've used in GNU/Linux and FreeBSD, so it takes some getting used to. When I installed StarOffice 6, an icon was automatically added to the CDE slit but nothing was added to the Foot menu in GNOME. StarOffice 7 would not install because the CD only included binaries for Solaris/SPARC, Windows, and GNU/Linux.
Migrating data was much more difficult than I expected because non-Solaris hard drives could not be mounted without completely reformatting them. That means that I couldn't move my data internally; to transfer data I'd have to move it to removable media or put it on a network file system.
One really annoying problem I had with CDE/Solaris was that it doesn't support mouse scroll wheels, so you have to use the scroll bars to navigate windows and documents. The usual fix for this (adding the ZAxisMapping line to the config file for XFree86) doesn't work because Solaris doesn't use XFree86 -- it uses the standard X11R6 with proprietary code from Sun instead.
The default shell is SH, which is certainly functional and good for writing and running simple scripts but isn't as nice as the BASH or TCSH shells that are default in GNU/Linux and FreeBSD. BASH, KSH, and CSH are included with the default Solaris install, so you can switch if you like. The only CLI editor included is the always archaic vi, but the Companion CD includes vim, emacs, and pico.
Solaris 9 x86 was clearly designed for high-end workstations and servers, and even then in monocultural environments where everyone else is using Solaris or where Solaris-only software must be used. The UltraSPARC workstation architecture in general is marketed primarily to MCAD designers, software developers, and those in the scientific visualization and imaging fields. If you were working in a company that used both SPARC and x86 machines but needed to use the same software on both architectures, it would make more sense to use Solaris x86 than it would to buy new SPARC machines or to switch everything over to a different OS and architecture.
As a server OS, Solaris seems competent based on the fact that it has passed the above-mentioned qualification testing for the UNIX standards and the fact that Netcraft has recorded a rise in Sun ONE (Open Net Environment web services) Internet servers over the past two months. Solaris has a reputation for being a stable workstation platform for heavy-duty work in science and industry, but that reputation was primarily built on the quality and speed of Sun's hardware combined with Solaris UNIX. Solaris adds a great deal of value to Sun hardware, but by itself it isn't worth much unless you absolutely need it. At best the x86 edition is barely competition for Free Software Unix projects in the GNU/Linux and *BSD communities, which scale better, cost less, support more hardware, and are easier to configure, customize and maintain.
Solaris x86 fits a very small niche. If you need it, you need it -- it's not a bad operating system to be stuck with anyway -- but if you don't need it, you don't want it. I would strongly advise anyone considering Solaris 9 x86 in even a small corporate environment to also purchase at least an initial support contract from Sun and a good manual on Solaris administration. Once you get it running it is unlikely to need any major adjustments, but the materials given to you in the media kit are not going to be sufficient to get you set up.
Solaris 9 seems designed specifically for large network environments, but it lacks the peripheral hardware support and network configuration procedures that a lot of users are used to.
I'm not going to include any developer recommendations because Solaris is a proprietary OS with a limited market. It's not for everyone and doesn't pretend to be, much like AIX, IRIX, and HP-UX/Tru64. I wish I could provide some screen shots, but with no network access, no CDRW to write to, and no ability to write to other hard drives I found myself totally isolated from the non-Solaris world. If nothing else, it was certainly secure from intrusion.
According to Sun, there will be expanded support for video cards and other peripherals in the near future. This may include porting some drivers from XFree86 and some help from hardware manufacturers. Full documentation for all Sun products is available at docs.sun.com and a good resource for finding out more information about Solaris x86 can be found here.
Copyright 2003 Jem Matzan. Verbatim copying and redistribution of this entire article are permitted without royalty in any medium provided this notice is preserved.
This article was first published on 12/11/03 and was revised on 12/12/03 at 4:22PM EST.