have a long history: see UnixHistory
The word Unix
has three meanings: two "narrow" ones and a "broad" one. The first narrow meaning is "The original AT&T Unix systems and anything else derived from the same code base"; the second is "Anything officially branded as Unix by TheOpenGroup?
" (see http://www.opengroup.org/
). The broad meaning, which is probably used about 42 times more often than either of the narrow meanings, is "Anything that looks and feels like Unix (either narrow sense will do) to users and programmers".
All the commercial systems that you think of as "Unix" are probably Unix in all three of these senses. Of the free "Unix"es, the BSDs (FreeBsd
) are derived from original Unix code but aren't "Unix branded", and Linux is neither. (I think Caldera are moving towards getting branded. Insofar as they're trying to replace all Linux with branded Unix which will pay them license fees, perhaps.
Actually, BSD's history is a little more involved. It started as Bell Labs (aka AT&T - the history of *that* is also very involved, but beyond the scope of this page!) Unix, but was completely replaced over a period of years. Only after completion did it become distributable under the BsdLicense, so BSD is not Unix in the sense of being Bell Labs Unix.
Unix systems sort-of divide into "SysV" and "BSD" varieties, depending on their origins. (There used to be only two sources of Unix systems: AT&T and Berkeley. AT&T produced "System V" and Berkeley the "Berkeley Software Distribution".) It's only "sort-of" because there are plenty of Unixes that take features, ideas or code from both sources.
typically support the PosixStandard
Some Unix systems include:
Some closely related (UnixLike
As of OS X 10.5, MacOsx is a Unix as per the second narrow definition above.( http://www.opengroup.org/openbrand/register/apple.htm )
A word about Linux. Strictly, Linux is just the name of the kernel: the portion of the OS that's responsible for things like memory management, the filesystems, process handling, and so on. To do anything useful with Linux, you need a whole host of other programs. On a Linux system, many of these come from the GNU project; for this reason, some people prefer to say "GNU/Linux". There are plenty of components of typical Linux systems that come from other sources too, though (for instance, the X server and the MailTransportAgent?
Some people hate GNU and thus try to have a GNU-less linux system. The single large major flaw is that GCC is really the only worthwhile free compiler in town, so the GNU-less projects have to use it.
But the Linux kernel is licensed under the GPL, which effectively makes it just as GNU as GCC in my book. I suspect I'm missing your point though -- what would people hate about GNU, other than the license?
owns the copyrights to GCC; all contributors to GCC must assign copyright, else their code does not get in Likewise for most of the other "Gnu tools".
The FSF does not
own the copyrights to LinuxOs
; that copyright is held collectively by LinusTorvalds
and the other developers. Including many large corporations--IBM holds copyrights to part of Linux, as does Novell, Red Hat, etc. The only requirement is that the code be licensed under GPL.
Many don't like the politics and philosophies of RichardStallman
; and try to avoid Gnu-anything for that reason. IdeologicalPurityIsIdiocy
seems to apply here.]
Well, actually the LCC compiler ( http://www.cs.princeton.edu/software/lcc
) is not bad. It is C only, though; no C++, Objective-C, Ada, Pascal or Fortran front-ends. A more pressing problem is that the Linux kernel is GCC-only, so using Linux means using GCC, if only to compile the kernel. [Another problem is that LCC's license is at least as bad as the GPL and isn't even "free" by some definitions. (This paragraph should probably be axed.) (No, just refactored to a new page.)]
compiler was discussed here as another alternative, but now (2012) seems to be a dead project.
The view taken then (2008 or earlier) was that as the LinuxKernel
is written in GnuCee
, so it can only be compiled with the GnuCee
There is now (2012) the alternative of Clang (see CeeLanguageFamilyFrontEnd