Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Unix Wars (2000) (livinginternet.com)
145 points by bluu00 on Sept 2, 2020 | hide | past | favorite | 87 comments


There was a Berkeley Unix software company called "Mt Xinu". (The operating system's name is a recursive acronym, while the company's name is a backwards spelling.)

"We know UNIX TM backwards and forwards." -Mt Xinu

https://en.wikipedia.org/wiki/MtXinu

Famous for the great posters they handed out at Usenix:

"4.2 > V" BSD -vs- System V, X-Wing / Death Star Poster

https://raw.githubusercontent.com/ashaferian/Drive/master/Mt...

https://www.ericconrad.com/2008/12/

I love all the old telephone equipment in the explosion!


I have read about that poster for more than 20 years. This is the first time I've ever been able to actually look at it. Thank you!


Interestingly MtXinu was a collective, everyone earned the same and decisions were made collectively (decisions required N-1 votes if I remember correctly)


> X-Wing

That's totally a BSG Viper, and I wonder if the autocannons (?) are another reference...


I used their distribution/product on Vaxes back in the day.


interestingly also blows out the theory that bsd/unix was just a AT&T slave by licensing as the GNU project foundational docs would have you believe


Back when the GNU project was founded, there were still lots of AT&T copyright notices in BSD headers, and it took some nasty litigation in the early 1990 to sort things out.

Incidentally, in my opinion it was this lawsuit which gave Linux a head start vs the *BSDs at a critical point in its life.


They also did a command of the month calendar. Anyone have a copy?


The divisiveness of the Unix Wars was incredibly prevalent during the 1980s and 1990s.

One of my favourite examples of this is a quote from Cliff Stoll's book "The Cuckoo’s Egg" from 1989. When Cliff’s colleague Dave notices that the hacker used the –f option to the ps command on a Berkeley UNIX system (Berkeley UNIX doesn’t use the –f option, only AT&T UNIX does), he said “We’re watching someone who’s never used Berkeley Unix.” He sucked in his breath and whispered, “A heathen.”


