i960 Unix Workstation – HDS / Neoware @WorkStation

(This is a guest post by Antoni Sawicki aka Tenox)

Around 1998/99 or so I was involved in a large deployment of Windows NT TSE (Terminal Server Edition) with Citrix Metaframe, for a Forbes top-100 listed corporation. The general population were using plain boring Neoware thin terminals with ICA client for their daily tasks.

Unidentified generic Neoware thin client pic stolen from ParkyTowers

Managers and higher ups were using “high end” Neoware “workstations”. Actually named “@workStation Prima”. They had options for TV and AV capture cards, teleconferencing, streaming and multi screen. However no one really used these advanced features and the expensive workstations didn’t provide any extra functionality or value in practice. Just bigger, fancier and made you look more important in the corporate rat race.

For the more perceptive observer however they did have some interesting curiosities hiding inside the pizza box. Firstly they were rocking Intel i960 !

Secondly if you pressed the odd “Don’t login” button at the ICA screen, you would land at a full blown desktop with some apps, games and a terminal with local shell. The OS (named netOS) was some proprietary i960 UNIX. Because it did feature mostly GNU apps I assumed it simply must have been an embedded Linux distro and didn’t make much of it.

Neoware netOS 3.2 Desktop
netOS @workstation advanced TV/AV/streaming options

Fast forward almost 30 years, Rico scored a copy of Neoware netOS install media and some people even got it installed. Out of nostalgia, I also wanted to do some archeology here and play with i960 iron. Bought one of these Neoware @workstation terminals at eBay and got the OS copied to my tftp/nfs server and booted it up.

Good memories and fun with ICA and XDMCP terminal. But I wanted to see what else can be done with the i960 iron. I started looking at the OS kernel and tools. Upon closer inspection of the binaries, turns out these are not Linux at all (also i960 doesn’t have MMU so it could not run it anyhow), instead it seem to be 4.4-BSD based.

AFAIK an official SDK was never publicly available. But applications like NEdit, XScreensaver and even Netscape Navigator shipped with the OS so they must have been ported to netOS internally. Fortunately with help of LLM I was able to do some reverse engineering and map out the binary format and syscall interface. GCC 2.95 did support i960 ISA and Binutils 2.11 was able to produce somewhat compatible binary format. i960-intel-nindy is the closest triplet (nindy is the i960 ROM monitor). The rest was history. An unofficial netOS SDK was born in an evening.

Aclock on i960 UNIX

For now it can compile just the simplest C apps, but I will expand it more. I want to port SimCity!

Last but not least the “premium workstation” has an IDE port and allows installation of a hard disk for local boot. This makes it lot less of a network booted terminal and more of a proper workstation. I slapped on an industrial IDE DOM, fdisk/newfs and got the OS copied to it using provided script:

Now I have a full blown i960 UNIX graphical workstation with local OS and SDK. Hopefully one day it can self host its own toolchain!

netOS documentation is available from https://tenox.pdp-11.net/os/netos/Documentation/
netOS sdk https://github.com/tenox7/netos-sdk

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论