posted by Tony Bourke on Thu 18th Mar 2004 18:16 UTC
IconNetBSD is the king of operating system portability, running on 40+ different hardware platforms, including x86, MIPS, and even the Sega Dreamcast. So it comes as no surprise that among the supported platforms, NetBSD runs on my Sun Ultra 5. This will be the first in a series of operating system reviews for the SPARC platform. You can find the specifics of my evaluation machine here.

I had originally done a review of NetBSD 1.6.1, but just as I was finishing up the review NetBSD released 1.6.2. D'oh! So I took a look at NetBSD 1.6.2 as well.

Overview

NetBSD actually has two SPARC ports: SPARC for 32-bit systems (SPARC v7 and v8, which constitutes sun4/4m/4d/4c systems) and SPARC64 for the 64-bit SPARC systems (UltraSPARC processors, v9/sun4u). They are seperate ports and generally are incompatible with each other. The SPARC port will not boot on a SPARC64 system, and vice versa.

The SPARC64 port is the port I'll be testing since my system is an UltraSPARC box. The SPARC64 port runs on a number of other sun4u/UltraSPARC systems; for more info you can check out the SPARC64 port page.

This NetBSD review is purely for its role as a server as there is no NetBSD support for the PGX frame buffers in the Ultra 5. (In fact, only two of the operating systems reviewed have PGX support, those being Solaris and Linux.)

Installation

You can download the distribution in tarball form or as a bootable ISO from the NetBSD site or one of its mirrors. The entire distribution fits on a single CD-ROM. It's a pure text-based install and I was able to install from both the keyboard/screen and the serial port.

Installation for NetBSD 1.6.2 and 1.6.1 is kind of a mess. There are a number of problems with sysinst, the NetBSD installation application. These problems include segfaults and random -- what I can only describe as "freak outs" -- where a screen redraws itself 6 or 7 times. I had to go through the installation several times just to get the system to boot. While the 1.6.2 install seemed to be somewhat less troublesome than 1.6.1, it still exhibited the same strange behaviors, although to a lesser degree.

Welcome to sysinst, the NetBSD-1.6.2 system installation tool. This menu-driven tool is designed to help you install NetBSD to a hard disk, or upgrade an existing NetBSD system, with a minimum of work. In the following menus, you may change the current selection by either typing the reference letter (a, b, c, ...). Arrow keys may also work. You activate the current selection from the menu by typing the enter key. If you booted from a floppy, you may now remove the disk.
 Thank you for using NetBSD!
+-----------------------------------------------+
| NetBSD-1.6.2 Install System                   |
|                                               |
|>a: Install NetBSD to hard disk                |
| b: Upgrade NetBSD on a hard disk              |
| c: Re-install sets or install additional sets |
| d: Reboot the computer                        |
| e: Utility menu                               |
| x: Exit Install System                        |
 +-----------------------------------------------+
NetBSD 1.6.2 Install Screen

Another problem was that in both the NetBSD 1.6.1 and 1.6.2 installs the network interfaces came up unconfigured despite explicitly setting them during the install. As a result, I had to configure the network interfaces manually after installation.

PCI Devices

I installed an Intel 10/100 NIC, and NetBSD recognized it immediately as interface fxp0. I don't have have any other PCI devices to install, but it's good to know they have a good likelihood of working, and that making this system a two NIC system is as cheap as a $10 Ethernet card on eBay. I tested both the hme0 and fxp0 interfaces, and they both worked flawlessly for me.

32-bits Binaries Need Not Apply

NetBSD for SPARC64 is bit different than Solaris or Linux for SPARC, in that NetBSD SPARC64 exists only as a 64-bit operating system. The kernel is 64-bit, and so are the userland libraries and binaries. By default, there is no 32-bit userland and support must be compiled into the kernel (it is not enabled in the default kernel) in order to execute 32-bit binaries. Again, the 32-bit SPARC port will not boot on a 64-bit UltraSPARC system.

This means that even if you could compile a 32-bit binary (there are no 32-bit shared libraries to link to and the built-in compiler lacks required components to build 32-bit binaries), it would not run on the 64-bit NetBSD system. As such, I find the following statement on NetBSD's SPARC64 port site a bit misleading:

A 64-bit kernel runs 64-bit binaries, and has support for running most 32-bit binaries as well, with the exception of some kernel groveling tools.
While there is a theoretical method for installing a 32-bit userland, it's quite convoluted, and given the trouble that this guy had, I'm not up for even attempting this.

Another troublesome effect of this 64-bit only port is that while NetBSD distributes a binaries in a nice package system, located at ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6.1, there is no SPARC64 directory. There is a SPARC repository for 32-bit SPARC binaries, but them will not work since there is no 32-bit userland or support in the default kernel and configuration.

Table of contents
  1. "NetBSD on SPARC, Page 1/3"
  2. "NetBSD on SPARC, Page 2/3"
  3. "NetBSD on SPARC, Page 3/3"
e p (0)    29 Comment(s)

Technology White Papers

See More