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.
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.