Solaris 2.1 for x86

Solaris 2.1 for x86, also known as SunOS 5.1, was Sun’s first entry into the PC market (technically it was SunSoft, a subsidiary of Sun Microsystems, who released Solaris). However, it wasn’t Sun’s first x86 operating system. In the late 1980s, Sun sold 386i workstations based on Intel 386 processors. The 386i workstations were not PC compatible and ran SunOS 4.0, a BSD UNIX derivative with many custom Sun enhancements.

In Summer of 1993, SunSoft released Solaris 2.1 for x86. At that time, Sun was not selling any x86-based systems and Solaris 2.1 targeted standard (if such a term is not a complete oxymoron) PC hardware. With a small caveat that Solaris needed a bit more than a typical PC of the era, ideally a fast 486 with 16MB RAM.

The Solaris operating system was the result of Sun’s cooperation with AT&T on the development of System V, Release 4 (SVR4). It implemented both BSD and System V programming interfaces, and on x86 there were also provisions for compatibility with XENIX applications (although it is unclear how workable to compatibility layer was).

Solaris 2.1 for x86 was distributed on CD-ROMs, not on tapes like most other UNIXes of that era. It came with a boot floppy, since bootable CD-ROMs were not yet standardized. Solaris could be also installed over the network, again with the aid of a boot floppy. Purely floppy based installation was not an option. Only SCSI CD-ROM controllers were supported because the ATAPI standard did not exist yet; however, Solaris could be installed onto standard ATA disks.

Solaris Kernel

Solaris 2.1 was a very modern UNIX system designed for both workstation and server use. Unlike traditional UNIXes, the Solaris kernel did not need to be recompiled to accommodate hardware changes; instead, loadable modules were used. At that time, only Windows NT had similar support for dynamic kernel module loading, although Solaris 2.1 for x86 was in fact released before Windows NT 3.1 (approximately May vs. July 1993).

Solaris was also moving towards multi-threading (standard on OS/2, but not most UNIX systems at the time) and SMP. The interfaces existed in the system, but were not yet fully supported.

Naturally Solaris came with a full TCP/IP stack and NFS support. The OS was heavily geared towards networked and diskless systems. On the x86 platform, fully diskless systems were problematic, but Solaris could in theory work as a diskless system on a generic PC, using a special boot floppy.

The diagnostic features in Solaris were excellent. Every version came with kadb, the Solaris kernel debugger; kadb stood for kernel adb, and adb stood for Advanced Debugger, a venerable BSD interactive debugger.

Solaris Desktop

Since Solaris was designed as a workstation operating system (typically running on Sun’s own SPARC-based workstations), it came with an advanced graphical user interface and the typical user didn’t need to spend much time outside the graphical desktop.

The Solaris 2.1 graphical environment was based on OpenWindows 3.1. The GUI was a hybrid of X11 and Sun’s older NeWS (Network extensible Window System).

This wasn’t always a happy marriage. At the time, X11 was the standard display protocol for UNIX workstations. To support NeWS, SunSoft needed a custom display server (Xnews) significantly different from the standard MIT X11 implementation, but that was a source of incompatibilities with other X11-based systems.

NeWS was Sun’s window system developed in the late 1980s and based on PostScript (not Display PostScript). The primary authors of NeWS were James Gosling (of Java fame) and David H.S. Rosenthal. NeWS was a very advanced windowing system, in many ways ahead of its time. Probably too far ahead, which caused it to be somewhat slow.

Unfortunately for Sun, NeWS never really caught on. By the time Solaris 2.1 for x86 was released, NeWS was already on the way out, being replaced by X11. NeWS in Solaris 2.1 was rather slow, reportedly in part due to the merged X11/NeWS window server (Xnews).

There was naturally excellent PostScript support in OpenWindows. SunSoft delivered much of the Solaris documentation in electronic form as a so-called AnswerBook. AnswerBooks were in many ways similar to PDFs, combining PostScript with hypertext. AnswerBooks could be easily converted to PostScript and sent to a PostScript-capable printer, or they could be viewed on-line.

OpenWindows also included multimedia support. Solaris 2.1 came with an audio playback and recording tool and a few sample audio files. Since Solaris was delivered on a CD, there was enough room for demonstration applications and data files (images and audio).

SunSoft’s windowing system also implemented ToolTalk, a system for inter-application communication (either locally or over a network).

The x86 version of Solaris 2.1 supported only 256-color graphics modes and effectively only 1024×768 resolution. For most graphics cards, the display server was entirely unaccelerated, which hurt performance. Only for 8154/A style adapters (including the S3 805 chip) there was accelerated drawing support.

Impact

Solaris 2.1 for x86 did not have a significant impact on the industry, but it was a sign of things to come. While the x86 version of Solaris 2.1 was developed separately from the SPARC version, by the time Solaris 2.4 was released, the SPARC and x86 code bases were merged. With a few exceptions, the x86 Solaris versions then tracked the SPARC releases.

In 1993, Solaris 2.x was not yet fully stabilized, and Solaris 2.1 was a bit too much for the typical PC—not unlike Windows NT 3.1. That said, the real (and successful) competitor of Solaris on the x86 platform was ultimately Linux, not Windows.

