Review: Sun’s new Ultra 20

Peter L. Wargo

Author’s note: I’m a Systems Administrator. At one point, I worked for Sun Microsystems, but I had no involvement in the development of this computer.


Sun’s going Opteron. In a big way. In the past year or so they’ve released a number of new systems that utilize AMD’s 64-bit x86 CPU. They’ve also released a number of new SPARC-based systems, but cost-wise, the Opterons are where it’s at. Some see this as a sign of the “PC-ification” of Sun, but it’s really nothing surprising. Sun has always used multiple CPU families, and I can remember well the switch from Motorola 680×0 to SPARC, as well as the ill-fated 386i. Solaris for x86 systems is almost as old as Solaris 2.x! I designed production systems on the x86 version of Solaris 2.1, and implemented them on the x86 version of 2.4. So, this is not a new thing for Sun.

Recently, Sun introduced the Ultra 20, a low-end workstation with an Opteron CPU instead of the expected UltraSPARC. In addition to an attractive entry price of $895 (USD), it also offers a wide platform of operating system support: Not only does it support Solaris 10 x86 (in all its 64-bit glory), it also supports the major commercial Linux distributions and even (gasp!) Windows XP. I find the last one a bit disturbing, but it could also serve as a transition tool for companies that normally wouldn’t look at Sun gear because they are so mired in the Wintel world.

Sun offers the Ultra 20 in three customizable levels. The base model sports a 1.8GHz Opteron model 144, 512M of non-ECC RAM, an 80G SATA drive, onboard Rage XL graphics, and a DVD drive. For $500 more, the CPU steps up to a 2.2GHz model 146, 1G of ECC RAM, and a Quadro NVS 280 graphics card. If you want to go wild (for $1,800 more than the base), you can get a 2.6GHz model 152, 2G of ECC RAM, a 250G HD, Quadro FX 1400 graphics, and a DVD dual drive.

The Offer

Because they really want people to try their new gear, Sun has made it even more attractive by coming up with some truly sweet developer deals. Currently, if you buy a three-year Sun Service contract, you get the base-level workstation free. They call it $29.95 a month, but it’s really three payments of roughly $360/yr. For that amount, you get all that Sun Service has to offer, as well as software updates and access to SunSolve. Not a bad deal for less than $200 above the price of the workstation alone. And, if you want something beefier than the base level workstation, you just have to pay the difference. The only extra cost you incur is if you want a keyboard (the mouse comes with the system). You can, of course, customize it at order time, but I decided the “stock” systems were just fine.

The offer should appeal to a few groups: Students (cheap system with support), ISVs (cheap development platform), and people like me who want to stay on top of the current technology without spending too much of their hard-earned cash. Of course, Sun needs to fix their ordering process a bit to attract some of us (see below).


I ended up getting two systems. I bought the promotional base-level system for myself at home, and had work purchase the mid-level one. My reasoning on both fronts is that it looked like a good box to explore Solaris 10 on, and as a Linux test bed.

Since the company I work for has used Sun equipment for some time, there was no problem buying one on a purchase order. However, I had some issues with using my American Express. Apparently, Sun thinks that if your card expires within the next three years they should bill you for the entire three-year amount up front. I (as well as others) did not find this amusing. Supposedly, Sun is working on the problem, but as I write this they have not refunded me (as promised) and I’m in dispute with them. There are people at Sun giving me a great deal of help, but there appears to be a disconnect somewhere around the finance department. Hopefully, the issue will be cleared up shortly. But, if Sun wants to attract new blood, they need to make it easier, not harder.

“Out of the Box” Experience

Both of my systems arrived a little over a week ago. Since I was at work, I got to play with the mid-level system first, then I went home to unpack mine. The one at work arrived with the desired keyboard, but no power cord. The one at home arrived with the keyboard and power cord, but was missing the canary yellow “system sheet”. I’ve since talked to others who have had similar anomalies in the details of their orders.

The system itself came with a few goodies:

