OpenSolaris

  subsites   code review   repo   packages   bugs   defect   polls   planet
You are not signed in. Sign in or register.

Profile: Steven Christensen

by chromatic (chromatic@oreilly.com)

May 20, 2005

Anyone who's administered or used a Solaris system for any serious length of time either knows about Sunfreeware.com or has stayed awake at night, secretly wishing for such a site. In the ten years of its existence, the site has become the most visible place to find binary versions of open source software compiled for various versions and platforms of Solaris. For example, the main site alone has six million files downloaded per year--not counting traffic on any of the sixty mirror sites.

Steven Christensen, the man behind the site, came to computers through his work in theoretical physics. In 1983, while doing quantum gravity calculations as a physics professor at the University of North Carolina at Chapel Hill, he found mainframes woefully underpowered. On a tip from Caltech graduate student Stephen Wolfram, he visited Silicon Valley to explore Motorola-based UNIX workstations. His travels led him to Sun Microsystems. With a grant from the National Science Foundation, he purchased one of the first Sun workstations. Bill Joy was the first person to help him with customer support on a visit to Chapel Hill--installing a line printer on that workstation.

History of Sunfreeware.com

Christensen's research helped him identify a software gap. As he explains, "There was very little commercial software and so scientific Sun users tended to write their own and trade it around--in those days via tapes or even printouts. When I was on the board of directors of the Sun User Group for a few years, I came into contact with experts like Rich Morin and others. They were dedicated to getting public domain or other free software out to other Sun users, both as a way to serve the Sun community and to obtain funding for the User Group. I learned then how important such efforts were to keep a community of users growing and happy."

In 1985, Christensen moved to help start the National Center for Supercomputing Applications in Illinois as a Senior Research Scientist. There, he helped to install a network of Sun machines. Part of that work also involved finding and installing appropriate software for other scientists. During this research, he began to collect SunOS-compatible source code and to archive it on the NCSA FTP server.

Christensen returned to North Carolina in the early '90s as an Adjunct Professor and to start a software company. He created a proposal to create a central location for SunOS software, much like he'd done at the NCSA. Sun agreed to support the idea and the first SunSITE began at UNC-Chapel Hill.

The SunSITEs eventually evolved away from Christensen's original goal of supporting the development and collection of Sun binaries, however. In 1994, he submitted another proposal to Sun, leading to the first version of Sunfreeware.com, hosted first at his house over a modem and later at Duke University. (Archive.org has a 1996 version of smc.vnet.net.)

From there, rapid success necessitated more changes in hosting, ending up in Christensen's office on a T-1 line. "As more and more packages were added and new levels of Solaris supported, the site was named Sunfreeware.com and eventually three more T-1 lines were added and servers upgraded. I was contacted by a lot of places around the world that wanted to mirror the software and now have more than 60 such sites. Many of the remaining SunSITE's mirror Sunfreeware.com."

These days, Sunfreeware.com runs out of a colocation site with a 10Mb circuit.

Building Packages

Christensen sums up the site in terms of its users. "From the feedback I get from my users, I am happy to see that I am still providing support to scientists, engineers, and others around the world who have limited funding, but also to huge government and commercial organizations."

Sunfreeware.com supports multiple platforms. Armed with 12 machines, running everything from Solaris 2.5.1 to Solaris 10, as well as a T-1 to the colo site, and walls full of thousands of books and journals, Christensen spends many hours a day, every day, building each new package up to nine times. He explains, "Automation is possible to some extent, but it has proven to be safer to do them by hand with help scripts. I have one machine with nine windows, one to each machine. I compile the code first on one of the machines and get it working there."

Christensen uses Solaris 8 on SPARC as a typical baseline, sometimes collecting the build steps into a script to run on the other machines. Automation isn't as easy as it sounds; with dependencies to track and incompatibilities between the other versions, he still must watch the configuration steps carefully. It sometimes takes a lot of steps to get to a final package. "... a lot of software has a long list of programs that must be installed first. For example, gaim needs gtk+, which needs glib, atk, pango, which need fontconfig and freetype and gettext and libiconv etc. Compiles have to be done in a certain order. Gettext needs to be compiled before libiconv and then gettext needs to be recompiled to take into account the new libiconv. A lot of end users just don't have the time or the patience to puzzle all this out."

There's hard-won experience here, experience that some users require. "I keep details on what I do and when users email wanting details, I provide them. I help users who want to customize the compiles to fit their special needs. Sometimes, I just provide guidance and other times I do the compiles, usually at no cost or, if the work is very extensive, for a fee."

One issue with supporting older versions of Solaris and varied architectures is the need to make configuration changes. For example, some packages benefit from 64-bit architectures more than others. Christensen watches over the configuration and compilation steps, jumping in if necessary. "I will edit code, Makefiles, configure scripts, etc. to see if I can get it to work. If all else fails I go to the net or to the authors with questions." In practice, the authors and my testers give excellent responses.

After running tests on each package, he uploads them to the FTP server, updates his web site with the announcements, and rsyncs from the main site to the mirror servers. He posts new package announcements on the main sunfreeware.com web page, in a mailing list, and in a blog.

Recently, the site began to accept contributed packages as a test. So far, it has proved successful, and Christensen expects to offer more packages from outside programmers as time goes on. However, he is very picky about what he demands. "In the case of Sunfreeware.com, most of my users expect me to have done the work. Users who have used my packages successfully, often will only use ones they know I have done. In the end, they know there is one person to go to exclusively for support."

Outside Interests

Sunfreeware.com has grown continually since 1994. Though it's Christensen's largest project, it's not his only project. For example, he started and continues to moderate a mailing list and newsgroup for Mathematica users, comp.soft-sys.math.mathematica. The newsgroup and mailing list see between 30 and 50 posts per day, with perhaps 10,000 active readers between the two.

Furthermore, he stays up to date with theoretical physics, having co-developed the MathTensor tensor analysis software system for Mathematica. "This software is used by physicists, mathematicians, engineers, computer graphics experts, medical doctors, and other researchers who need to have a way to do tensor calculations via computer. We are still shocked that software we wrote for doing general relativity and quantum field theory is being used in areas we did not know used tensors."

Finally, the company behind Sunfreeware.com, Steven M. Christensen and Associates, Inc., does computer and scientific consulting. Some of the projects have included using "... genetic algorithm techniques to solve a warehousing problem, multi-dimensional techniques in a demographics project, wavelets for data analysis, a combinatorics problem in DNA analysis, etc. I have a lot of fun learning new science, math, and software to do this work."

Outside of work, Christensen and his wife attend movies and concerts and read voraciously. He admits to an artistic side, too. "My wife and I used to go dancing twice a week and almost got into amateur competition, but injuries from too much energetic swing dancing stopped that."

OpenSolaris Expectations

Sunfreeware.com will support OpenSolaris immediately, adding yet another set of builds to the mix. Christensen sees this as a continuation of his service. "Users who have OpenSolaris will be able to get packages on Sunfreeware.com in the same way they do now. I will provide an outlet for packages done by others who want to serve my user base. Generally, as the number and kinds of Solaris increase, the traffic on Sunfreeware.com increases. I will continue the support of older versions as I always have."

chromatic is the technical editor of the O'Reilly Network.