Tag Archives: Solaris

Sköll

This is the first and ongoing phase (as of Mar. 2014). While the main purpose of Sköll is to generally get the original source to compile on Solaris (v8) it also has several sub-tasks:

Compile
100%
Clean-up code
5%
Smooth edges
1%

Compile the original source

Several makefiles needed some adjustments to work with gcc (instead of suns own cc), also some tricky formatting f*ck ups needed to be corrected – (gnu)make is much more picky about this than whatever make they used back then.

Strip unnecessary parts

It’s not identified which parts are completely unnecessary, but the TI DSP code is something which can definitely go.
Other points might need to be discussed, e.g. what should happen to some very special servers (i.e. Terminalserver in Helios lingo) like SUN3 or ACORN R140?

Smoothing the edges

There are multiple strange code-constructs which should be cleaned – they lead back to buggy and awkward MSDOS compilers which needed some workarounds

Here are some examples:

The code is full of #define eq == defines. I was told that was a workaround for the “==” vs “=” issue in conditional expressions. Modern compilers warn you when a condition looks like an assignment, the Microsoft compiler they were using at the time didn’t.. Doh!

Then there’s #define elif(x) else if(x). WTF!? Well, this roots from BCPL, the ancestor of C. Most of the core-devs at Perihelion studied at Cambridge University where BCPL was invented and was used well into the 1980s. In addition to the standard if() and while() constructs, it also had unless() and until() statements, as well as elif().
To them used to these constructs, the code was more readable and boy, they do get used throughout the Helios sources way too much.

 

Sparky 2

Meet Sparky 2, my main Solaris box. Yeah, Sparky2 isn’t exactly a roman or greek mythical figure, even the ‘sun theme’ would give you hundreds of possible god, godess and daemon names but there’s a reason.
Sparky2s main reason d’etre is Helios core development. As far as my research in the sources went, Perihelions main dev-box was called Sparky – so to honor their work I continued to use this name.

Hardware

Sparky2 is actually the 2nd incarnation of my Solaris dev-box. “Sparky-1.5” was/is a lovely SparcStation 20, dual SuperSparc-60 CPU, 384MB RAM and even a on-board CG14-Framebuffer.
But that beast is just loud. Loud fans and a loud SCA-SCSI drive. As with most of my vintage computers, I was thinking and planning to replace everything to make it nearly noiseless but while the power-supply fan was doable, the hard-drive replacement would result in unjustifiable costs… and still it wouldn’t been any faster then.

So here it is, the ultimate “Solaris-Box-which-can-run-even-in-your-bedroom™”: A Blade 150.

case

Yes, you’re right, pretty recent stuff (2000-2006) for Axels ususal crap equipment, and in a Sun hardware evangelists view, it’s not even worth being called “a SUN”, but I needed it to run silent, and because the Blade 100/150 series is mainly build from standard PC parts, it’s perfect for noisless tuning.
It comes in a small ATX-desktop case, uses IDE drives, a standard ATX power-supply, standard PC133 ECC DIMMs (cheap these days!) and the 650MHz UltraSparc IIi CPU is fast enough to compile any vintage project in matters of minutes and not hours.

internals

So out went the power-supply fan as well as the case-fan in the front and both were replaced by my noise-killer-of-choice: BeQuiet! fans.
The supplied Seagate IDE drive is already very silent, so I didn’t replaced that by some IDEtoSDCARD adapter or even a SSD (no, it wouldn’t be faster, the interface is ATA66).
As for the CPU-fan I was told that some (more silent) NVIDIA fans perfectly fit – need to try that later found a better solution, see post below.

Software

Depending what you’re planning to do with it, a blade supports IIRC Solaris from version 7 up to 10. In my humble opinion Solaris 8 is the best OS to fiddle around with vintage sources: “Modern” enough and still featuring SunOS 4.1.x compatibility through the ‘SunOS Binary Compatibility Package” (called SUNWbcp).

While not necessarily needed for vintage coding, I still think it’s a must-have: pkgutil from the OpenCSW project – especially since Sunfreeware is unixpackages.com now, which isn’t free anymore.
Contrary to this, pkgutil is the ultimate & free package-manager and just works as you might got used on other platforms (yum, ipkg and such). It’s much of a relief when you finally got basics like bash, less and another-editor-than-vi etc. Here’s how to get started.

Most important of all, you’ll obviously will need gcc. I had good results with GCC 2.95 which is not available on OpenCSW, but if you know how to Google, you’ll find it for sure 😉