OCC 2026 Hello Gophicrucians! I've always felt the Old Computer Challenge ( http://occ.sdf.org ) was a bit moot for me since I do all my morning computing with a thirty year old Pentium 1 PC anyway, which is also almost always the computer I post to my Phlog from. But a while ago I picked up some old Sun SPARCstations (SS2, SS5, and SS20) from a genuine local UNIX greybeard doing a clear-out, and as I briefly noted in 2026-03-29.2Week_thoughts.txt, I've been thinking of getting NetBSD running on one of them. My experience with Linux (which apparantly now only supports SPARC v8 introduced with the SuperSPARC CPUs in 1992, or possibly only v8e or v9 and later) has been that trying to squeeze it into limited old hardware is an excellent way to figure out how things really work, and how to avoid all the extra modern software complexity and glitz which I find is typically pointless anyway. So my idea was to set up NetBSD on the SS5, or the SS20 if I could figure out why that's playing dead (but unless it's as simple as a power supply fault, I'm not too hopeful on that). First problem was my memory, I was certain OCC started on the 11th of July, but no, that's when it finished. But I was busy changing engine and gearbox oil on my Jag last Sunday when it really started anyway, so I wouldn't really have got started then. On Monday all the emails rolled in from the OCC mailing list that I'd subscribed to, as the rest of the world catched up to yesterday here in Australia, and I decided I'd make a late start that night. It's the middle of winter and to try and save power I normally set the reverse-cycle A/C to 18degC and cower under it on the couch all evening (also if I turn it up too high it's really hard to eventually force myself out to bathroom and bedroom which aren't heated at all). But, although the pizza-box case is kind-of appropriate, trying to set up a SPARCstation by the couch is too awkward. So come Monday evening I cranked up the heating to a luxurious 21degC, which has it working pretty hard on nights like that in this house, and... I still couldn't face it. The floor was cold, I was tired, and I have my doubts that the heater was really managing 21degC all through the room anyway. So Tuesday morning I decided to just make a start on something before work. Sorting out HDDs, boot CDs/drives, and installers for NetBSD was going to be way too time consuming, so I decided to just have another play with the SPARCscation 2 running SunOS 4.1.3_U1, like I did before. The SS5 has an old OpenBSD installation from around 2000 (OpenBSD dropped support for 32bit SPARC after v. 5.9), but somehow I'm more drawn to the SS2 with its OS as Sun intended (in 1994). The SS2 itself is also about five years older than my regular Pentium 1 PC, with the sticker saying "Manufactured Mar-91", so it's also a slightly older computer than even my usual standards. Fast forward to Sunday, and of course what's happened is I've spent the week setting up the thirty five year old SS2 and SunOS4 for all my morning computer tasks, to replace that way-modern Pentium PC, and not touched NetBSD at all. I still haven't been able to get into it in the evenings, so it's all been very rushed, and frequently eating into my work time while I "just see if this wor... oh, what went wrong there?". So just another one of the distractions that I keep getting stuck on lately really. But I did have the dicipline not to allow myself to write phlog posts in my work time, hence no daily updates like other OCCers like to do. Instead I'm just going to run over some highlights in this post (which is rapidly eating through my Sunday now, but I don't really fancy going out into the strong cold wind to try and finish yesterday's shed gutter repairs anyway). SPARCstation 2 INFO: CPU: 1x CY7C601 @ 40MHz (SPARC v7) Architecture: sun4c RAM: 16MB fitted - 4x 4MB (64-128MB Max.) SBus: 3x slots at 20MHz bus speed HDD: 2x 50-pin SCSI HDDs (Maxtor and Micropolis) Original Cost: $14,995 - $49,995 USD (equiv. $36,953 - $123,205 USD in 2025)! http://www.obsolyte.com/sun_ss2/ gopher://gopherpedia.com/0/SPARCstation_2 EARLIER WORKS: When I first started playing with the SS2 months ago I was just connected by serial console, since I don't have an original Sun monitor (funny, I just remembered I had a dream last night about finding one for sale really cheap on Ebay, but no it's still just a Samsung SyncMaster CRT in front of me now) and SPARCstations were too cool for VGA. At first it didn't look too hopeful, with the boot stalling at an obscure error before getting as far as the expected dead NVRAM battery errors which I found a screenshot of online. Or, in the words of my original notes: --------------------------------------------------------------- http://www.obsolyte.com/sunFAQ/serial/ SparcStation 2: ------------------------------------ WARNING: Unable to determine keyboard type FAILURE: NVRAM (f2000003) Battery Failure, Exp = 000000ff, Obs = 00000000Starting real time clock... Incorrect configuration checksum; Clearing to default values. Probing /sbus@1,f8000000 at 1,0 Nothing there Probing /sbus@1,f8000000 at 2,0 Probing /sbus@1,f8000000 at 3,0 Nothing there Can't open input device. ------------------------------------ Hangs there indefinitely. Maybe this is normal without keyboard, but I should get an ok prompt? https://www.tek-tips.com/threads/quot-cant-open-input-device-quot-on-ultrasparc-ii-60.1262175/ Ctrl+Pause/Break does nothing. - In picocom use Ctrl-a Ctrl-\ to send break. - Still does nothing, but worked on SparcStation 5. Seems it's getting stuck before it should even with a dead NVRAM battery: https://www.vintage-radio.net/forum/showpost.php?s=fa07f5f9669c0fae5dd222a3dde26743&p=444942&postcount=16 https://www.vintage-radio.net/forum/attachment.php?s=fa07f5f9669c0fae5dd222a3dde26743&attachmentid=53172&d=1309354848 - Could be trying to boot from second bus device? --------------------------------------------------------------- The SS5 was much more co-operative, with a miraculously still-alive NVRAM battery and a boot-up straight into OpenBSD, though that unfortunately hadn't been configured to allow log-ins from the serial terminal. But maybe I just like a tease because I still got stuck into the SS2. NVRAM module's battery replaced with a rather over-sized replacement that just fit underneath the big graphics card which slots in horizontally over two Sbus bays above, I went through the rather complicated NVRAM reset guide and eventually guessed the right command to boot SunOS from the correct one of the two 50-pin SCSI HDDs fitted inside. 2026-07-15: I found some photos from when I fixed the SS2's dead NVRAM battery: gopher://aussies.space/1/~freet/photos/SPARCstation2_OpenWindows/hardware/ After that I set to building a VGA adapter. So I ordered one of the bizarre 13W3 connectors from one of the big electronics component distributors who had a deceptively large range. Deceptive because almost all had three solid big round pins for high-current power delivery instead of the coax connectors used for RGB video signals on the Sun connector. I could only get a PCB-mount connector, with copious gold plating and a $20-$30 price to match. The info about the wiring is all pretty confusing, since Sun changed things around over the years. Also the screen resolution setting works backwards compared to PC - Sun monitors tell the SPARCstation which resolution to use rather than the other way 'round. I used the info in this FAQ: http://www.obsolyte.com/sunFAQ/faq_hardware/hwref4.html#HWRef4Mo It might be overkill, but to have as many options as possible I built my adapter based on the circuit diagram from the last page in this manual for a universal Sun-to-VGA adapter with DIP switches for setting all the different possible Sun (or SGI) configurations: https://www.networktechinc.com/pdf/man078.pdf I found one setting that works well with my monitor, and haven't dared to touch the DIP switches again. :) Thankfully I did get a couple of Sun keyboard and mouse combos (the mouse plugs into the keyboard), so I didn't have to make any adapters for that. The SS2 has onboard Ethernet, but it's an AUI port, which is new to me. This apparantly connects to a separate MAU decice that's linked into the network connection. A hunt through my tubs of weird computer connectors revealed nothing that obscure, so I stole a combined SCSI+Ethernet SBus board from the dead SS20 and fit it in the one spare SBus beside the two slots taken up by the double-width graphics card. SBus turns out to be very plug-and-play, even though the card was about five years newer than the SS2 it all just worked and a new "le1" interface was listed by "ifconfig -a", after the built-in "le0" interface SunOS had been complaining so loudly about not finding a network connection on. The main Maxtor HDD only provides ~150MB storage over three partitions, all of which had only a megabyte or less of free space. A second Micropolis HDD has been installed by the previous owner and some extra programs and libraries were loaded from that. Unfortunately after a few runs this started pumping out endless SCSI errors. Apparantly not for the first time, since in the home directory I found a file last modified in Oct. 1994 called "scsierrs" containing lots of the same error messages. Luckily after its thirty year nap, the HDD had initially woken up with enough life for me to have already made a disk image of its contents on a PC with a PCI SCSI card, so I can write the contents to another HDD. Though I'm a bit limited for compatible SCSI HDDs, so for now I just deleted enough things (eg. Emacs, which wouldn't start for me anyway) to fit the essential files all onto the one HDD and reconfigured the OS to work from just that drive. In the end there's about 8MB left free across three Sun-UFS partitions - "/", "/usr", and "/home". It looks like the previous owner, who I gather got these SPARCstations as cast-offs from businesses (the SS20 still has an asset tag from the British military contractor BAE Systems on it - sadly no HDD in that to scan for left-over nuclear submarine or missile plans), only used the SS2 for a year or two. Also that means that after spending $15k+ on it in 1991, the original company that bought this SS2 new must have only used it for a couple of years themselves. I wonder if the turn-over of modern high-end x86_64 professional workstations is still that quick and expensive? I doubt it. The framebuffer console looks beautiful with its high-resolution pretty-looking font, but it is really slow compared to other computers. You watch lines being written across the screen like with a serial connection. It's not that the system is really that slow - terminal windows in the graphical environments (yes, there are two to choose from!) work much quicker, it's just the framebuffer console itself that's slow. The framebuffer console on the SS5 is much quicker. OCC WORK: That took way to long to write, so actual progress during the challenge will have to be reduced to dot-point form if I'm going to achieve anything else today: * Y2K Alert! SunOS4 won't let you take the leap into the 21st century. So I've had to make it an endless 1999 around here. * I thought the floppy drive could read FAT16 disks from PC, but this one won't. Maybe I misremembered, or maybe it's broken. At least the software-controlled eject mechanism worked so I got the disk back. * Networking configuration with fixed-IP (no DHCP support, Sun used "NIS" which seems to have played the roles of both DHCP and DNS (and more)): ifconfig le0 down ifconfig le1 192.168.1.120 echo 192.168.1.1 > /etc/defaultrouter route add default 192.168.1.1 1 echo "nameserver 1.1.1.1" > /etc/resolv.conf * Edit /etc/rc.local to disable le0 and enable le1 on startup. * Add local hostnames to /etc/hosts and look at all the ancient internet FTP, Gopher, etc server entries in there, obviously dating back before DNS was available (or anyway most of the SunOS4 internet programs like "telnet" and "ftp" don't support DNS - only programs linked to /lib/libresolv.a). * Finding software for SunOS4 is tricky. It doesn't seem like there was any sort of package system, programs were distributed as binaries, often static binaries (though dynamic linking is supported), and though I found an old list of software on old FTP servers, they're all long gone. I've had a little success searching http://discmaster.textfiles.com but it's hard to pick out the SunOS4 binaries in results there. Gopher's own Floodgap server hosts a few things though: gopher://floodgap.com/1/archive/sunos-4-solbourne-os-mp * Having deleted Emacs, I'm left with SunOS4's "vi" as the only interactive terminal-based text editor. It's not like what you get with the "vi" command these days. Backspace doesn't erase, insert mode doesn't move between existing lines, and it beeps in disgust at me all the time when I try to do those things anyway. I had to dig up an old print-out of a vi "quick reference guide" to see about commands like 'x' to delete current letter, and 'A' to append at the end of a line. I've been getting by with other vi clones by just pressing 'i' and going about editing anywhere as I please. No such cheating allowed here! There is at least an alternative "vedit" command which enables a little display of which mode you're in at the bottom of the terminal. Also 'view', which opens files read-only, as some substitute for there being no 'less' command in SunOS4, just 'more'. 'view' doesn't work on text from stdin though. * There are signs of another OS called Spring being installed alongside SunOS4. It turns out this was an experimental OS developed by Sun and others based on a microkernel architecture. Apparantly it was too slow, though not so bad on SPARC as on other architectures. Unfortunately to save HDD space it seems to have been set up to run mainly from CD (presumably in an external SCSI drive), so most of the files are symlinks to that disc, which I don't have (nor do I have the CD drive). gopher://gopherpedia.com/0/Spring_(operating_system) * No man pages! It seems the previous owner deleted them to save space and mounted them from another computer on his LAN via NFS (there are 14 NFS mounts in /etc/fstab, for directories on five different computers!). The Open Windows man pages are still there though, and surprisingly the other SunOS4 man pages are on FreeBSD's man page lookup website (though I discovered this pretty late in the game): https://man.freebsd.org/cgi/man.cgi?manpath=SunOS+4.1.3 * Telnet and FTP connections to my "Internet Client" SBC (see old phlog posts about "Xcellent" ideas and similar dodgy puns) running modern Linux and GNU Inetutils work great. The only issue is that the SunOS4 Telnet client gets stuck in line-at-a-time mode, so commands are only sent to the server when you press "Enter". When I found the man pages I discovered you can enter command mode with "Ctrl-]" and use "mode character" to switch to character-at-a-time mode, where you can see what you're typing and also use Links in terminal mode to browse the Web. "Ctrl-E" is also supposed to toggle between line/character mode but it doesn't for me. Tin (newsreader) still doesn't work right though - all the text positioning is messed up. * Telnet and FTP servers are also provided and work fine for access to the SS2 from modern clients. * The FTP client doesn't do DNS lookups, but even if you look up the IP address of modern anonymous FTP servers you don't get very far because it doesn't support passive mode. So as soon as you try to do a directory listing or file transfer it switches to a random port that's blocked by the FTP server's firewall and the connection dies. Oh well, you can look at the welcome messages at least. * SunView is Sun's old windowing environment. It looks very 1980s and has some weird but fun quirks. Unfortunately the demos have all been deleted to save space. I didn't see a program to take screenshots in it myself, but there are some taken in an emulator here: http://toastytech.com/guis/sv414.html * Open Windows Version 3 (started with the "openwin" command) is Sun's X server (XNeWS) desktop. There were lots of proprietary X servers in the 1990s, but I think this is the first X server I've used that isn't based on XFree86 (and then X.Org). It runs Sun's "olwm" window manager and has a bunch of Sun programs installed that are mostly based on the SunView programs, plus or minus the odd feature. The standard X programs are installed too, so there's a fair bit of duplication, especially since there's a compatibility layer that allows SunView programs to run inside the X desktop too, hovering over everything with a sort of halo around them, like a ghost of window systems past. The most extreme case of duplication is with the clock programs, of which there are four overall: clock, the Open Windows version of clock, xclock, and oclock. So of course I took this screenshot of them all running, including the digital modes. The SunView clock in analogue and digital modes is on the left, partly overlapping an X windows that should be in the foreground. gopher://aussies.space/g/~freet/photos/SPARCstation2_OpenWindows/clocks.gif (OK, it turns out those SunView phantoms don't show up in screenshots) * Screenshots are saved in "Sun raster" format with the ".rs" extension, which imagemagick supports. * Display in X is 256 colour, so images all look rather like GIFs. The high 1152x900 resolution looks nice and crisp though. There are no image viewer programs installed, but I guess the image formats would be out of date even if there were. * So far I've tried a few Netscape binaries, which barely fit in the HDD space I can clear, and haven't had much luck. Either they won't start or they start then crash the X server. The "README-communicator-sunos.txt" file on Floodgap includes this note for SunOS 4.1.3: If netscape is crashing under OpenWindows 3.0, make sure you have all of the relevant patches, including patch 100444. I guess I haven't got the patch then, but I don't think I want to risk messing things up by trying to apply it, and it would most likely require too much HDD space to do that anyway. So no Netscape. Lynx used to support SunOS4, into the late 1990s based on the mailing list, but I can't find a binary still online and trying to compile it myself in a few MB with the C compiler included with SunOS doesn't seem that hopeful (early GCC ran on it too, but I see the gateway to dependency hell). * For Web browsing then, Links in graphics mode runs fine as a remote X window displaying on the SS2 in Open Windows from by Internet Client system. At first Dillo wouldn't display any text, but after changing all the fonts to "courier" it now works fine displaying remotely in Open Windows too. Attempts to use the paste button preferred by Sun (along with selecting then click-and-drag) over selecting and middle-clicking to copy and paste text, cause Dillo to hang though. Of course I had to try Firefox too, but their tradition dating back to the Netscape days continues - it causes the X server to crash. * There was a Gopher client written for Sun's graphics toolkit XView, called xvgopher. Most of the copies of it seem to be truncated, but I found it here on Discmaster: https://discmaster.textfiles.com/browse/10583/Internet%20Tools.iso/infoserv/gopher/Unix/xvgopher/v1.0prerelease/xvgopher.static.resolver.gz Source code and (fairly entertaining) readme are here: https://discmaster.textfiles.com/browse/11582/ftp.fujixerox.co.jp_2014.04.09.tar/ftp.fujixerox.co.jp/mirror/bash.keio.ac.jp/pub/mirror/gopher/Unix/xvgopher/v0.5beta/xvgopher.tar.Z/xvgopher.tar Only beta releases are available, and there are a few bugs that cause crashes. In particular the bookmarks always seems to crash for me. But it has a neat back button with a drop-down history list of recently-viewed gophermaps - very modern. Also a very cute gopher icon, apparantly borrowed from xgopher, which blows chewing gum at you while it's loading gophermaps. It allows opening new gophermaps in new windows, which is handy eg. to open the Bongusta page and keep it loaded while you open the new phlog posts. No keyboard navigation/shortcuts though. Here's a screenshot browsing Xiled's OCC entry in xvgopher and viewing the photo from it in Dillo which is running on my Internet Client system and displaying as a remote X window on the SS2: gopher://aussies.space/g/~freet/photos/SPARCstation2_OpenWindows/gophering.gif * There are graphical and terminal email clients, all expecting to read from MBox mail files rather than POP or IMAP. They also talk to the Sendmail server to send mail, and I haven't found an easy way to make it talk to a sendmail equivalent on my Internet Client like I usually do for old email clients on other systems. For reading mail I wrote a script to run on my Internet Client which gets new mail to my normal MD-format inboxes using movemail from GNU Mailutils, then copies it into Mbox format and automatically uploads it to the SS2 via FTP. On the SS2 I can open it in the "Mail Tool v3" graphical mail program in Open Windows. It works pretty well, even sorting the 21st century dates correctly, but of course it's not ideal for modern mail. Besides no HTML rendering or UTF-8 support, it doesn't even decode base64-encoded text, so some text-only emails are even unreadable. Also email headers have gone crazy since the 1990s, and it doesn't hide the unwanted ones. Still, since the mail I get is fairly basic, it worked OK for the last few days that I've had it set up. Here's a screenhot of viewing some mesages from the OCC mailing list: gopher://aussies.space/g/~freet/photos/SPARCstation2_OpenWindows/mail.gif * I thought I'd be able to send mail by running the email client on my Internet Client remotely, like with the web browsers (and "gv" works fine for viewing PDFs that way too!). But no, it's a GTK2 program and they all seem to have the same missing text problem that I had in Dillo and fixed by changing the font to Courier. But changing the default font in .gtkrc-2.0 didn't help! Open Windows comes with quite a full set of fonts to choose from, but they all display blank in GTK2 programs, even though buttons, menus, images, all display fine. Quite annoying. At least xzgv, a GTK image viewer, works for displaying images remotely since it can be controlled by keyboard shortcuts rather than the menus. * I found another email MBox file, left by the previous owner, mainly containing Usenet posts from 1993/94 that he'd set up to receive via Email somehow. This was handy since my internet connection keeps dying due to the fog (and one nation-wide outage which also stopped the state's incredibly-fragile train network for a day and a half), so I've had some history to read instead. By pure chance I found in there a couple of posts to alt.folklore.computers by Sun employees in 1994 discussing the history of UNIX and BSD relating to SunOS4, so I'll copy those at the end of this post. I also found this worthy addition to my Usenet Funnys section, though it looks like this one might have actually come in via real email: gopher://aussies.space/0/~freet/collected_files/usenet_funnys/microsoft_executive.txt * It has a sound recorder/player program but I haven't tried that yet. HDD space is an issue again there. It'd be great to have a tracker module or MIDI player, but I doubt I can find a binary for one. * I'm composing this in "Text Editor V3" in Open Windows. It works quite well and has some basic code-editing/formatting features. Though there's no file browser in the open/save window, so you have to enter the directory and the filename 'blind'. I also tried running remotely Nedit from my Internet Client, but that crashes the X server too. * The Open Windows File Manager ("V3" again, maybe everything in Open Windows V3 is "V3"?) is icon-based and has a tree view of directories using large icons which is above the directory contents sub-window. It's not clear how you control filetype associations and curiously text files open in the old SunView text editor instead of the X-based "Text Editor V3". * Of the three X terminal Emulators, Command Tool, Shell Tool, and regular XTerm, none work properly with Tin via Telnet. But you can start an XTerm remotely and have it display as a remote X window instead of using Telnet, so I've been doing that and it works very well. * Well that's more than enough. If you want to see some more screenshots, Nathan's Toasty Tech website has Open Windows 3 there as well, and he even got Netscape to run: http://toastytech.com/guis/ow3.html CONCLUSION Aside from sending Email (which for mail sent from my own mail server I can still do with Telnet to my Internet Client, then SSH to the server, then run Alpine on it directly) it's all working quite nicely at this point as a substitute for my normal morning computing using that youngster of a Pentium 1. The Pentium 1 is clocked at 120MHz and has 80MB RAM, while this SS2's CPU runs at 40MHz and it only has 16MB RAM. I haven't worked out how to get RAM usage stats in SunOS4, but I haven't had any errors from running out of RAM, though perhaps only because there's not enough HDD space to install a program big enough to cause them. Open Windows runs very nicely. Actually it's sharper and feels more snappy than my Pentium 1 (though that doesn't have graphics acceleration in X). The only issue being that even simple programs do take a surprisingly long time to start up, though everything is quite snappy afterwards. The XView toolkit has a unique look and design, as does the OLWM window manager which is very much in the old style akin to MWM. I must say I do miss having a taskbar, though it's interesting to try this different approach to managing windows. If all the old FTP servers with SunOS4 software on them were still alive, I could certainly do a lot more. Still, for things like SSH, SFTP, and HTTPS, which I can do from my Pentium 1 running later software that still compiles for it, I guess I'd always have a really hard time replicating that with SunOS4 (though there is carl for HTTPS, which I should try). Maybe in NetBSD, which I could have tried out if I got that far (as well as on the SS5), but probably at the cost of a much slower and less optimised system than SunOS4, and definitely needing a bigger HDD. Although this is exactly why I have my Internet Client system to handle that sort of software without forcing me to keep upgrading other software and hardware along with it. MY OTHER OCC PROJECT Once I realised the SPARC just wasn't in me for doing this stuff in the cold evenings, I thought I'd try setting up the last LTS Linux kernel with 486 support (removed in v. 7.1) on my 100MHz 486DX4 laptop with 16MB of RAM which I can play with on the couch. I've done most of the ground work for this already, so it mainly just meant compiling the new Linux kernel with a really minimal configuration that would boot with the limited RAM. I did that, copied it to the laptop's HDD with a USB adapter, and it booted up fine (though slowly), but I realised I hadn't installed the modules required for the PCMCIA Ethernet card. So last night, planning to do an OCC post from the couch on the last day, I pulled the HDD out again, put the modules on along with some more software, put it back, and connected the IDE connector half-on, only connecting one row of pins. The BIOS reported "Hard Disk Controller error" and I discovered my mistake. But connecting it properly gave me the same error again. Trying a spare HDD at least proved I hadn't killed the laptop's HDD controller, but obviously the HDD got some data outputs connected to GND or other outputs and wrecked its cicuitry. Except luckilly it still works with my USB adapter (different logic level thresholds or input currents, maybe?), so I was able to read off it and make a disk image to write to the other HDD which finally, at half-past midnight booted in the laptop. But of course I was in no mood to do anything more by that point. The really annoying thing is I stuffed up the same laptop's original HDD in almost the same way about a year ago, by connecting it upside-down. I've been explicitly trying to concentrate on connecting the replacement drive correctly, yet this time I missed that half the pins weren't even going in. So that's two HDDs down (or maybe one and a half?), and the really annoying thing is that I can no longer trust that I've learnt anything. I can try not to make the mistake again, but no harder than I was trying when I already made the mistake again. So I just can't trust myself to ever touch it again, but I will, so I guess I'll just have to keep my one remaining spare 2.5" IDE HDD handy. It really pisses me off when I can't live up to my own expectations like that. Anyway maybe I'll have calmed down about that come OCC 2027 and I can continue with it then, along with making a start on NetBSD of course. - The Free Thinker BSD/UNIX History, Usenet posts: From gingell@opus Sun Feb 13 11:56:14 MET 1994 Article: 33468 of comp.unix.bsd Path: gingell@opus From: gingell@opus.eng.sun.com (Rob Gingell) Newsgroups: comp.unix.bsd Subject: Re: How was BSD written? Date: 12 Feb 94 03:36:09 GMT Organization: Sun Lines: 62 NNTP-Posting-Host: opus Content-Length: 3469 In article <2jekt5$let@nntp2.Stanford.EDU> jonathan@leland.Stanford.EDU (Jonathan Stone) writes: >Casper H.S. Dik (casper@fwi.uva.nl) writes: >>steve@sccsi.com (Steve Nuchia) writes: >>>I always wondered how sysVr4 was written. Did the AT+T programmers >>>implement virtual memory and TCP/IP from published specifications, >>>or did they have access to BSD code? > >>The virtual memory came from Sun. Yes, the SunOS 4.0 VM system was extracted from SunOS (along with other things) and used for the work that resulted in SVR4. The process of doing SVR4 changed it of course, but it's easily recognizable as the SunOS 4.0 and later VM system. >Whose VM system was derived from 4.2BSD, if I recall correctly. >Didn't SunOS 3.x use a "machine-independent" VM system >that *was* VAX virtual memory structures, and translate in >software to the Sun-2/Sun-3 MMU? The SunOS 4.0 VM system's implementation was not derived from 4.2BSD, though its specification at the system call level is very clearly derived from 4.2BSD. However, you're correct that prior to SunOS 4.0, the memory management system in SunOS was essentially straight 4.2BSD. It's something of a stretch to call the 4.2BSD VM system "machine independent", and I don't believe anyone ever represented it as such. It definitely knew it was a VAX VM system. Ports of 4.2BSD, including the pre-SunOS 4.0 systems, tried to create an "abstract VAX" in the lower levels of the system so that the upper levels could operate easily on it. 4.2BSD was certainly well-enough written that it was easy for people to do this, but it basically implemented a VAX abstract machine. >Yes, it's a nitpick, Sun's VM system changed for SunOS 4.x; >I don't know how *much* because I've never studied the SunOS source. >My point is simply that the ancestry is *there*... I see what you're trying to say, but the point isn't really valid. Casper's original assertion is basically correct -- SVR4's VM system is the SunOS 4.0 one, and relative to the code, there's no anscestry there. The 4.0 implementation bears little but superficial resemblance to the 4.2BSD one. Such ancestry as exists comes from the fact that the 4.0 VM system was essentially a complete implementation (and expansion of) the 4.2BSD specification. It was the SunOS 4.0 implementation that was written "from scratch" starting with the specification, and SVR4 used the resulting implementation. Of course, we started with the 4.2BSD specification because (first of all) it was a pretty decent specification that no one had gotten around to fully implementing. We built an original implementation largely because a number of aspects of the "abstract VAX" were too constraining to deliver both the full functionality of the specification and to allow us to rapidly get to the variety of hardware we had and anticipated in the future. The process of building that implementation taught us a lot, things that are reflected in the literal differences from and amplification upon the 4.2BSD specification. The 4.3BSD specification captured many (if not all) of these differences, certainly all the important ones. We were fortunate as we worked to be able to collaborate with a number of people in the BSD community, and particularly Kirk McKusick and Mike Karels at CSRG. Ultimately, of course, later BSD releases also implemented the full specification, though that implementation was as independent of SunOS 4.0 as 4.0 was of 4.2BSD. ---------------------------------------------------------------------------------- Path: usenet@abyss.West.Sun.COM From: geoff@Eng.Sun.COM (Geoff Kimbrough) Newsgroups: alt.folklore.computers Subject: Re: operating system history.. Date: 3 Oct 1994 16:56:53 GMT Organization: SunSoft Inc. Lines: 84 Message-ID: <36pd4l$oat@abyss.West.Sun.COM> References: <36ho6e$21h@vixen.cso.uiuc.edu> Reply-To: geoff@Eng.Sun.COM NNTP-Posting-Host: gemini70.west.sun.com > The original Unix was written on a PDP11 in 197x at Bell Labs in NJ as > an alternative to Multics. It was originally implemented in assembly > ("the only *real* language" in those days), but after Brian Kernighan > and Dennis Ritchie wrote the C language, it was re-implemented in that > by Ritchie and Ken Thompson. I haven't been able to find out anything Unix in assembly: 1969 (yes, based on Multics, hence the name. The standard joke is that they took Multics and threw out everything they didn't understand. 8^) Unix in C: 1973 Unix version 5 1974 Unix version 6 1977 And now it gets interesting... Version 6 begat PWB (Programmer's workbench, basically the shell and assorted Unix utilities that ran under VMS.) and of course, Version 7. Unix version 7 1979 Version 7 begat 2.0bsd, written by students at Berkeley as a non-commercial research project. 2.0bsd was based on V7 and Unix 32v, an unpublished version with virtual memory and 32bit words (hence the name). Version 7 also begat Xenix at microsoft (1980) and Unix System III (bell labs, 1981). Up until this time, AT&T was prevented by court order from being in the computer business, so they had little incentive to productize Unix. They pretty much gave BSD to UC Berkeley. But back in 1977, someone got the stupid idea that there was money to be made, and figured out a way to do it legally by sublicensing unix (first PWB, then SysIII) from AT&T. Thus Peter Weiner founded Interactive Systems Corp. (which never made a profit and was sold to Kodak in 1987.) After the break-up of AT&T's long-distance monopoly, AT&T was allowed into the computer business. They released System V and started working on the System V Interface Definition (in about 1983?) In 1985, Interactive was hired by Intel to provide the "reference port" of V.3 on the intel arch. That port became the base for Interactive Unix (called 386/ix at that time for legal reasons), SCO, Microport, and a host of others in 1987. In 1988, AT&T dreamed up V.4 as a merge of Sys V and BSD, and contracted with Sun to develop it (Sun being the de facto leader in BSD technology at that time.) I think it came out about 1990, again as a "reference port," meaning that you could get source and/or binary, and it ran, but was not really "product ready." > more from that point until Unix V7, which was presumably the seventh > version of the system as published by Bell Labs, and seems to have > been the last version widely used. At this point, AT&T (who owned > Bell Labs) published System V, but I don't know how much if at all > they based this upon the Bell Labs code, nor why they decided to do > this. Soon after System V because widespread, TCP/IP was developed at > MIT and other places by the ARPA people, and it made its way into the > BSD system, which was under development. From what I have been able > to gather, BSD was written from scratch and not based upon any > previous versions, but why the BSD people wanted to do this and why > AT&T didn't sue them anyway, I don't know. This, of course, leads > into the big split we have today between System V and BSD, with other > major Unices (SunOS/Solaris, HP-UX, IRIX, AIX, et al) based upon one > or the other (well, really they're not other Unices then; they're just > ports of the BSD or SysV code to another architecture by the company Most of this is incorrect (but understandably so). BSD was based on Bell Labs code, and it was licensed for research use. When BSDI came along and tried to sell BSD (on x86), AT&T did sue them. AIX was based on Sys V.2, originally ported to the IBM/RT (remember that one?) by, you guessed it, Interactive, but has since been worked on by so many differenct companies (subcontracting for IBM) that I suspect that not a single line of Interactive's code remains. SunOS was based on 4.2bsd, and I assure you that licensing fees were paid to AT&T. SunOS is now based on Sys V.4 (SunOS is technically the OS component of Solaris, Solaris is an OS+networking+windows+etc.) AT&T spun-off "Unix Systems Labs" for mysterious reasons (IMHO, because they hadn't a clue what they had and less of a clue what to do with it.) And eventually USL was purchased by Novell. Many Unix vendors then scrambled to arrange long-term licensing agreements with Novell on the theory that Novell had no interest in keeping Unix alive just to compete with Netware. Computer System News (a trade rag that might still be around 8^) made a poster-sized "map" titled "The Evolution of Unix" some years ago. It's reasonably accurate, but has a few lines reversed. The above is from that chart for before 1977, from personal ( and co-workers) memory and experience since then. Corrections are welcome. Flames are not.