Sun Microsystems was formed by former graduate students from Stanford and Berkeley, who used Stanford hardware and Berkeley software to develop the workstation market in the enterprise. It aimed to compete directly with the mainframe vendors by offering CPU speed and a mature operating system on the desktop, which was unprecedented. For a given price, greater performance could be obtained from the Sun workstations than was ever possible using mainframes. From one perspective, this success destroyed the traditional client/server market, which used very dumb terminals to communicate with very clever but horrendously expensive mainframe systems. The vendors of some proprietary systems, such as HP and DEC, saw their market share rapidly decline in the enterprise market because Sun delivered more “bang per buck” in performance. By 1986, UNIX was the dominant force, at the expense of operating systems like VAX/VMS, although VMS would later come back to haunt UNIX installations in the form of Windows NT. When users could have a workstation with graphics instead of a dumb terminal, there were few arguments about adopting Sun.
However, Sun’s innovation enabled departments and workgroups to take control of their own computing environments and to develop productively with the C programming language. Sun took BSD and transformed it into a commercial product, adding some useful innovations (such as NFS) along the way. This was similar in some ways to the approach of Linux companies that create distributions of useful software packages and bundle them with the Linux kernel. However, one significant difference between Sun and Red Hat Linux is that Sun has always been a company with a hardware focus—its systems were designed with the SPARC chipset and more recently the UltraSPARC chipset in mind. This has enabled Sun to create very fast workstations and servers with typically lower CPU speeds than Intel, but faster and more efficient bus performance. Sun invests heavily in hardware design and implementation for an expected commercial reward, all the more so now that Sun gives away the Solaris operating system.
The major innovations of SunOS 4.x can be summarized as follows:
Implementation of the Network File System (NFS version 2.0, running over UDP)
The OpenWindows 2.0 graphical user environment, based on X11
The OpenBoot monitor
The DeskSet utilities
The major innovations of SunOS 5.x can be summarized as follows:
Support for symmetric multiprocessing of up to 64 processors in a single server
The OpenWindows 3.0 graphical user environment and OpenLook. Integration with MIT X11R5, Motif, PostScript, and the common desktop environment (CDE)
The Network Information Service (NIS+)
Kerberos integration for authentication
Support for static and dynamic linking
Full-moon clustering, ensuring high availability
The ability to serve NT clients as a primary domain controller
POSIX-compliant development environment, including single threads, multithreading, shared memory, and semaphores
Real-time kernel processing
X/OPEN-compliant command environment
Compliance with UNIX 95 and UNIX 98 standards
Support for very large (> 2G) files
Microsoft Windows emulation on the desktop with WABI
Advanced volume management (vold)
Standardized package administration and deployment tools
Standardized patch management and integration
Software-based power management
Access control lists for resource authorization
Support for centralized management of user home directories using the automounter
Improvements to NFS (version 3), running over TCP
Support for advanced networking, such as ATM, frame relay, and Gigabit Ethernet
JumpStart customization of local site installation and deployment
A 64-bit kernel architecture with Solaris 7 and later
Simplified backup and restore procedures
Simplified site administration with the AdminSuite toolkit
The classic CPU for Sun systems is the SPARC chip. Many systems in deployment today, including SPARC 5, 10, and 20, use different versions of the SPARC chip, with processor speeds of around 40–60 MHz. Later systems, which use the UltraSPARC chipset, have processor speeds (as of this writing) of up to 900 MHz. Although this may not seem fast, the bus architectures of Sun systems are much faster than their PC counterparts, more than making up for apparently slower chip speeds. Many SPARC systems are still supported in Solaris 9, although it is advisable to check with Sun to determine whether older machines such as IPCs and IPXs will be supported in future releases. Sun 4 machines and older are no longer supported by Sun, but they may run one of the BSD releases or Linux. Some older machines, such as Classics, have a very loyal support base and are still actively supported.
With the introduction of Solaris 2.1 came support for the Intel platform, supporting ISA, EISA, MCA, and PCI bus types. This performed adequately on high-end 486 systems. Given the significant variation in types and manufacturers of PC hardware, not all devices are currently supported under Solaris 9. Newer innovations, such as the Universal Serial Bus (USB), have only been recently supported. Solaris 9 for Intel runs very fast on modern Pentium-II and Pentium-III systems, meaning that Intel devotees now have a wider choice of operating system if they don’t want to buy Sun hardware. There was also a single port of Solaris to the PowerPC platform (with version 2.5.1), but this failed to impress MacOS users and was deprecated in Solaris 2.6.
Solaris for Intel users will require the Hardware Compatibility List (HCL) to determine whether their particular system or their peripheral devices are supported. You can find this list at http://access1.sun.com/drivers/hcl/hcl.html. The HCL lists all tested systems, components, and peripherals that are known to work with Solaris for Intel. Chances are, if your hardware is not listed, it won’t be supported. However, many Intel-based standards have been adopted by Sun, including the PCI bus, which is now integrated in the desktop Ultra workstations.
Solaris supports several different kinds of cross-platform interoperability. For example, Sun recently released a product called lxrun, which allows Linux binaries to be run under Solaris for Intel. This is very handy, as many database vendors, for example, have given away free versions of their database management products for Linux, but not for Solaris. Being able to exploit a free offer for one platform and make use of it on Solaris is a very handy cost saver indeed.
Sun also includes a binary compatibility package in Solaris that allows Solaris 1.x applications to run without modification. However, success can depend on whether the application is statically or dynamically linked. It is not clear whether binary compatibility will continue to be supported in future releases of Solaris.
Of course, the greatest hope for the interoperability of different operating systems lies with the Java programming language, developed by Sun. Starting life as the “Oak” project, Java promises a “write once, run anywhere” platform, which means that an application compiled on Windows NT, for example, can be copied to Solaris 9 and executed without modification and without recompilation. Even in the 1970s, when C was being implemented far and wide across different hardware platforms, it was often possible to transfer source and recompile it without modification, but binary compatibility was never achieved. The secret to Java’s success is the two-stage compile and interpretation process, which differs from many other development environments. Java source is compiled on the source platform to an intermediary bytecode format, which can then be transferred to any other platform and interpreted by a Java Virtual Machine (JVM). Many software vendors, including SunSoft and Microsoft, have declared support for the Java platform, even though some vendors have failed to meet the specifications laid out by Sun. Until a standard is developed for Java, Sun will retain control over its direction, which is a risk for non-Solaris sites especially. However, Solaris 9 installations should have few qualms about integrating Java technology within their existing environments. With the release of free development tools, development in Java is becoming easier for C and experienced UNIX developers. For example, the Solaris Management Console, covered in Chapter 29, uses Java technology to build its interface, shown in Figure 1-2. Java is the best attempt yet at complete binary compatibility between operating systems and architectures.