Original URL: http://www.theregister.co.uk/2005/08/16/solaris_x86_not_too_shabby/

Sun's Linux killer shows promise

Solaris 10 on x86

By Thomas C Greene

Posted in The Channel, 16th August 2005 23:23 GMT

Review If Sun gets very serious about Solaris 10 on x86 and the Open Solaris project that it hopes will nourish it, Linux vendors had better get very worried. That's because, in the many areas where Linux is miles ahead of Solaris, Sun stands a good chance of catching up quickly if it has the will, whereas in the many areas where Solaris is miles ahead, the Linux community will be hard pressed to narrow the gap. In this series of articles, we take a careful look at Solaris x86, examining the good, the bad, and the ugly, with Linux as our chief point of reference.

The Good

Unix has been around since Linus Torvalds was in short pants. If there's one thing you can say about the Solaris kernel and shell, they're mature. The system is exceptionally solid, at least on Sun hardware. But does this legendary stability migrate to x86 gear? In our limited experience, at least, it does. We've experienced a number of application crashes since we began playing with Solaris 10, but none capable of pulling the kernel down with it. On the other hand, we've had sloppy JavaScripts immobilize totally, and at times actually re-boot, our Linux box (especially with 2.4.x series kernels); we've seen X oddities do the same, and have experienced several wacky incidents using Microsoft bugware with Wine that required a hard reset. While we haven't taken a systematic approach to blowing up our Solaris 10 installations, one gets the impression of a pretty bulletproof kernel and shell.

As for performance, we've got no benchmarks or other misleading 'objective' criteria to offer, but the test system behaved about the same as it does with SuSE 9.3 installed. Solaris boots faster than Linux and the JDS loads faster than KDE (no doubt because there's a lot less to load, about which more below). Launching familiar programs and copying large files and directories felt about the same. Building the Open Solaris kernel with SunStudio seemed comparable to compiling a Linux kernel with GCC. Overall, Solaris 10 was not surprisingly faster or slower than Linux. (No doubt there are benchmarks published that will prove us wrong.)

There are some impressive tools included. DTrace, for example, involves some 37,000 probes, although the scripts available to date in the DTrace Toolkit number eighty or so of those most useful and adaptable (reviewing the scripts is a convenient way to get familiar with the tool at a glance). Sun swears that DTrace uses no system resources when idle, regardless of how many probes one wishes to play with. DTrace can reveal a tremendous amount of data about the system and applications, yet it can be fine tuned to provide information relevant only to the particular processes one wishes to examine, putting it well beyond anything available for Linux, such as Kprobes, Dprobes, or DTT. Currently, DTrace is a command-line tool, although there is talk of creating a GUI front end.

Solaris containers (aka 'zones') are also noteworthy. They're virtual environments a bit like BSD jails, only slicker. Each container looks and feels like an isolated, virtual instance of the kernel, yet when idle, one container will use about 0.5 per cent of system resources, and fifty idle containers use about five per cent. One can choose maximum amounts of processing power to assign to each one, and the system will automatically distribute unused resources up to that limit among containers assigned less, and return it according to demand. One logs in to a container just as one would log in to a regular system, and all processes are effectively isolated. A container brought down by a hostile application can be restarted in a few seconds, without any wider impact.

Obviously, you can't run different OSes, or different patch levels of the same OS; for that, you'd need a separate system, or virtualization software like VMware or Xen. But you can set up scores of containers for whatever purpose you have in mind: testing, security, resource management, etc. You can even save money: according to Sun, the partitioning is firm enough to persuade Oracle to bill customers only for the number of CPUs assigned to containers running Oracle.

Sun offers full support of Solarisx86 for a price, a point that the company feels is not widely appreciated. Solaris 10 is not an experimental or community project. It and everything that comes with it is fully supported. Early missteps may have created the impression that the company was less than fully engaged in its x86 strategy, but based on our experience, the product itself argues otherwise. There is a lot left to do, but the most difficult elements that will eventually distinguish Solaris 10 from Linux are pretty well in the can.

The user experience

