SunOS, Solaris and how they relate

There are a huge number of writeups on E2 that I've discovered that are under the mistaken impression that Solaris is Sun's version of UNIX. To avoid repeating myself in those nodes, I've decided instead to prepare this node for your reading pleasure.

Understand this above all things: Solaris is not an operating system. In other words, "Solaris" is not responsible for operating input and output devices, organising files, scheduling process time per CPU, or any of that. Those operations are taken care of by a kernel on any UNIX system. All versions of UNIX released by Sun Microsystems are versions of SunOS. The "Sun Operating System".

If you need proof, issue the "uname -a" command on any Solaris system:

(Incidentally, Generic_106541-15 is the kernel patch level, in this case 15. 106541 is Sun's patch number for the SunOS 5.7 kernel.)

Solaris, on the other hand, comes bundled on two or three CDs. Solaris is the operating environment. This means that the term "Solaris" is used to describe all the software installed onto a system collectively. SunOS is one part of Solaris.

You can have a SunOS system that is not a Solaris system, but not the reverse. This is obviously cause for some confusion (evidence the number of nodes that describe Solaris as "UNIX"). Using Linux as an example with which I assume most will be familiar, consider "Solaris" to be on a par with te term "RedHat" and "SunOS" to be on a par with the term "Linux". You have a "RedHat system" in a similar that you have a "Solaris" system.

This comparison is not exact since Solaris was a term devised by Sun's marketing department to describe the entire software packaging that used to be simply "that stuff bundled with SunOS".

Rp makes an excellent point below. when it was released, "Solaris" did indeed move away from being a BSD style Unix and as a result it is very easy to distinguish between the two releases, hence the confusion.

(There are some writeups on E2 under the impression that words mean what someone with claims to the right of definition defines them to mean. In linguistics, the assumption is rather that words mean whatever users of those words mean when they use them. So it seems appropriate to do another writeup here, this time from a linguistics point of view.)

Whatever Sun marketing likes to say, most users of operating systems manufactured by Sun Microsystems tend to use SunOS to refer to the version of Sun's OS up to SunOS 4.x, while Solaris is used to refer to everything that came after it.

There is a clear explanation for this: the "Solaris" term and the SunOS 5.x OS were introduced at the same time, so it was only natural for users to identify the two. The original idea, which, as semprini writes, was to reserve the term "SunOS" for the OS kernel and introduce "Solaris" as a name for the whole package, just didn't catch on.
A whole lot of stuff and users already referred to "SunOS" as the old system, whether it was just the kernel or the whole package; meanwhile, Sun kept promoting the use of the new term by consistently referring to the new OS as "Solaris 2". The fact that they also referred to the new kernel as "SunOS 5", and to the old system as "Solaris 1", was lost on everybody.

And with good reason. You can introduce new names for new things, but to introduce new naming for existing things really requires some strongly compelling arguments. And Sun didn't have any. Users felt little need to distinguish the kernel from the whole package by separate names; but they did need a new name for the new system. After all, Solaris (sorry I can't help it) was an entirely different flavour of Unix, with entirely different performance characteristics, and initially, a lot of severe incompatibility issues, most of which were addressed by Sun as the system matured. It's simply too confusing to refer to such a drastic change only by an increased version number, as Sun would have liked users to do.

The numbering really isn't that erratic. I used to work for Sun, so I got the real story.

In the beginning, there was SunOS of various version numbers up to 4.1.3. These were all BSD-based systems. With SunOS 4.1.3, the marketing and product packaging folks decided that they would call the package of SunOS, OpenWindows, and other stuff Solaris, and SunOS 4.1.3 officially became part of Solaris 1.0. Unfortunately (or fortunately, depening on your point of view), this was a triumph of stealth marketing and most people are unaware to this day that there was ever a Solaris 1.

Solaris 2 signaled a change to a System V code base, and the version numbers of Solaris and SunOS were synchronoized such that Solaris 2.x == SunOS 5.x. At least, up through 2.6.

After Solaris 2.6, the marketing weenies decided that it would give a better image to change the integer part of the version than the first digit after the decimal point. Thus, SunOS 5.7 became part of Solaris 7 and so on.

The only part about the whole thing that I personally find annoying is the habit of releasing updates named by the month/year of release, as "Solaris 8 update 10/01", instead of just calling it "Solaris 8.3".