See Full Story
My Web logs show that somebody asked Google an interesting question sometime just before 08:03:41 Eastern on January 24th and then again sometime before 04:54:29 Eastern on January 26th. As entered the first time, the search was for "linux to unix relationship," although that became "relationship of linux to unix" a few minutes later. Since my personal site isn't the first one that comes up when you do these searches, I decided the person must have been very interested in pursuing the question. So I set out to answer that question in this column.
I am a bit of an IT dinossaur but I started using Apples in 1980 (IIe) and in 1985 I bought a 286AT along with Xenix to run a Point of Sale system for my business. To explain Xenix was a cut down version of Unix and was designed to handle up to 256 terminals. The software was distributed by Santa Cruz Organisation (SCO) and by the standards of the day was very expensive. It was most definitely copyrighted and had warnings about illegal distribution. I still have the software. I know that in the mid-90s Santa Cruz org sold out but cannot remember to whom.
I believe SCO sold out to Caldera
Right, Xenix was developed by SCO under contract to Microsoft from AT&T System V code. That's why Microsoft recently signed a continuation of their AT&T code use rights with SCOsource inc.
When SCO's exclusive contract with MS ran out they obtained the right to market the product as SCO Xenix and then spent nearly ten years getting the last MS code out so they could release an upgraded version as SCO Open Unix.
That was the product whose code was used in the IBM Monterey project -leading in part to the present mess where some of this code is (I believe) in Linux.
The article says "but the kernel he started with -- Andrew S. Tanenbaum's Minix -- was unambiguously described by its author as "an open source Unix clone.""
This is misleading. Linux does not now, nor has it ever, included Minix code. And tanenbaum used "open source" in a way far removed from the modern usage, which was popularized by Eric Raymond 6 or 7 years ago...he simply meant that the source was available to read. You weren't allowed to distribute modified versions, or distribute it period; if you had a patch, you had to send it to Tanenbaum because only he could change minix. It was frustrations with the slow change (he wanted to keep it simple as a teaching tool) that caused Linus to develop linux in the first place; the fact that Linus once used software described as a unix clone really has no bearing on the issue.
Actually the orginal licence, printed in the book with the source is available at: http://www.cs.vu.nl/pub/minix/LICENSE. It's fairly
"Distribution and use of the MINIX operating system in source and binary forms, with or without modification, are permitted provided that the following conditions are met..."
with the usual opne source conditions following.
The analogy of dogs is a great example of how Linux and Unix actually differ.
First off, Linux is not a genetic derivative of UNIX; A genetic derivative of a unix system would be a direct copy of the source-code, which would then be modified for the given hardware.
The argument, Yorkshire Terriers are Alaskan Malamutes on the grounds of genetic heritage and a shared interest in chasing mice, don't apply to linux and Unix, because they don't share a genetic heritage.
Linux borrows the idea of the unix-system
for the file-system, device-drivers and basic applications typically available to the base system.
However, a Collie is not a German Shepherd,
even if they are the same size, run at the same speed, and are both used for shepherding sheep.
German shepherds have retained the predator skill of tracking, which is why they are used as police dogs.
The same goes for UNIX. If current unix implementations, like SUN-OS, were ported to x86, including the years of tweaking to security and optimization, you would see stark differences between that unix and RedHat9, for instance.
I think most would agree, Linux is more domesticated for the average user.
All OS's have needs for configuration tweeks, fixing security holes and adding new apps.
However, RPM's are much easier than compiling sourcecode for the same application.
The biggest concern I have is the current trend to throw out the German Shepherd for the Collie, just because the Collie is now the favorite hobbie-dog to have.
You might be able to train the Collie for tracking, but you still have many generations of the shepherd refining this skill.
This leads me to my final argument.
The reason why cats (MS) are losing out, is because they have lost focus on what makes them so popular; They're EASY to maintain!
Ok, so Linux and MS are both popular, because of relative ease of use. This is argueable, because ease at doing what? They are really two seperate things; But, this is only because one is a dog and the other a cat, and cats get fur-balls, which require spit-up sessions, where the owner has to wait....
To me, your most interesting point is the one about porting SunOS to x86; you may not be old enough to know this but that was done, by Sun, back in the 80s when Intel introduced its first 32bit CPU: the 80386/80387 combination.
SunOS, of course, had a full 32bit GUI environment at the time but PC-dos was still limited to 16bit blocks with a 4bit latch to give it 16 blocks of 64K. ten of them user accessible.
Thus when Microsoft ported Excel and Word from the Mac they had neither a GUI nor a 32bit environment to run on and for some time more people -apparently including Microsoft's own developers- ran the product under the SunOS dos emulation than on PCs.
As for the rest of what you say, well, SCO is going to win on merit; Solaris handles rpm; the Sun desktop system so rapidly gaining popularity was put together under Solaris for SPARC and ported first to x86 and then to Linux; and people who finds MS "easy" to maintain probably don't do their own security management.
By legal and technicial definations Linux is not actually Unix. There is one company that owns the Unix Trademark (the open group). I think you're asking the wrong question anyway. Unix is something you have to pay to be able to call yourself. On top of that, Linux is a kernel. Unix is not just a kernel (kernel + userland). A more appropiate question might be "Is distribution Y POSIX compliant". There's too much clutter and history with the term UNIX. When you've got something that stuck in history, it becomes almost impossible to pull it out of the tar pits. The problem is, if Linux is UNIX, then there's a lot of things we can't change, because they are too closely tied to UNIX.
. . .
. . .
There's just too much variation on how a Linux distro is assembled. The varation is a great thing because then you can get specialized tools for the right job. But, then you lose your ability to fit into a defination. If Linux fit the defination of UNIX where would it end? If I make a linux based PRV using diet libc and busybox, do I have a UNIX PRV? I'm still using the linux kernel, so it's still Linux. What if I remove the CLI and make it a web configurable mail server. Is it still UNIX then? UnixWare doesn't do cool stuff like that. It probably never will. It's stuck in the rigid defination that really serves little purpose today.
Quite right; look at trademark and legal issues and linux isn't Unix. Look beyond that, however and it is.
You are also right about special versions not being Unix in the sense of being complete implementations meeting the legal standard for trademark use. I maintain, however, that even embedded versions of Unix are Unix by virtue of heritage and purpose. That's the opposite of the legal view; but I can live with that.
You end your article by saying:
"Linux is Unix, and no ifs, buts or maybes about it."
However, consider the first sentence of your latest reply, which can be paraphrased like this:
"[IF you] look at trademark and legal issues ... [then] linux isn't Unix. [BUT l]ook beyond that ... and it is."
Something's not adding up here...
But anyway, doesn't the Open Group control the *functional* definition of UNIX as well as the trademark? So however you look at it, the actual answer to whether Linux can be called UNIX is "Not unless the Open Group certifies that it satisfies all the requirements."
Linux will never be UNIX. UNIX is a complete operating system and Linux is just a kernel. The complete Linux operating system is GNU/Linux, and it's composed by the Linux kernel and some GNU utilities. What is GNU? Gnu's NOT Unix.
As the creators defined, Linux can't be UNIX, because there's no UNIX code in it (except for some contributions, if any). Why there's no UNIX code? Because Linux was written "from scratch", being always "UNIX-like" but not mixing. GNU/Linux is POSIX compliant but it is still a different thing: it's GNU/Linux.
Another thing: Linux is free, and its concept is just (or was just) educational. UNIX is for commerce. Linux grew up because of its characteristics, and now it can be used to do anything you want. Believe me... there's an enormous difference between both.
Unix is not commercial only, most every *BSD OS is free (unless you count windriver), and works just as well as a home desktop system as Linux, and Solaris is free (in price) for educational/non-commercial purposes.
The reason the name UNIX is important is because of what it symbolizes. It encompasses a desire to work with the community to ensure that any software designed for it can easily be ported to a new hardware/software platform that is also unix compliant. That is the reason you have to have open group approval. That is what the Unix93/95/98/03 part means. It all comes down to common APIs.
Linux is NOT Unix, no matter how you look at it, for this reason. To my knowledge, Linux is not even fully POSIX compliant. The Linux APIs are changed at whim, leading to a large amount of software that will not compile cleanly on any form of Unix. The kernel team does not go for Unix compliance certifications both because it cannot currently achieve it, and because they have no desire to. Linux is no better than Windows in this aspect.
If you use the author's reasoning of "A better idea, therefore, may be to look at what the product is intended to do", then it has nothing to do with legal reasons, it all comes down to the APIs used by the system. Using this view, it is not Unix by any stretch of the imagination. I don't see how the author can write an article on this subject and leave this out, given that it is the only valid point?
As a side note to the Unixware/Linux differences, nothing made by SCO complies with the Unix98 or later standards either, so chances are anything new added to SCO OSes since 95 was added with the intention of adding Linux API support.
As to the vast uses of Linux compared to Unix, this really comes down to the fact that Linux has more people working on obscure ideas, and more corparate backing in developement (Not commercial, eh?) than any open source Unix does.