A Sun optical USB mouse with scroll wheel. (Part # 371-0754.)
The Sun Ultra(tm) 20 Workstation Supplemental CD V1.0. This CD (based on Caldera's DOS) provides drivers as well as diagnostic and restore utilities.
A cautionary note about using the correct USB mouse (apparently, older Sun USB mice will have problems).
A sheet telling you where to actually find documentation.
Release notes, with some inaccurate information. (I especially liked the instructions for those who purchased video cards that you might need to experiment with connecting to the (included) cable splitter to see which is the first video output. The one I received at work was clearly labeled "1" and "2".)
Setup Guide.
An entitlement for the Solaris 10 3/05 Operating System.
A CD and license for Sun Java(tm) Studio Creator.
A CD and license for Sun Java(tm) Studio Enterprise 7.
A CD and license for Sun(tm) Studio 10.

There were a few things missing. Obviously, some more (and accurate!) documentation would be nice, as well as Solaris 10 media for those of us who hate to download it. Even more worrisome was the lack of any mention of the service contract I purchased. A quick call (well, calls) to Sun ensued, and I was told that there was a bit of a SNAFU on the contracts, and they were scrambling to catch up. So far, nothing has arrived.

Anatomy of an x86 Sun

Taking the system out of the box, I was immediately struck by a couple of things. First, it has somewhat of a resemblance to a Apple Power Macintosh G5. (Imitation being the best form of flattery, I guess.) Second, it’s light – much lighter than the aforementioned G5.

Visually, it’s rather attractive (see photos). It’s also functional: There are two USB 2.0 ports on the front, as well as two IEEE-1394 (firewire) ports, and analog audio in/out. There’s also the most annoying green power LED I’ve ever seen. It’s brighter than the headlamp I use to examine systems in the dark!

Ultra 20, front view
Front view. (Image courtesy Sun Microsystems)

On the rear, the system has the usual slot covers for the 16x PCI-E graphics slot (unoccupied on the base system), as well as 4 PCI slots. There are also four more USB 2.0 ports, gigabit ethernet, and the onboard analog video.

Ultra 20, rear view
Rear view, optional video card shown.
(Image courtesy Sun Microsystems)

Popping the cover and peeking inside, the eye is drawn past the very clean internal layout to the rather large heat sink/fan combination on the CPU. I’m still not sure what the big plastic cone over the heatsink is for. There are slots for two SATA hard drives, and in a small stroke of genius Sun has chosen to use the same SPUD brackets to mount the hard drives that they’ve used on systems since the Ultra-1 was introduced right around 10 years ago. Not only does this make inserting/removing the SATA drives as easy as an SCA drive, it also means that you can get more brackets on eBay or the like for dirt cheap and just add your own SATA drive.

Ultra 20, inside view
Inside view, optional video card shown.
(Image courtesy Sun Microsystems)

If the motherboard looks familiar, it should. It’s a Tyan Tomcat K8E S2865, which is a well-respected system board that’s already known for being rock-solid and a good performer. However, in a rather odd twist, Sun had the onboard serial and PS/2 ports removed from the board. The pads are there, but the connectors are not. Nor is the connector for the second gigabit ethernet. There are two unused SATA connectors (I bet they work!) as well as floppy, two regular IDE channels, and a slot for Tyan’s “Server Management Daughter Card”, which left me with visions of a low-cost hosting box. There are also four DIMM slots: Sun claims up to 1G non-ECC or 4G ECC, however Tyan makes no mention of a limitation on non-ECC RAM on their site, so I suspect that it’s more of a marketing limitation.

As mentioned, and borne out in the pictures, the system is very clean inside. All cables are well-routed, and there are surprisingly few fans ?~@~S one CPU, one case, and one in the power supply. Overall, I’m impressed at howclean the system design is. It’s still a PC, but it’s awell-designed and laid-out PC.

Ultra 20 mouse
Mouse. (Image by author.)

Powering Up

After connecting all the cables, and substituting my usual Logitech Trackman Marble for the mouse, I pushed the power button. The first thing was a very loud fan noise, followed by the aforementioned “mega green” LED lighting up. After a few seconds, the fan slowed down, and I saw a giant Sunlogo on my screen. This was followed quickly (almost too fast to read) by the usual “press F2 for setup” screen, then the Sun initial boot loader.

CMOS Setup Screen
Egad, a CMOS Setup Screen! (Image by author.)

A bit of explanation here. Unlike SPARC-based systems with Open Firmware, this is a PC with a BIOS. Ever since I can remember, Sun has used a two-stage boot loader to get around the PC BIOS when using Solaris x86. The first stage allows you to pick which partition to boot from (1-4), and defaults to the one marked active after a few seconds. Then the device configuration assistant runs (in case you added/removed hardware), and finally theboot interpreter loads. This gives you a pseudo ok> prompt if you need one to change boot options, etc. After a few seconds, it just boots as expected. It’s a bit more messy than an Open Firmware machine, and less elegant than GRUB, but it does get the job done.

First Boot Screen
Initial Boot Screen. (Image by author.)

Second Boot Screen
Second Boot Screen. (Image by author.)

Solaris Login Screen
Just like any other Solaris Login Screen.
(Image by author.)

After the boot loaders, you get the same initial experience that you get with any Sun workstation with a pre-loaded OS. You answer questions about networking, name services, and the like, and it reboots. After that, it’s good to go. I had both of mine (work and home) up and connected to the NIS networks within a couple of minutes, and I could log in and work as if it were any other Sun workstation.

I will note here that at least one of my friends had problems with the onboard video on his Ultra 20. It ironically failed to detect the sun 21″ monitor he plugged in, and defaulted to 640×480 video. There were no clear instructions on what to do to fix things, so he had to struggle for a bit. I had no problems with the built-in video detecting my LCD and using 1280×1024.

Taking it for a Spin

I’m not much of a benchmark person (although I will present a couple of them for comparison’s sake). I go for how well-integrated the entire system is, and how it feels to use. Based on this viewpoint, my first comment is, “Wow!” Performance (especially under CDE) is amazingly snappy, even with the base graphics. Using the “Java Desktop” slowed the onboard video to the point where window moves exhibited tearing (not a problem on the work system with the NVS 280 graphics).

Everything I tried ran rather well. Sun’s Mozilla-based browser loads quickly, and there are no noticeable lags anywhere in the system. The first thing I did was compile the ever-trusty flops.c benchmark on the system using the included compilers (cc -DUNIX -fast -o flops flops.c), and got quite decent results:

1.8GHz “base” system:

FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime     MFLOPS
     1      4.0146e-13      0.0113  1241.9874
     2     -1.4166e-13      0.0100   702.2720
     3      4.7184e-14      0.0123  1385.2294
     4     -1.2557e-13      0.0116  1290.5186
     5     -1.3800e-13      0.0232  1248.3094
     6      3.2380e-13      0.0192  1506.9245
     7     -8.4583e-11      0.0304   394.4440
     8      3.4867e-13      0.0187  1605.1603

   Iterations      =  512000000
   NullTime (usec) =     0.0000
   MFLOPS(1)       =   837.2165
   MFLOPS(2)       =   762.5392 
   MFLOPS(3)       =  1151.8189 
   MFLOPS(4)       =  1471.7825
2.2GHz “midrange” system:
FLOPS C Program (Double Precision), V2.0 18 Dec 1992

   Module     Error        RunTime     MFLOPS 
     1      4.0146e-13      0.0092  1517.2220
     2     -1.4166e-13      0.0081   859.7885
     3      4.7184e-14      0.0100  1699.0609
     4     -1.2557e-13      0.0095  1576.9282
     5     -1.3800e-13      0.0190  1525.6109
     6      3.2380e-13      0.0157  1844.5451
     7     -8.4583e-11      0.0249   482.1120
     8      3.4867e-13      0.0153  1962.5277

   Iterations      =  512000000
   NullTime (usec) =     0.0000
   MFLOPS(1)       =  1025.3738
   MFLOPS(2)       =   932.2990
   MFLOPS(3)       =  1408.5488 
   MFLOPS(4)       =  1801.0482 
For comparison, I also ran on a Dell Poweredge SC1425 with dual 3.0GHz/2M Xeon CPUs (since flops.c is single-threaded, the second CPU doesn’t make a difference). The system is running RedHat ES 3 update 4, and compilation was done with gcc -O3:
FLOPS C Program (Double Precision), V2.0 18 Dec 1992
   Module     Error        RunTime     MFLOPS
     1     -8.1208e-11      0.0140   999.7211
     2      1.4704e-15      0.0157   444.6650
     3      1.5740e-13      0.0213   796.3403
     4      9.3701e-14      0.0157   956.4134
     5     -4.6208e-13      0.0295   982.0106
     6      3.9450e-13      0.0283  1023.2943
     7     -6.5421e-11      0.0447   268.4142
     8      4.8178e-13      0.0298  1005.2356

   Iterations      =  512000000
   NullTime (usec) =     0.0013
   MFLOPS(1)       =   519.6955
   MFLOPS(2)       =   528.2650
   MFLOPS(3)       =   795.8267
   MFLOPS(4)       =   955.7333
Obviously, the Ultra 20 performs floating-point quite well. Just for fun, I grabbed a copy of the Byte UNIX benchmarks and compiled them on all three systems. The Suns used Sun’s cc with -fast, the Dell used gcc with -O3. In the interest of saving space and being fair, I’ve eliminated I/O benchmarks (two of the systems were on NFS mounts), and just grabbed some representative benchmarks. There were some that did not run, and others (like the c compiler test) that were obviously skewed by NFS .vs. local disk:


“Base” 1.8GHz


Dell SC1425

Dhrystone 2 (no reg)

5334123.4 lps

6537385.9 lps

4115489.3 lps

Dhrystone 2 (w/reg)

5356342.3 lps

6550205.4 lps

4103666.3 lps

sqrt(2) to 99 places

42407.4 lpm

48284.8 lpm

96736.6 lpm

Tower of Hanoi

76533.3 lps

93183.7 lps

67449.1 lps

Note: While all the benchmarks were running, the fan on the Ultra 20 varied from whisper-quiet to a whooshing sound like wind howling outside a distant window. Overall, it’s fairly quiet, almost on par with a G5. The Dell is a 1U rackmount unit, it’s always loud.

Time for Some Hacking

O.K., I’ll be honest. I can never leave well enough alone, and one of the reasons I bought the Ultra 20 was to be able to expand and tweak it as I see fit. Apart from the obvious things like a video card, RAM, and disk, there are other items one might want to change. For example, the CPU (a socket 939) can be upgraded to dual-core. (If you’re willing to pay the high price for a dual-core CPU right now.) Or, there are those two unused SATA connections, just crying out for a back-panel connection to some external boxes.

But, for the moment, I’ve sated myself with RAM and disk upgrades. RAM was easy, as I have plenty in my dual G5. Two 256M PC3200 non-ECC DIMMs got transferred between the two systems, and now my home system has a much more comfortable 1G of RAM. I was also happy to find a spare metal-lever (the recommended one) Sun SPUD disk bracket in my parts box, and it only took a few minutes to put it on a 160G SATA drive and insert it into the empty drive bay.

A note on disks under Solaris x86: If you’re used to SPARC-based systems, you may be a bit disturbed when you add a disk, do a reconfigure boot, and then find out you cannot format it. Actually, it happens when you run format and then try to partition the disk – you get told that you need to run fdisk first. Ewww… How much like a PC. Device naming is a bit different as well. In order to use the new disk, I first did an fdisk /dev/rdsk/c2t0p0 and told it to make the whole disk a Solaris 2 partition. I then ran format and partitioned the drive as I would on a SPARC. There are a couple of extra slices created (8 & 9) that must be left intact, so I skipped them and set up the rest of the space on slice 7. After that, a newfs /dev/rdsk/c2d0s7 worked wonders, and I was able to use the new disk with no problems.


For us old-timers, the Ultra 20 is a different kind of workstation from Sun. No Open Firmware, and very PC-ish. But, it runs Solaris like a champ, and all of the differences (like the boot process and device names) are pretty minor. They certainly don’t get in the way of what is an extremely fast and competent workstation. Sun needs to attract a wider audience for its hardware, and this value-packed machine is just the ticket. I’m happy I bought the ones that I did, and I’m looking forward to enjoying it for some time to come. Yes, I could’ve built something by hand and saved a few bucks, but it wouldn’t be as well-integrated and offer three years of full support.

If Sun can manage to straighten out the ancillary issues and extend the developer promotion to make up for all the ordering problems, I expect they will sell a good number of these inexpensive and fast workstations.

Wicked fast at a much lower clock than Intel offerings.
Hey, it runs Solaris! (As well as many other Operating Systems.)
Inexpensive for the quality of the components.
Takes standard SATA drives.
PCI-E (16x) for video.
Attractive to look at.
Quiet most of the time.

Ordering process.
Better documentation is needed.
Painfully bright green power LED.
4 SATA channels, but backplane only takes two drives.
Should at least come with a DVD drive that can burn CDs.
Why did they remove the serial and PS/2 ports?