17 Responses to Solaris 2.1 for x86

  1. Don’t forget about the Sun386i, SUNs first 386 based machine which ran SunOS .. while it did have a 386 CPU it was NOT even remotely PC compatabile…

    There is one for sale on ebay, but I just can’t justify it…

  2. michaln says:

    I didn’t forget about the Sun 386i. See the first paragraph 🙂

  3. ralf says:

    Hi,
    nice article. Is there a way to get a Solaris 2.1 x86 install medium? I would try this OS at home as I’ve some old Intel Hardware.

    Best regards, Ralf

  4. michaln says:

    Copies of Solaris 2.1 (or anything else, really) are not available from the OS/2 Museum, sorry.

    That said, Solaris 2.1 won’t install on just any old PC; it requires a supported SCSI host adapter with a CD-ROM. The list of supported NICs is not very long either, although a NIC is technically optional.

  5. Art says:

    Where did you find the install discs? I’ve been looking for a few years for Solaris 2.4 x86, or a close version. I still have the computer Solaris was installed on almost 20 years ago, but the install media is obviously long gone and the Solaris installation barely runs anymore. The computer’s an IBM PS/2 Model 56 SLC3.

  6. Michal Necasek says:

    I got the installation CD ISO from a collector (if that’s the right term to use), on the condition that I won’t give it to anyone… though I’m sure I could help you if you needed a specific file or something like that.

    But are you saying that you have a machine that still runs x86 Solaris 2.1 and has been for the last two decades?

  7. Art says:

    It runs 2.4 but doesn’t boot anymore, something is corrupt. A few years before, Openwindows stopped working. Solaris x86 is difficult to come across. The discs that pop up on eBay are ridiculously priced.

    Yes everything still functions on that computer. I really should get rid of it. It’s more of an oddity than anything. It would be fun to reinstall Solaris, I haven’t played with Solaris on that computer since I was little in the mid ’90s.

  8. Freddy says:

    There was a time when SUN was giving the ISOs and boot disk images away for free… Solaris 2.1 x86 is pretty hard to get, you could not do much with it because there was vitually no software for it available. I saved my set from being dumped years ago when nobody was interested in this any more and I am pretty happy to have all the original documents.

  9. Michal Necasek says:

    Out of curiosity, what documentation was there beyond what’s in the on-line AnswerBook? And any chance you could provide the boot floppy images? Unlike IBM and Microsoft, Sun didn’t realize that putting images of the boot floppies (or tools to create them) on the CD would be a good idea 🙂

    It’s fairly apparent that the x86 version of Solaris 2.1 was a proof of concept more than a finished product… according to my research, it was even developed separately from the SPARC edition. Solaris 2.4 was a different story.

  10. Freddy says:

    There is the Configuration and Installation Guide, the Openwindows 3.1 User’s Guide a a bunch of really small booklets. The boot disk – I will see if it is still readable and then make up my mind – after all it is now property of Oracle.

  11. Freddy says:

    By the way – is there a way to contact you and send some pictures? My box is complete so maybe you would like too add it to the article.

  12. Stephan says:

    Nice article. The referenced framebuffer is more likely the “8514/A”, which was available from ATI, for MCA and ISA bus, correct?

    BTW: I’m running SunSoft Solaris 2.4 x86 on a Siemens Nixdorf PCD-4H/33, 32MB RAM, Cirrus Logic CL-GD5428 onboard graphics adapter in 1024*768 with 256 colors under OpenWindows 3.4 or CDE 1.0.2. It’s working but the CPU is close to 60% usage, handling all 2D graphics operatios because of missing acceleration for the graphics driver (XSun). Maybe better for trying the X11 drivers. Otherwise working only with the console, connected with e.g. telnet, is just fine. I think is similar with version 2.1 for x86.

  13. Michal Necasek says:

    2.4 is similar in terms of capabilities but I think the code base is quite different. 2.4 was built from a shared SPARC/x86 source tree where 2.1 was kind of a semi-dead-end proof of concept.

    8514/A was an IBM adapter (sold as MCA only), but several compatibles existed, the most popular being ATI mach8 and mach32 chips. And yes, the mach32 was one of a few chips that existed in ISA/MCA/VLB/EISA/PCI variants.

    I wonder how Solaris 2.1/2.4 would do on a C&T WinGine graphics chip.

  14. Zaki Jaaskelainen says:

    “Unlike traditional UNIXes, the Solaris kernel did not need to be recompiled to accommodate hardware changes; instead, loadable modules were used. At that time, only Windows NT had similar support for dynamic kernel module loading, although Solaris 2.1 for x86 was in fact released before Windows NT 3.1 (approximately May vs. July 1993).”

    This was already in IBM’s AIX version 3 for RS/6000 in 1990.

  15. Michal Necasek says:

    That is true, although AIX version 3 didn’t run on PCs. Supporting vendor’s one closed platform is not the same as supporting PCs.

    A good reference for AIX v3 kernel modules is here. And yes, AIX v3 supported modern kernel loadable modules. I wonder if it was the first commercial OS to do so or not.

    Worth noting that DOS and OS/2 both supported loadable drivers/modules but they were only loadable at boot time and could not be unloaded (architecturally speaking).

  16. Andreas Kohl says:

    Even Novell’s NetWare 386 supported NLM back in 1990. On the UNIX side the first UnixWare release was a month earlier than Solaris for x86. I found no release dates for the rebranded USL derivates from Consensys and UHC. Kernel loadable modules rely on SVR4 ABI. Of course not every implementation supported dynamically linked modules reliably.

  17. Michal Necasek says:

    Good point about NetWare 386 NLMs. According to InfoWorld, NetWare 386 was released in 1989. Big difference from relinking the OS like older NetWare versions did.

Leave a Reply

Your email address will not be published. Required fields are marked *