Solaris 10 and Open Solaris (which you build and install on Solaris Express) are both very nice, Linux-like operating systems. The Gnome-based Java Desktop System (JDS) is included, and it's very pretty and nicely laid out. It's important to use Xorg rather than SunX, so that all of the features will be available (run kdmconfig to switch between X servers). Linux users will have no trouble configuring X, and there is a nice feature accessible from the right mouse button that lets you change the desktop resolution on the fly. The overall look and feel is excellent - very polished. The fonts are absolutely gorgeous, and nicely integrated into every package I've played with to date.

Installation and setup are a bit of a trial, however. In fact, with Solaris 10 (although not with Solaris Express), there was too little memory on our system to run the installer. After Googling on the issue, we learned that some BIOSes don't make enough base memory available. We were using a system with an Intel motherboard, and after some research on the Intel Web site, we discovered that a 2001 revision to the BIOS on our board had altered memory allocation, sacrificing just enough base memory in the name of improved performance to stuff up the installer. So we had to flash our BIOS with an earlier version. Whether we should be more irritated with Sun or Intel was soon clear, when Intel's so-called "OS independent" flash image turned out to be a crummy DOS executable that creates a flash image on a floppy disk. Since all that we have available here at the Vulture Central DC Bureau are *nix boxen, this required us to create a DOS boot disk with a RAM-disk driver and set up a RAM drive, to which we copied, and from which we executed, Intel's so-called "OS independent" BIOS flasher. So minor shame on Sun for making the installer so large, and major shame on Intel for its "OS independent" software, which really offers only a choice of Microsoft OSes to work with.

The installer detected our graphics card, an Nvidia GeForce ti-500, without difficulty. Of course, there would be no excuse for failing to detect such a popular card, so this is hardly remarkable. But that was about it. Pretty much everything else had to be configured manually.

Setting up a NIC can be a chore, but it's the most important item of business initially, because a live internet connection is crucial to getting your Solaris box in order. Fortunately, Solaris is popular, and there's no shortage of Web sites, including Sun's own, with reams of useful information addressing just about every difficulty you're likely to encounter. The native help system is a real tease - it merely describes the things you'll be hoping to learn about - so you will be reading a lot of material on line.

Our experience with a Linksys TX-100 NIC was not encouraging. Admittedly, this isn't the most popular NIC in use, but it's hardly exotic. The system had no clue that it was installed. The recommended driver at Masayuki Murayama's Web site built funny, and never would attach. Fortunately, we had better luck with Garrett D'Amore's drivers.

There are a number of configuration files in /etc that you will have to edit, and even create, to get your NIC to work, once you've got it installed and recognized. If you're comfortable with ifconfig, you'll want to use it. Personally, I find ifconfig to be clunky, and prefer to do the setup manually. It takes me less time. Here's what you need to do:

1. Find the name of your network interface by running ifconfig -a..

2. Create a file, /etc/hostname.NICname and put in it one word: the name of your host..

3. Add the host's IP address, the NICname, and host name to the /etc/hosts file. It should already exist, as Solaris ought to have set up a loopback (localhost) device, but if not, create it..

4. Create a file, /etc/defaultrouter, and put in it the LAN-side IP address of your router or default gateway..