Reminds me of a few years ago when I was admining some Solaris 10 servers at a company. Prior to that I had only ever used Linux and FreeBSD. It was interesting to me, even though I was already used to there being differences between Linux and FreeBSD, to interact with something that felt like an even more remote evolutionary branch of a species of creatures. (Though at the same time, things like ZFS and DTrace come from Solaris, so it's not like it is actually all that remote to FreeBSD. Likewise, Solaris Zones are kinda like Jails in FreeBSD.)

I came to think of this because of what you wrote. Prior to using Solaris 10 I had always used to write "ps wwwaux" always, both on Linux and FreeBSD. But on Solaris 10, in order to get roughly the same info, I had to instead type "ps -ef".


Hence why when most talk about how POSIX and C are so portable across UNIX platforms, they really don't have any idea what they are talking about.

I have coded for Xenix, DG/UX, HP-UX, Aix, Solaris, FreeBSD, Linux (starting with kernel 1.0.9 in Slackware 2.0), using the platform compilers of each respective OS.

To put it to modern audience, it is like doing a beautiful web app and then fixing it for every browser in existence.


I still sometimes get a thrill of joy, when I pip or npm install something and it just works. Instead of long ago ftp'ing a tar file and spending an hour or day or punt, porting it from their * nix to mine. And sometimes laugh when HN'ers complain of (admittedly poorly infrastructured) excessive dependencies. Reusable code... living the dream.


My first Unix was Solaris 4.1, but we soon upgraded to Solaris 2.0. My first open source software came on a 1/4" tape I bought by mail order. It included gcc so i had to compile that first with the Sun C version, then use it to compile the rest of the software. Of course Solaris 2.0 unbundled the compiler but I cant remember how I got round that. Must have got a binary of GCC from somewhere. Fun times.


> Solaris 4.1

SunOS 4.1


Right, which was rebranded as "Solaris 1".


Reading this reminds of learning that some *nix systems placed binaries inside `/etc/`. In fact, the linux kernel at boot looks for `/etc/init` [0], which is wild to me.

It made me really appreciate the FHS's standardization of linux directories and files.

[0] https://github.com/torvalds/linux/blob/master/init/main.c#L1...


Other UNIX platforms have had and followed file system hierarchy standards before FHS. The challenge with things like binaries in /etc is usually one of backwards compatibility -- decisions made from expediency or just technological limitations (like where to put things on 5MB hard disks, say) cast a long shadow.


I used to always use /usr/ucb/ps on Solaris systems, where they hid all the old BSD commands from SunOS. It looks like they finally dropped that with Solaris 11!


Ironically, BSD ps switched over to getopt() a mere year later, in 1990. FreeBSD ps then gained an -f option in 1997, but it doesn't mean "full". (-:

* https://svnweb.freebsd.org/csrg?view=revision&revision=40675

* https://svnweb.freebsd.org/base?view=revision&revision=31552


I used to maintain the TeX Users Group's database of DVI drivers. The plethora of Unix variants was a continual nightmare in being able to keep track of what you could print to from where.


Any mention of "unix" and "war" needs to include a reference to www.groklaw.net, a website set up as a focal point for a community defense of unix and linux. A must read. It is in reverse order, with newest articles at the front so I recommend starting with this link: http://www.groklaw.net/index.php?page=482

It is also a remarkable example of a website that provides value to the community, a service and a piece of history.

If you are interested in the idea of what different social platforms provide/afford (Zeynep Tufecki's Twitter and Tear Gas) this is great example of what could be done.

[edit for typo]


When SCO v. IBM was going on, Groklaw was the first web site I'd visit pretty much every day, right after waking up.

Fo all of us Linux geeks back then, PJ provided an extraordinarily amazing service to the open-source community. Most of us would not have known about or understood all the happenings of the case if it weren't for Groklaw. PJ's contributions to the Linux community back then simply cannot be overstated.

---

(For some reason, I want to say that it was PJ who first broke the news that Microsoft was providing "financial support" to SCO -- who was basically bankrupt by that point! -- during the lawsuit, but I'm almost certainly wrong about that. Of course, Microsoft tried to downplay their involvement and there are still many folks today who aren't aware of Microsoft's "collusion" with SCO.)


The Unix Wars article mentions Santa Cruz Operation (SCO).

It is very important to realize that this is NOT the same SCO that sued IBM in 2003, which is what starts the very first Groklaw article.

A company named Caldera renamed itself to SCO in order to create confusion. A few years later, during the (in)famous SCO vs IBM lawsuit, and covered by Groklaw, SCO considered naming itself USL. I would suggest that idea was simply to create more confusion and give an appearance of legitimacy to the company.

Technically the SCO vs IBM suit is still alive. SCOXQ.PK has been in bankruptcy since 2007! (13 years!) Nothing has moved for several years except a few notices of appearance by different lawyers.


> A company named Caldera renamed itself to SCO in order to create confusion. A few years later, during the (in)famous SCO vs IBM lawsuit, and covered by Groklaw, SCO considered naming itself USL. I would suggest that idea was simply to create more confusion and give an appearance of legitimacy to the company.

Caldera paid SCO for the "rights" to the Unix IP, it's not like they just bought the name. Arguing about what the "rights" for Unix actually meant (and how much could be charged to license that IP to people who thought they had already paid for it) was the point of the braindead lawsuits that followed.


Novell owned the Unix IP. (See TFA, Unix Wars)

In the following, SCO means Caldera, who renamed itself to SCO.

Novell licensed Unix rights to SCO where SCO would send 95% of sales to Novell and SCO would keep 5%. (Who sounds like the owner here?) This is all thoroughly documented on Groklaw. The entire court dockets, all filings, motions, etc. It's all there to read, part of history.

SCO later tried to claim that the agreement somehow transferred ownership of Unix to SCO. This resulted in a separate trial from SCO vs IBM. The judge found in Novell's favor in a bench trial. SCO appealed they should have had a jury trial. The Jury also found Novell owned Unix and SCO did not somehow get it via the license agreement. SCO appealed, and again the appeal court found for Novell.

SCO got exactly what it paid for. Rights to resell its Unix derived OS. SCO could have negotiated to license more rights than it did.


Man, I didn't notice as daily life started becoming history.

It is really time for a book. I wonder if PJ from Groklaw is considering it.


Wow, I read Groklaw daily back then, and had forgotten about it and her completely. What a resource that was!


Michael Tiemann on "The Worst Job in the World":

https://en.wikipedia.org/wiki/Michael_Tiemann

>Michael Tiemann is vice president of open source affairs at Red Hat, Inc., and former President of the Open Source Initiative. [...] He co-founded Cygnus Solutions in 1989. [...] Opensource.com profiled him in 2014, calling him one of "open source's great explainers."

https://user.eng.umd.edu/~blj/funny/worst-job.html

>I have a friend who has to have the worst job in the world: he is a Unix system administrator. But it's worse than that, as I will soon tell. [...]


One of my favorate quotes ever comes from an old article about BSD development, and contributor's code in general:

> Still, 90 percent of the contributions were thrown away; the rest, as McKusick likes to say, "were peed upon to make them smell like Berkeley.

https://www.salon.com/2000/05/16/chapter_2_part_one/



Small mistake in the article. System V code was never released publicly by SCO, just some earlier variants not too far removed from V7.

They make great code reading if anyone is interested. The early Unix variants were quite simple and concise, nothing like the complexity of a modern variant.

https://github.com/dspinellis/unix-history-repo/tree/Researc...

For example early process swapping was really simple:

https://github.com/dspinellis/unix-history-repo/blob/Researc...

or scheduling was quite simple too:

https://github.com/dspinellis/unix-history-repo/blob/Researc...

or that's most of a file system:

https://github.com/dspinellis/unix-history-repo/blob/Researc...

scanner and lexer of the earlier (pre pcc) c compiler:

https://github.com/dspinellis/unix-history-repo/blob/Researc...

and that is ls:

https://github.com/dspinellis/unix-history-repo/blob/Researc...

ed, the standard editor:

https://github.com/dspinellis/unix-history-repo/blob/Researc...


Apollo Domain/OS could emulate both BSD and System V, as well as support its own very different shell command set.

One of the ways it did this was that filesystem symlinks could reference the environment variable that specified what OS emulation you wanted.

https://en.wikipedia.org/wiki/Domain/OS

https://jim.rees.org/apollo-archive/


Pyramid Technology Corporation 90x RISC-based minicomputer ran OSx, which supported BSD and System V at the same time in parallel universes, and had patented "conditional symbolic links" to support dynamically switching between the two by changing an environment variable.

https://en.wikipedia.org/wiki/Symbolic_link#Variable_symboli...

>Pyramid Technology's OSx Operating System implemented conditional symbolic links which pointed to different locations depending on which universe a program was running in. The universes supported were AT&T's SysV.3 and the Berkeley Software Distribution (BSD 4.3). For example: if the ps command was run in the att universe, then the symbolic link for the directory /bin would point to /.attbin and the program /.attbin/ps would be executed. Whereas if the ps command was run in the ucb universe, then /bin would point to /.ucbbin and /.ucbbin/ps would be executed. Similar Conditional Symbolic Links were also created for other directories such as /lib, /usr/lib, /usr/include.

https://en.wikipedia.org/wiki/Pyramid_Technology

...And the hardware wasn't all that reliable either!

http://art.net/~hopkins/Don/text/gymble-roulette.html

At least you could run Space Invaders on the system console while it was down waiting for repairs.


On the one hand, having basically one default Unix these days makes a lot of things easier for a lot of people; but at the same time, I don't like software monocultures. So, it's a mixed bag. But I'll tell you what: I do not miss HP/UX or AIX or Solaris or ...


I was thinking something very similar to this just reading the headline.

We don't really have monoculture of Unix-like OSs in the strictest sense. It's true that a lot of people here will assume any server is Linux. But a lot of people reading are also using a Mac as a client OS.

I myself use both FreeBSD and OpenBSD a lot [typing this on FreeBSD]. Just want to mention here that those are totally viable OSs. I believe many people, including here, do a disservice when they dismiss them.


> But I'll tell you what: I do not miss HP/UX or AIX or Solaris or ...

I'm curious whether this includes Solaris 10 / OpenSolaris. It appears to me (as a latecomer) that Sun finally got their act together and shipped something technically superior to GNU+Linux, and that if they'd managed to stay in business that (Open)Solaris would be an extremely competitive offering. Or put differently, how much of this is that yes, the old unixen sucked, but just because they were old? I mean, if I compare Fedora 32 to Red Hat Linux 7 (RH, not RHEL), there's a world of difference there.


The big thing for me is that (Open) Solaris felt like a single solid product, the same feeling I always got from FreeBSD. Whereas the various Linux distributions always felt like a grab bag of various pieces, some of which worked well and others were still rough around the edges.

Little things, like the days of LILO for a boot loader. It had to maintain a map of disk blocks that contained the kernel and initial ram disk, so if the kernel or initrd was re-written to /boot you had to re-run the lilo command to refresh its map (otherwise your system wouldn't boot). Took forever to get something that understood the filesystem. But what replaced it (Grub) I always felt was over-engineered. To me, the perfect successor to lilo would have been the tooling from isolinux (there were boot loaders that natively understood fat32, ext4, and other filesystems without having to have a mini OS built into the boot loader) -- just seemed to be more elegant to me.

Then there were promising technologies that just up and disappeared (at least for a while) such as userfs. We now have fuse, but there were multiple years of distribution versions that didn't have either. Also, there were patches for older kernel versions that supported containers, but they were never mainstream until we got the current mix of process isolation features which enables things like Docker.

Speaking of which, why is it that Solaris has an easy way to back out of an OS update (using Zones), but that same process (using Linux containers and snapshots) doesn't exist in any of the modern Linux distributions?


Yeah, I was trying to not be too aggressive about it, but OpenSolaris is literally my favorite OS of all time, and I'm a little annoyed that a decade later everything else has only managed to match it, and then poorly. ZFS is still better than any other filesystem, zones are still equal to LXC and only just eclipsed by Docker (and then, only in UX), eBPF may finally be better than DTrace, and pkg is just as good as dnf/zypper (and IMO better than apk/apt/pacman).

> To me, the perfect successor to lilo would have been the tooling from isolinux

Wouldn't that just be syslinux (/isolinux/extlinux)? On systems where I pick the bootloader, I usually use that since old grub is dead and grub2 is way more complex than I like.

> Speaking of which, why is it that Solaris has an easy way to back out of an OS update (using Zones), but that same process (using Linux containers and snapshots) doesn't exist in any of the modern Linux distributions?

Isn't that more of a ZFS+beadm thing than a zones thing? FWIW, openSUSE can do that using BTRFS. It... okay, again I honestly think ZFS+pkg did it better than BTRFS+zypper, but it does work quite well. You can also add it using things like snapper on Arch Linux if you're using a snapshotting filesystem.


Solaris was always technical superior to Linux, which copied quite a few features that appeared first on Solaris.

Linux only managed to catch up thanks to Sun going bust (thanks in part to Google).


See, I was a SunOS user BITD and Solaris was terrible for as long as I needed to engage with it. I'm certain that it's quite good now.


Right; I don't doubt that Solaris 9 had its issues, but it was released in 2002; its contemporaries were things like Red Hat Linux 8 and Slackware 8.1 - it seems reasonable to expect that by modern standards, all of the old stuff sucked, albeit in different ways and degrees.


I last touched Solaris back when I had 39 1.44mb floppy disks of Slackware. I don't miss anything of that vintage, save for Mac OS 7.


This has to be a new all-time low in website layout. `max-width:460px` means that it uses less that 24% of my screen space, on my laptop. I have to scroll through 3 pages of 12-point, 10-word wide text. I heard the arguments for 80-column code but 80-column websites?

If this is their idea of a "web book" feel, it would be a book held 4 feet from your face.


Hi and welcome back to the year 2000, where a non-trivial number of users operate at sub-800x600 resolutions and the only reliable cross-platform tool for page layout is HTML tables. You can't even reliably switch stylesheets based on viewport size, and even if you could, CSS support is laughable. Netscape can't reflow, it has to redraw the entire page.

While it's clear that the max-width was added later, it seems to be done so in order to maintain the layout that was clearly created back in those days.

Thankfully simple layouts like this are trivial to zoom, as other commenters have pointed out.


In any web browser window 'Ctrl +' zooms the page in. Can be helpful with situations like this where it is a classic site.


Srsly. Open JS console and type this:

document.querySelectorAll('table')[4].style.maxWidth ='1000px'


It's interesting that GNU only gets a mention in the very last paragraph when a lot of the software described in the article was built with GNU tools (if not for other reason, because developer tools were horrendously expensive back then).

Also, it's interesting people don't think of user groups DECUS and SHARE as relevant precursors (that predate both Unix and the internet)


Even late versions of Solaris (such as I was using at school circa 2005) didn't ship a GNU userspace, you'd have to install it separately. By the time GCC 1.0 came out in 1987, 4.3BSD was already out, SunOS was several versions deep, AT&T had released System V four years earlier... how precisely were these built on GNU tools, when they all got their start before GNU existed?


Early versions of Solaris, as most Unix systems, didn't come with any compilers - a C compiler was an expensive add-on option. Other development tools - other languages, debuggers, linters, code-generators, etc, were not provided in the standard distribution.

The college I graduated from, when I visited a couple years after graduating, had compilers installed in their Unix machines (mostly AIX, some HP/UX and, IIRC, one DG/UX). Usage was limited (they were licensed by seat).

The availability of GNU tools was a big thing - for the first time we could have a C compiler and other developer tools on our Unix machines without worrying about per seat licensing.


I admin'd some SunOS 4.x boxes in the mid 90's. It came with a C compiler, but from what I remember it was K&R, pre-ANSI only. About the only thing we used it for was building gcc.

The Solaris (meaning, SunOS 5.x) situation was different. I remember needing a licensed compiler, or installing a packaged gcc.


I remember AT&T's Unix PC (a remarkable machine) required an extra-large hard disk option to even be able to install the development tools. And the hard disk upgrade was cheaper than the tools.


I remember those! A friend had one, in high school. He got it used. Neat machine. This was probably 1990 or 91.


Now that I could afford one, they are no longer made ;-)

Never found one without missing keys (or cracks, rust, fire damage...) on Ebay.

And, as far as my retrocomputing needs go, I chose to live on the wrong side of the Atlantic.


Retrocomputing is a pain if you aren't looking at the most popular home computers. There are a few machines I'd love to get my hands on, but I've never seen one for sale.


And when you do get your hands on a Cray-1, the DoD has classified all the interesting software ;-)


At least a Cray will always make a nice bench?


The 1, X-MP and the Y-MP are too tall for that. A pair of Cray-2's would work nicely.


They actually did, Sun changed them into a separate product after a couple of Solaris versions, which triggered the adoption of the until then largely ignored GCC.

There is a Usenet post about it.


That C compiler unbundling was probably the largest mistake Sun ever made and very likely the reason Linux rose to relevance and later world domination.

In the early to mid 90s SunOS (prior to Solaris it was SunOS) was in the place where Linux has come to be - it was the default assumed by most software. When one ftp'd any src tarball and typed make, it was almost certain to work on SunOS and very often require extensive tweaking on other platforms. On the nascent early Linux it was a huge pain to get any open source to compile.

Unbundling the C compiler in Solaris changed this dynamic. Suddenly it was no longer a given that everything could be trivially compiled on those SPARC box everyone had.


There was no Linux when Sun took that decision.

Linux rose to relevance because BSD was stuck in a legal fight, and while Windows was starting to eat the UNIX workstation market, Microsoft did not considered worthwhile to actively pursue their POSIX support.

Had Windows NT offered POSIX standard support to the level I could do my DG/UX work assignments at home (minus traditional UNIX wars issues), and I would never cared for Linux.

I bet many would have done the same.


> There was no Linux when Sun took that decision.

True, but initially Solaris (and the compiler unbundling) had no impact on the Sun user base.

The initial release of Solaris was... not that great. I remember universities and research labs (entities which provided a lot of the open source effort) held out upgrading for a long time and stayed on SunOS for years.

So by the time most organizations finally upgraded to Solaris, Linux was established but not very strong. The timing was just right (or wrong, depending on POV) for the compiler unbundling to start pushing people (me included) to Linux.

(Although then I joined Sun and lived happily in the world of Solaris for many years.)


Thank you. I guess I'm from the "couple Solarises later" era.

I could swear the 386i I played with didn't have a compiler, but that was soooo long ago I am very likely wrong.


I found out another source for how it went,

> he second group was irate because Sun had "unbundled" its software. That is, rather than getting all of Sun's developer tools together, they had to be purchased separately.

http://www.groklaw.net/article.php?story=20050525231654621


It makes sense the unbundling happened around the 386i timeframe. It also could be an optional part that never got installed on the one I played with. And, the article said, GCC was good and free.


DGUX toolchain was GNU out of the box. It was one of the reasons I loved it.


"In the late 1990's, interest began to coalesce around Linux, the first really open Unix system released under the free software GNU license, and which might finally unify the Unix family after three decades of development."

I wonder if they ever imagined the editor wars and distro wars of today.


Vi vs Emacs vs XEmacs was already a thing back then.


I like to tell how Emacs standing for "eight megabyte and constantly swapping" was a joke about Emacs requiring a lot of memory, as 8mb of RAM was considered a lot (i.e. the joke wasn't even claiming that Emacs took 8mb in memory, but that the entire system had a generous 8mb of RAM).


People had been arguing about editors for roughly two decades at that point; the 1980s had already seen the archiver wars (ZIP versus ARC versus ARJ versus LHA versus ZOO versus ...); and the early 1990s had already seen DOS+Windows 95 versus OS/2.


I remember ca. 1990 when the big debate in Unix shops was whether SVR4 or OSF/1 would ultimately prevail. Few people probably would have predicted that both of these would be seen as essentially dead ends 20 years later.


This page shows a nice chart of the GNU/Linux evolution: http://futurist.se/gldt/wp-content/uploads/11.10/gldt1110.sv...


I warmly remember Coherent [1], it was a nice UNIX clone.

[1] https://en.wikipedia.org/wiki/Coherent_(operating_system)


> The original version was developed at AT&T Bell Labs, a non-profit research institution, so the source code was permitted to be published and shared with others.

This is not true. Consider what occurred with “Lions' Commentary on UNIX 6th Edition, with Source Code“.


It's probably just me, but from the headline I expected this: http://www.catb.org/~esr/writings/unixwars.html


Nowadays replaced by Linux distribution wars.


I feel it was more replaced by- Linux/Windows developer friendly vs Apple ruthless dictatorship.


Hah - I think that's clever: Apple as the "China" of the new world tech order... All their users and developers are happy with their benevolence. Except the ones that aren't.


no those are cold ones. mostly newbees. few flavors of distros.

Gimme a recent released distro which got decent userbase.


Try to package something on OpenSuse to run on Android.


> Gimme a recent released distro which got decent userbase.

Solus is 5 years old and ranks 8th on distrowatch.


hmm i'll take that one


That is a totally different beast.

That is more like differnet flavour of Windows. Windows 10 Pro, Windows 10 Standard, Windows Server, Windows server core etc.

The UNIX war had truly different implementation that all converge to a partially common standard.


> "a full screen wysiwyg text editor called vi"

I guess the meaning of wysiwyg has changed a bit over the years.


You've never had the "pleasure" of using ed https://en.wikipedia.org/wiki/Ed_(text_editor) apparently. In an era of daisy wheel printers, vi (and emacs) were very much WYSIWYG and far more usable than their predecessors.


I had the pleasure of using its MS-DOS counterpart, edlin.

Yep vi was definitely an improvement.



Well, no. What you saw was what you got. But you didn't either get or see boldface, italics, underline, proportional spacing, and other such stuff. (-:




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: