NetWinder Office Server

“How many nets could a NetWinder wind if a NetWinder could wind nets?”--Dan Wilder, SSC Technical Manager
A Different Chip Set

The joy of C is that we can bring programs written in it across hardware platforms without too much difficulty. This means Linux should be able to hop onto the 64-bit architectures fairly well. Desktop machines appear to be heading in the Alpha and Itanium direction (is anyone else frustrated by Intel architecture?), which bodes well for proponents of RISC. Ideally, we will be heading in a microkernel direction as well. What does this mean for the 32-bit StrongARM? Well, there's an active development community bringing Linux to StrongARM. At, you can find the latest details, including screen shots of Enlightenment running on a NetWinder, along with support for Acorn, Archimedes, A5000 and various other ARM boxes. Intel makes StrongARM right now but is pushing the IA-64, while Compaq has recently been pointing out that Alphas are truly nice processors. It seems as though the Wintel stranglehold on operating systems has now been broken, and we are seeing more freedom in the chip area as well (even Intel finds itself with more freedom). As long as we keep Linux available across numerous chip sets (without network externalities favoring one too heavily over the other), we can offer a freedom to choose in the chip arena, which theoretically should get us on better chip sets at lower cost. As long as instruction sets stay free from patent and copyright restrictions, we chip users should expect more happiness. In any event, at least we're moving in a RISC direction, so the next logical steps would involve multiple processors on the hardware end and microkernel design in the software arena. The StrongARM itself seems destined largely for embedded systems, but since embedded systems are a strong point of Linux (for one reason, we have no licensing issues), it's good to keep it supported.

If you get into StrongARM programming, you'll find yourself able to use four operands with one opcode (or more if you get into coprocessor instructions) and do things in a single line that would have taken several in x86 or other CISC chips. One thing I like is being able to perform a bit shift on the same line as a command. For example,

sub r1, r2, r3, lsl r4

would logically shift r3 to the left by the number in the lower byte of r4, subtract this from r2, and put the answer in r1. This is just one example of the efficiency of one command line in ARM (and other RISC) instruction sets. Additionally, all instructions are conditional (checked against the CPSR, current program status register) and you can specify one of 15 conditions for each instruction. Again, we're not supposed to get too dependent on assembly code, but at least this one is fun to use.


No matter how Linux-based the NetWinder might be, it could stand a couple of improvements. For one, the graphics driver displays a VGA console with a 60Hz refresh rate, and that's too slow. Also, when scrolling quickly through a text file in vi, the NetWinder can skip a line; you might think you're editing one line, but when you save the file, you discover you've actually rewritten the line directly above. The perkiness and fast scrolling qualities are nice, so I hope there is a solution to the line-skipping problem other than slowing down the terminal. As for distributions, it has been mentioned that Debian would be preferred, and a modern window manager would be nice. I hope the newer StrongARMs get faster and their unique design doesn't make it too difficult to implement useful micro-architecture techniques which could accelerate the chip considerably. It's a nice design, and I wouldn't mind seeing these chips in 64-bit.

As for the software, criticisms of the UNIX model attack its accessibility rather than its performance. The neat thing about the NetWinder is that it brings accessibility to Linux networking. If free software developers looked at the NetWinder model and developed similar easy-to-use interfaces for configuring a network on generic Linux boxes, Linux might come across as less intimidating. The fact remains that computers could be of service even to people who don't want to devote their lives to them. Imagine if, without any knowledge of Linux or UNIX, you could use a web browser and a cable modem or DSL to have your own permanent net presence. At a click, you could turn services, firewalls, web pages, e-mail services, printers, etc. on and off. Essentially, this would have many of the practical rewards of learning UNIX, without all the work. This is already available with the NetWinder on StrongARM architecture, but it won't become widespread until it's free. I would recommend that release the NetWinder configuration software under GPL (not a pseudo-free license); otherwise, we might want to consider using it as a model for a free source project.