5. Create or edit the file /etc/netmasks and enter your host's IP address and netmask. If you have only a few hosts on your LAN, it really is easier to use fixed IP addys. If you have a multitude, you'll need to use your router as a DHCP server instead (and in that case you're on your own)..

6. Create or edit the file /etc/resolv.conf and enter your preferred DNS servers in the form, nameserver xxx.xxx.xxx.xxx..

7. Edit the file /etc/nsswitch.conf and change the line that reads hosts: files to hosts: files dns. If you miss this one, you won't be able to use DNS..

8. Re-boot, and confirm that your internet connection comes up automatically. If it doesn't, try the command ifconfig NICname up. If that fails, boot your trusty Linux box and start Googling.

Before starting your installation, I would recommend creating a little NIC survival kit on a floppy, with the drivers from Garrett D'Amore's and Masayuki Murayama's Web sites, and a copy of this document, which explains the various config files in /etc, and provides examples. (Note the second example of nsswitch.conf, with the correct setting for DNS.)

Once we got Solaris 10 running, we discovered that we had no audio device. Actually, we did literally have one, and a very popular one at that: an SBLive card. We installed Jurgen Keil's driver (a nice, installable package) which came highly recommended, and immediately found that we had an audio device after all. We still had no sound, but we had an audio device, however dysfunctional, which was progress, certainly.

We had hoped to try the OSS drivers at 4front in time for this report, but they've been unavailable.

And this brings up the single largest weakness in Solaris 10, which we're hardly the first to report: the sore lack of device drivers. If one has got to struggle with common hardware such as Linksys NICs and Sound Blaster cards, then we have a level of user friendliness here reminiscent of Linux about six or so years ago. With luck, the Open Solaris project will generate the enthusiasm needed to get people contributing, and since there are plenty of open-source Unix (i.e. BSD) drivers already in circulation, the task might not be too formidable.

This is an area where Sun's commitment to the x86 project, and the extent to which it intends to build a community around it, will show. It has one obstacle already: its license is not GPL compatible, so that means that there's a fair amount of open source stuff that it can't use. It has another: even its most basic support plan, which involves little more than free online updates, costs money. It's hardly expensive, certainly, at $120 per year per socket, but Linux vendors give away this level of support for free. If Sun wants hobbyists contributing, then they'll do well to give very basic support like online updates to non-commercial users. (We note that security patches are available for download and manual installation at no charge, however.)

More stuff than you'd expect

Solaris 10, nice as it is, comes with a lot of goodies. The default browser is Mozilla, a fine choice, although Firefox and Thunderbird could be included as options, and made available from the desktop menu.

The default mail/calendar application is Evolution, which is hardly my own favorite (Kmail is my choice). Still, I could live with it if I had to, except for two minor issues in Sun's version of Evolution mail that need to be addressed. First, you can only mark unwanted memos for deletion. You must then choose Actions ==> Expunge or hit Ctrl+E to make them go away. When a person deletes something, it usually means they don't want to see it any longer; thus it should be possible for the user to choose the action: mark, move to trash, or fully delete.

More importantly, it's impossible to force the preview pane to display memos in plain text. While it is possible to prevent fetching remote images, the only way to avoid attached/embedded images that one might not wish to see (or might not wish youngsters to see) is by blocking HTML rendering altogether. It's also nice to know that e-mail scripts can't run.

Solaris 10 and Express come with a large number of open-source applications and utilities, available from the Solaris 10 companion software CD, which you will find installed in /opt/sfw/. They ought to be listed on the desktop menu, so that users don't need to hunt for them, create launchers, manually add them to their PATH, etc., and one hopes that this will be addressed soon. But there are some very popular offerings familiar to all Linux users. To name but a few: Bash, GCC, Emacs, jDictionary, Python, MySQL, CVS, Gimp, Ethereal, Snort, Wine, Squid, Apache, and yes, even KDE, although not a full, up-to-date edition, sadly. Those with the patience to download and install a more recent edition might check out the KDE on Solaris Web site. There is also a mailing list devoted to KDE on Solaris.

PDFs are handled by the Gnome PDF viewer, a useless piece of junk, we're sorry to report. You'll need to download and install the Adobe Acrobat Reader yourself - when it becomes available, that is: SPARC only for the moment, we're afraid. Meanwhile, those using KDE can enjoy its PDF viewer: a rather weak item to be sure, but not hopelessly broken, at least.

Popular items pre-configured and available from the desktop menu or desktop icons include Star Office, Mozilla, the Gimp, Gaim, and Evolution. There are, of course, many other packages, although the number of those present but not listed in the menus is too long.

There is a GUI admin interface called the Solaris Management Console (launch it from the command prompt with the command smc). It does about one fifth of what YaST-2 can do, but it is useful nevertheless. You can get general system information and performance data, view logs, view and edit users, set roles and rights, browse networks, examine and configure mounts and shares, and observe processes. We noticed that if one selects a process, and it quits while its individual information window is open and the Console attempts to refresh, it will hang for up to two minutes. So you might want to set your refresh interval to a couple of minutes, instead of the default 30 seconds.

There are a few peculiarities that will take a bit of adjustment for most Linux users and admins. The default shell is the Bourne shell, but you can get Bash merely by typing bash at the prompt. No problem there. There is no /root directory, which means that all of root's stuff piles up in /, which is hardly a major problem, but perhaps not the best thing for organization. Still, it would hardly turn me away from using Solaris. A number of configuration files have different names or are located in different places, and this will take some getting used to. For example, after doing a default installation with automatic partitioning, I was curious to see how the file systems were set up. So I went to look at /etc/fstab, couldn't find it, and wondered where on earth it could be. After a bit of fumbling I discovered that it was indeed in /etc, only it was named vfstab. This sort of minor difference will throw one initially, but it doesn't take long to get the hang of things. And because networking needs to be set up manually, users will become intimately familiar with the contents of their /etc directory in short order.

Closing the gap

Getting Solaris 10 installed onto a large user base will require more development. It's a bit of a chicken/egg situation: you need a large user base to develop stuff, but you need stuff to attract users in the first place. If the company only wants to work with OEMs and see pre-loaded X-86 boxes shipped, then it's already in pretty good shape. But if it wants to see a community develop and flourish, it will have to take the user experience and desktop functions much more seriously.

First in line is, of course, device drivers. I would imagine that this is Sun's top priority.

Second would be multimedia: let's face it, even in a work environment, people play with their computers. They've got to be able to burn a disk, play a song, watch a video clip. There is a ton of open source stuff available, and we hope to see some of it turning up in Solaris 10 very soon.

Support for other file systems, even if it's read-only in some cases, would be nice.

Online updates should be free for non-commercial users. If you want people to stick with a product, especially early in its development, you can't have them worrying that some security hole or bug they haven't heard of has left them open to remote exploitation, or susceptible to some fatal error that might wipe out months of work. (You want me to trust your stuff? Then don't leave me guessing.)

The Solaris Management Console needs to be extended. With YaST, you can configure devices, add and remove software packages, perform an online update, track dependencies, edit your boot config, start and stop services and daemons and assign their runlevels, edit the /etc config files, configure networks, partition disks, plus just about everything the SMC provides, except for the real-time process interface, for which you can substitute the command ps.

KDE is certainly more popular than Gnome among Linux users, and most would agree that it's by far the better of the two desktops. It has more tools, it has better tools, and it's almost infinitely customizable. Adding a full version of KDE 3.4.x and including it on the boot menu as a desktop option would make the lives of many Linux users easier, and Solaris a good deal more attractive to them.

People develop software for many reasons, chief among them the fact that they're paid to. But a certain amount of development comes from hobbyists who have a system that they like, and want to make better, or want to make do something it doesn't already do. To attract the user base and developer interest that will really propel Solaris 10 forward, Sun would do well to think about it as a PC as well as a workstation. Generating enthusiasm and attracting a broad base of developers does involve giving people some fun in return, after all. Making SuSE Pro a fun distro and an excellent PC doesn't make it any less of a workstation, server platform, or development environment, a fact apparently lost on Red Hat. Sun should take a careful look at the cultural differences evident in Novell's and Red Hat's distros, and the differences in user and developer enthusiasm, and draw the obvious conclusion.

We've had fun with Solaris 10. It's got virtues that we definitely admire. What it needs to compete with Linux will be easier to bring about than what it's already got. It could become a Linux killer, or at least a serious competitor on Linux's turf. The only question is whether Sun has the will to see it through. ®

Note: The licensing scheme is another issue with implications for the future of Solaris 10, but that's a topic for a separate, forthcoming article.

Related stories

Sun coughs up an OpenSolaris kernel
Sun plays hide and seek with key Solaris 10 goodies
Sun suffers self-imposed Linux lobotomy
VMware embraces Sun and even Solaris x86
Sun gets liquored up on own code
Sun slams Red Hat