+++ title = "History of Unix part III: Forks and Wars" author = ["Michał Sapka"] date = 2024-06-08T14:43:00+02:00 lastmod = 2024-06-10 categories = ["unix-history"] draft = false weight = 2004 image_dir = "unix-history" image_max_width = 480 abstract = "How Unix came to be?" shortname = "Part III: Unix Wars" primary_menu = "unix-history" [menu] [menu.unix-history] weight = 2004 identifier = "history-of-unix-part-iii-forks-and-wars" name = "3. Forks and Wars" +++ This resulted in a very particualar situation. Different organizations came into possesion of a _great_ operating system with which they were able to do whatever they pleased. The original creators, AT&T were unable to sell the software. Of course, they wanted to monetize this opportunity. This chapter of history is convoluted, so hopefully I won't make any significant errors here. Most of this history would be lost to time, if it it wasn't for dedication of dedicated fans. Remember, I try to link sources so please go take a visit to _their_ sites and talks. But please, go and see Warner Hosh's [talk](https://www.youtube.com/watch?v=XuzeagzQwRs) on the early history of UNIX. It's a gold mine and guiding light allowing me to write the following chapter. ## Other Bell Unixes {#other-bell-unixes} The first forks (separately developed versions of _Unix_) came from Bell[^fn:1]. AT&T was, as we remember, a telephone company. Lots of wires coming into centralized buildings, called _switches_. The first known fork of _Unix_ was intended to automate switching of connections, therefore the very long name - _New Jersey Bell Switch Control Center System (/NJ Bell SCCS). This version of /Unix_ is the earliest known usage of the OS family outside of Bell Labs. It was released in 1971 as a fork of 1st or 2nd edition of _Unix_ and was the first known _Unix_ to support inter-process communication and file locking. Those advancements were not back ported to mainline _Unix_ until _System V_[^fn:2],[^fn:1]. This version of Unix evolved into _Columbus Unix_ (_CB-Unix_), as the _SCCS Unix_ was developed by Bell Division 59473 in Columbus, Ohio. {{< image class="centered" alt="Two red books containing Volume 1 and 2 of Programmers Manuals for CB Unix" source="https://en.wikipedia.org/wiki/CB_UNIX#/media/File:CB_Unix_Manuals.jpg" file="cb-unix-manuals.jpg" >}} Fig. 3.1. Programmers Manuals for CB Unix {{< /image >}} In a completely different part of Bell Labs, another project was starting to use _Unix_. _Mert_ (Multi-Environment Real-Time[^fn:3]) was a fork for use in embedded minicomputers, like PDP-11s[^fn:4]. And so in 1973 _Unix V4_ was ported to run as a supervisor on DEC PDP-11 computers, models -11/45 and -11/70 [^fn:5]. It was the first time _Unix_ was run in a virtualized environment[^fn:1],[^fn:4]. To achieve this, authors used a new (at the time) idea that we now call microkernel. This system evolved later into _Unix/RT_ and then _DMERT_ Yet another version was _PWB/Unix_ which was designed to be used to create software for batch processing. This was how processing was done back then - you created your program, submitted it to a mainframe, but with the use of _Unix_ no longer one needed to provide a deck of cards to a operator. As a result, _PWB_ provided an early version of Source Control System. To make work easier, this was the first version to include a _shell_ - _pwb shell_. Other tools we know and love today that originate in _PWB_ are awk, sed, grep, or make[^fn:1]. Ergo, this was one of the OSes made for work, not for research. This OS was released in 1977 but Evan Ivie and Rudd Canaday started working on it in 1973[^fn:6]. In the same year, 1973, Bell funds a small group to support the use of _Unix_ across the lab - the _UNIX Support Group_ or _USG_ for short[^fn:7]. Their version of _Unix_ was called _Unix/TS_ and was based on _UNIX v4_. It was later merged with _PWB_ and _32V_ to become _Unix/TS 3.0_ known also as _System III_. After another merge, this time with CB-Unix and it became _Unix/TS 4.0_, which however was never released. The next version after that, _Unix-TS 5.0_, became the _System V_.[^fn:1],[^fn:7]. We're not done yet. _UNIX_ has seen its share of history and we're still in the 70s. 1975 saw the release of MUNUX, most likely as a fork of _UNIX V5_[^fn:1]. It was a modification of mono-processing system, UNIX, to multiprocessing utilizing two PDP 11/50[^fn:8]. Yes, multi processor processing was researched in the 70s. _UNIX V6_ saw the addition of BBN TCP/IP Stack in 1977. This is worth mentioning, as before that Bell labs pretended that packets are to be ignored, as networking is to be done using circuit switching. AT&T was a _telephone_ company after all[^fn:1]. _V6_ from 1975 introduced yet another feature - commercial license. We will get back to that, but it is what sounds like: AT&T is earning money from Unix. ## AUSAN and the birth of BSD {#ausan-and-the-birth-of-bsd} _AUSAM_, the _Australian Unix Share Accounting Method_ was the first community maintained fork of Unix based on the Sixth Edition[^fn:1]. The work conducted at Universities of Sydney and New South Wales focused on allowing the system to run with huge number of users[^fn:9]. The changes returned to _Unix V7_, but _AUSAM_ was never upgraded to a full 7th ed[^fn:1] In 1975, Ken Thompson took a sabbatical and took a teaching job at the University of California at Berkeley, where he helped install Version 6 of _Unix_. The OS received quite the attention of students and faculty, resulting in the first version of _BSD Unix_ - _1BSD_. The lineage of BSD is extensive (not to mention their descendants are what I use) and will be a subject of the next part of our story. For now, remember that _BSD_ exists. The name will be all over the place, but proper history of _BSD_ lineage deserves a deeper look. The _Unixes_ we've talked about here were research projects. People tried to understand what can be done with a Computer using _Unix_ as the base. But no one was stopping other people from earning money. So they did. The first wave of commercial Unixes were mostly ports allowing to run _Unix_ on wide range of hardware. Remember, this was way before X86 destroyed the scene and computers, there were vastly different computer architectures on the market. It was no small feat, and this is the hobby of a lot of folks in IT. _Doom_ is supposed to be ported to _everything that can compute_. The good old IBM PC got _386/IX_ (aka _PC/386_) in 1984[^fn:10]. Amigas got their _Amiga Unix_ in 1990 developed by _Commodore-Amiga, Inc./_. HP's internal line of mainframes were given _HP-UX_ (sometimes called _HP-SUX_) in 1984. Most of those don't have any value now, but it's important thread in our story. ## Solaris {#solaris} However some of those forks have _huge_ value. Sun Microsystems (murdered by Oracle buyout) offered their own line of workstations. Their _Unixes_ were initially based on _BSD_ under the name of _SunOS_ - versions 1 to 4.1.4. Starting with version 5 however, the base OS was changed to _System V_ and the OS renamed to _Solaris_. Up to this day, this one of the most well remembered OSes. Mind you, it's still developed (in 2023), but people simply don't want to do anything in proximity to Oracle. ## Xenix {#xenix} Some _Unixes_ are remembered for very different version. Xenix, first released in 1980[^fn:11] was a fork for IBM/PC, Apple Lisa, Tandy (amongst others) released and developed by Microsoft. Yes, a timeline exists where Windows never became the standard, and instead a MS branded Unix rules the land. The first version is said to be very close to _System 7_, but with time more and more changes were applied. It was quite the buzz in the buzz, even Intel sold a complete computers with Xenix preinstalled under the name System 86. Measured by number of machines on which it was installed, _Xenix_ was the most common _Unix_ variant by the mid-to-late 1980s[^fn:12] Nothing of this mattered in the death march of Windows, and the last version was released in 1991. {{< image class="centered" alt="Cover of Unix World from 1985 showing Bill Gates with "Bill Gates on the future of Xenix" feature" source="https://computeradsfromthepast.substack.com/p/microsofts-xenix" file="unix-world-xenix.jpg" >}} Fig. 3.2. What an issue that was! {{< /image >}} ## AT&T Strikes Back {#at-and-t-strikes-back} None of the systems developed outside of AT&T could use the name _Unix_, as the it was a trademark. The management of AT&T was paying attention and starting to get hungry. However, by 1980s, the most popular variant of non-commercial _Unix_ was _BSD[^fn:13]_. The _Unix_ landscape was like nothing else. Despite companies sharing up to 90% of code, all the _Unixes_ were incompatible. Hardware and software vendors were unable to support all of them. The was no _Single Unix_, which made it the adoption much slower and painful. In 1981 Ma Bell (Mother Bell, a common colloquial name for Bell companies) helped a bit by combining all of Bell's _Unixes_ into a single one - _Unix System 3_. Its binaries were sub-licensed for 100USD. Nothing big enough to trigger legal actions, but _Bell Unix_ became a commercial product. This could not go like this forever. The change came from no one other, but the U.S. Department of Justice. The year is 1983 and the second antitrust case against AT&T is settled, causing the breakup of Bell System. This removed the decree from 1956 and AT&T was able to commercialize _Unix_. AT&T swiftly introduced the (aforementioned) _Unix System V_ (note the lack of _System IV_). You could now buy an AT&T _Unix_ for the low price of $43,000, though it allowed for commercial usage of the source code. Of course, add-ons (like networking) were sold separately. This product received its own division within AT&T - _AT&T Information Systems_, later _Unix System Laboratories_ or _USL_[^fn:14]. AT&T intended _System V_ to be the standard way to experience _Unix_, but others disagreed. The situation on the battlefield was complex, with different players putting their figures all over the place. We had two behemoths - AT&T with _System V_ and Berkeley University with _BSD_, now on version 4.2 plus a lot of smaller players. AT&T had all the money and name to crush anyone but did not support networking. BSD had a TCP/IP based networking and was popular among st universities. Vendor were choosing sides - IBM and HP went with _System V_ while others, like Sun choose _BSD_. Some were trying to get it both ways - Pyramid's OSx supported syscalls of both, BSD and System V[^fn:15]. On 27th of March, 1984 AT&T officially enters computer market with their own line of computers from desktops PCs to "super-microcomputers" powered by _Unix_[^fn:14]. {{< image class="centered" alt="An print ad for AT&T Unix PC showing the computer and listing features" source="https://www.thejumpingfrog.com/product/sku/1526351" file="att-unix-pc.jpg" >}} Fig. 3.3. Introducing the AT&T Unix PC. {{< /image >}} {{< image class="centered" alt="A drawing of an space ship flying of a planet looking like System V logo. On top text 4.2 > V can be seen." source="https://archive.org/details/mtxinu-mach386/Mt.Xinu%20BSD%20Poster.png" file="mt-xinu.png" >}} Fig. 3.4. Mt Xinu poster shows the atmosphere of those days . {{< /image >}} ## BSD on the verge {#bsd-on-the-verge} The rules of the game also changed. All _Unixes_ shared code originating from Bell Labs, but AT&T was not happy with this. Therefore, while BSD still could be used for research purposes, any commercial usage would require first purchasing rights for _System V_ usage. The system came with license agreement allowing only for usage in academic institutions and purposes. By 1980s features of BSD were adopted back in _System V_. This, and the license made users and vendors flock towards AT&T, since they had to get a license anyway. Even curriculum was changed, since distributed source code of Unix (be it during lectures or in text books) were under AT&T control[^fn:14]. This made _Lions Commentary on UNIX_ the most photocopied book in academic history. Owning Nth generation, barely readable copy gave significant bragging rights[^fn:1]. ## Alliances - X/Open, AT&T&Sun, OSF, UI {#alliances-x-open-at-and-t-and-sun-osf-ui} All of this made _Unix_ suffer. People were not writing software for it, since all flavors were incompatible. Seeing the situation, a number of companies joined forces to create a single standard . In 1984 the _Open Group for Unix Systems_ was formed by the likes of Bull, ICL, Siemes, Olivetti, and Nixdorf. The group was commonly known as _BISON_, from first names of their name. Later, the name was changed to _X/Open_. The group decided to base their standard on _System V_ because they "decided to run the risk of exploitation by AT&T rather than by IBM”[^fn:16]. The first version of the specification, X/Open Portability Guide Issue 1 was published in 1985 and “covered basic operating system interfaces”[^fn:17]. The situation was, however, dire. In 1985 _MS-DOS_ had 5x the number of applications compared to _Unix_. This lead to the year 1986, and AT&T took a $1.2 billion loss, with half of that in computer industry. In 1987 AT&T and Sun enter an agreement. Sun, by that time, was the largest _Unix_ vendor with _SunOS_ based on _BSD 4.2_ and their own line of RISC-based microprocessors - SPARC. The official note stated that they are joining forces to "pursue co-development of a standard Unix operating system based on AT&T’s System V, Berkeley’s BSD 4.2, and the graphical capabilities of Sun’s SunOS"[^fn:17]. The computer world was not happy with those giants creating their own front. The fear was that it could lead to a total domination of the market by AT&T OS running on Sun hardware. DEC engineer Armando Stettner, said: > "When Sun and AT&T announced the alliance, we at Digital were concerned that AT&T was no longer the benign, benevolent progenitor of UNIX…Sun was everyone’s most aggressive competitor. > We saw Sun’s systems were direct replacements for the VAX. > Just think: the alliance combined our most aggressive and innovative competitor with the sole source of the system software — the balance shifted."[^fn:17], [^fn:18] This lead to the creation of third combined group - in 1988 representatives from Apollo, DEC, Gould Electronics, Hewlett-Packard, Honeywell-Bull, InfoCorp, MIPS, NCR, Silicon Graphics, UniSoft, and Unisys met in DEC's office in Palo Alto. Initially the group called themselves _Hamilton Group_ (from Hamilton Avenue, where DEC offices were located). Their goal was to get AT&T on board, but it failed.[^fn:17] As a reaction, they invited IBM who happily joined and in May of 1988 they official announced their existence under the name of _Open Software Foundation (OSF)_.[^fn:14] They decided not to base their standard on AT&T: > "Unlike X/Open, OSF planned to produce an operating system that it would license to its members, rather than function only as an advisory body."[^fn:17] This had the historic effect of putting rivals, DEC and IBM on the same side. DEC co-founder, Ken Olsen never before shared a stage with any IBM executive before. Even Ken Thomson while traveling in Australia commented on this to Dennis Ritchie: > "Just think, IBM and DEC in one room. We did it!"[^fn:14]. Sun's CEO, Scott McNealy was not as pleased, as he called the OSF the "Oppose Sun Forever". The heat lead to AT&T and Sun creating _Unix International_, whose goal was to advise AT&T on _System V_ and promote its development. The voting rights were based on, of course, financial contributions[^fn:17]. OSF faced internal problems due to consisting parties often competing on the mainframe market. This left OSI and UI as the dominant powers in the straggle, and in total they ended with over two hundred members. Both also developed and released their own Unixes. In November of 1989 AT&T releases a commercial version of _System V Release 5_, and in 1990 the OSF released _OSF/1_ based on IBM's AIX and Carnegie Mellon’s MACH operating systems[^fn:17] ## Enemy mine {#enemy-mine} The battle continued into 1990s, and there was no sign of a clear winner. First, the economy turned to the worst with the early 1990s recession in the US. Most players of the Unix Wars, as we call them now, started seeing decrease in profit - sometimes loses. Second, 1993 saw the release of _Windows NT_, which was aimed directly at the market _Unix_ was fighting for. Having a single, widely supported OS allowed Microsoft to quickly gain huge market share. _Unix_ fought with more standardization attempts. Firstly, in 1988 the IEEE 1003 was released, _Portable Operating System Interface_, aka _POSIX_. The second was known as _Common Open Software Environment_, the _COSE_. It was one more attempt to create an open, unified, standardized _Unix_. This time, however, it was not a fight between _Unix_ vendors. This was the first time they had to unite against a common enemy. Initially the group consisted of The Santa Cruz Operation, Unix System Laboratories, Univel, Sun, HP, and IBM They tasked themselves not with creating of a single unified OS, but rather with survey and document what already was there. The result of their work is _Spec 1170_, now known as _Single Unix Specification_.[^fn:17], [^fn:19] This lead to the last attempt. In 1996 OSF and X/Open merged and became _The Open Group_ which exists till today. It was however too late for _Unix_ to regain its dominance. The value was lost, the _Unix_ wars saw the rise of Microsoft and a new player - GNU/Linux. {{< image class="centered" alt="Screenshot of an Unix system running Common Desktop Environment" source="http://sourceforge.net/p/cdesktopenv/wiki/LinuxBuild/" file="cde.png" >}} Fig. 3.5. One of the great achievements of The Open Group was Common Desktop Environment {{< /image >}} The trademark of _Unix_ resides now with _The Open Group_ which is responsible for certification of products. It's quite expensive, so now we have two types of OSes in our lineage: Unix (with certification, like MacOS) and Unix-Like (following all requirements, but not certified - like GNU/Liunux). _The Open Group_ develops a very large volume of specifications under the name of _POSIX_ (_The Portable Operating System Interface_). [^fn:1]: [The hidden early history of unix the forgotten history of early unix](https://www.youtube.com/watch?v=xuzeagzqwrs) [^fn:2]: [CB Unix](https://en.wikipedia.org/wiki/CB_UNIX) on Wikipedia [^fn:3]: Yes, virtualization is not a new idea as it dates back to the 60s when IBM designed the System/360 to emulate other devices, like the 1401. [^fn:4]: [MERT](https://en.wikipedia.org/wiki/Multi-Environment_Real-Time) on Wikipedia [^fn:5]: [MERT](https://gunkies.org/wiki/MERT_operating_system) on Gnukies [^fn:6]: [PWB/UNIX](https://en.wikipedia.org/wiki/PWB/UNIX) on Wikipedia [^fn:7]: [Unix Support Group](https://gunkies.org/wiki/UNIX_Support_Group) on Gnukies [^fn:8]: [MUNIX, A MULTIPROCESSING VERSION OF UNIX](https://core.ac.uk/download/pdf/36714194.pdf) by John Alfred Hawley, Naval Postgrade School, June 1975 [^fn:9]: [AUSAM](https://www.tuhs.org/cgi-bin/utree.pl?file=AUSAM) on The Unix Heritage Society [^fn:10]: [IX/386](https://winworldpc.com/product/pc-ix/10) on WinWorld [^fn:11]: [Xenix](https://www.neowin.net/news/a-quick-look-back-at-microsofts-first-computer-operating-system-xenix/) on Neowin [^fn:12]: [Xenix](https://en.wikipedia.org/wiki/Xenix) on Wikipedia [^fn:13]: [Unix Wars](https://en.wikipedia.org/wiki/Unix_wars) on Wikipedia [^fn:14]: [A Chronicle of the Unix Wars](https://www.youtube.com/watch?v=Ffh3DRFzRL0) by Asianometry on Youtube [^fn:15]: [Piramid Technology](https://en.wikipedia.org/wiki/Pyramid_Technology) on Wikipedia [^fn:16]: [UNIX STANDARDS IN THE 1990s](https://websites.umich.edu/~afuah/cases/case12.html) on University of Michigan [^fn:17]: [Unix Wars](https://klarasystems.com/articles/unix-wars-the-battle-for-standards/) on Klara Systems [^fn:18]: [The Daemon, the GNU and the Penguin](http://www.groklaw.net/article.php?story=20050601125916588) by by Peter H. Salus [^fn:19]: [COSE](https://en.wikipedia.org/wiki/Common_Open_Software_Environment) on Wikipedia