tutes-dump/site-tutorials/unx/node4.html

250 lines
8.1 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2K.1beta (1.50)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>3. What is Unix?</TITLE>
<META NAME="description" CONTENT="3. What is Unix?">
<META NAME="keywords" CONTENT="unx">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="LaTeX2HTML v2K.1beta">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="unx.css">
<LINK REL="next" HREF="node5.html">
<LINK REL="previous" HREF="node3.html">
<LINK REL="up" HREF="unx.html">
<LINK REL="next" HREF="node5.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html175"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="../img/latex2html/next.png"></A>
<A NAME="tex2html171"
HREF="unx.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="../img/latex2html/up.png"></A>
<A NAME="tex2html165"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="../img/latex2html/prev.png"></A>
<A NAME="tex2html173"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="../img/latex2html/contents.png"></A>
<A NAME="tex2html1"
HREF="../"><IMG
ALIGN="BOTTOM" SRC="../img/latex2html/root.png"
ALT="root">
</A>
<BR>
<B> Next:</B> <A NAME="tex2html176"
HREF="node5.html">4. Some Basic Commands</A>
<B> Up:</B> <A NAME="tex2html172"
HREF="unx.html">Introduction to Unix &amp;</A>
<B> Previous:</B> <A NAME="tex2html166"
HREF="node3.html">2. Introduction</A>
&nbsp <B> <A NAME="tex2html174"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html177"
HREF="#SECTION00410000000000000000">3.1 Short Answer</A>
<LI><A NAME="tex2html178"
HREF="#SECTION00420000000000000000">3.2 Long Answer</A>
<UL>
<LI><A NAME="tex2html179"
HREF="#SECTION00421000000000000000">3.2.1 My Opinion</A>
<LI><A NAME="tex2html180"
HREF="#SECTION00422000000000000000">3.2.2 Another Opinion</A>
</UL></UL>
<!--End of Table of Child-Links-->
<HR>
<H1><A NAME="SECTION00400000000000000000"></A>
<A NAME="unx-what-is-unix"></A>
<BR>
3. What is Unix?
</H1>
<P>
What is unix? That's a loaded question.
<P>
<H1><A NAME="SECTION00410000000000000000">
3.1 Short Answer</A>
</H1>
<P>
The short answer is ``Unix is an operating system''. So is
Gnu/Linux, which is often just called Linux. So are HP/UX,
AIX, NeXT STEP (now called Apple Macintosh OS 10), &amp;
Microthought Winders (often called many uncomplimentary
things).
<P>
If this short answer is enough for you, congratulations on
knowing the value of keeping things simple. Now skip ahead
to Chapter&nbsp;<A HREF="node5.html#basics">4</A> ``Some Basic Commands''.
<P>
<H1><A NAME="SECTION00420000000000000000">
3.2 Long Answer</A>
</H1>
<P>
The long answer is ``It depends on who you ask''.
<P>
<H2><A NAME="SECTION00421000000000000000">
3.2.1 My Opinion</A>
</H2>
<P>
In my opinion, unix is a description of the function of an
operating system. I even say that unix is an Application
Programmer's Interface (API). Any operating system which
implements the unix API is a unix; it's an implementation of
unix. Gnu/Linux is a unix.<A NAME="tex2html4"
HREF="footnode.html#foot51"><SUP>3.1</SUP></A> Gnu/Linux is often called
Linux, but strictly speaking, Linux is a unix kernel, but
not a whole unix operating system. There are many other
implementations of unix. I can name original BSD, OpenBSD,
FreeBSD, NetBSD, HP/UX, AIX, Minix, Apple Macintosh OS 10,
NeXT STEP, QNX, &amp; Lynx. There are probably others.
<P>
Now for some legal bullshit. ``UNIX'' is a trademark of
<A NAME="tex2html5"
HREF="http://www.opengroup.org/">The Open
Group</A>. From what I can infer
from their web site about their opinions of what unix is,
they would agree with me that it's a description of the
function of a family of operating systems, but they would
also add ``that we have certified to be UNIX''. So legally,
it's not a UNIX unless The Open Group certifies it as a
UNIX. So a lot of those operating systems I listed as
unices are not UNIXes. It's a thoroughly sad case of
legalities getting in the way of simplicity &amp; sanity.
<P>
Anyway, I say that if an operating system behaves like unix,
then it's a unix, though not necessarily a UNIX<IMG
WIDTH="31" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$^{(tm)}$">.
<P>
<H2><A NAME="SECTION00422000000000000000">
3.2.2 Another Opinion</A>
</H2>
<P>
Another opinion, which I don't share, is that Unix is a
particular product. HP/UX is another. AIX is another.
Gnu/Linux is another. You get the idea.
<P>
Fine, except that there is no product simply called
``Unix'' for sale today. You can't even point at a product
that is the direct descendant of the original Unix that
Ritchie &amp; Thompson wrote at AT&amp;T. Their Unix was <EM>the</EM> definitive Unix, the original, the one named Unix. You
can't buy it today, methinks. And many of those that you
can obtain today shared code with the original Unix. BSD is
Unix as modified by students at the University of California
in Berkeley. That's where sockets were invented. BSD
branched into many implementations, several of which are
alive &amp; well today. Theoretically, each of those
implementations has at least some of the original Unix code
in them. Yet somehow BSD isn't a unix? Get real. I'm sure
there are similar examples of cross-pollination between the
other unix operating systems available today.
<P>
Another problem with the claim that BSD, Gnu/Linux, &amp; the
others are not unix is that it takes little effort to write
a program that runs on all of them. There are enough
differences that a non-trivial program requires a little
care to be portable, but it's not like portability concerns
affect the architecture of your program. All in all, it is
easy to port code between HP/UX, AIX, Gnu/Linux, &amp; the
BSDs. This isn't an accident. Those products are
implementations of a single idea of what an operating system
should be. That idea needs a name so that when you ask me
what kind of operating system I program for a living, I
don't have to reply with ``I'm an HP/UX, Gnu/Linux, AIX,
FreeBSD, NetBSD, OpenBSD, QNX, &amp; others programmer''. I
say the name for that concept is ``unix''. If not, then
it's POSIX, but POSIX is also a trademarked term with a
certification schedule from The Open Group (together with
IEEE).
<P>
So somewhat out of contempt for our legal system's petty
concerns for terminology, I say it's all ``unix''. There
you have it, in more detail &amp; controversy than anyone with
a sense of perspective would ever want.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html175"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
SRC="../img/latex2html/next.png"></A>
<A NAME="tex2html171"
HREF="unx.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
SRC="../img/latex2html/up.png"></A>
<A NAME="tex2html165"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
SRC="../img/latex2html/prev.png"></A>
<A NAME="tex2html173"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
SRC="../img/latex2html/contents.png"></A>
<A NAME="tex2html1"
HREF="../"><IMG
ALIGN="BOTTOM" SRC="../img/latex2html/root.png"
ALT="root">
</A>
<BR>
<B> Next:</B> <A NAME="tex2html176"
HREF="node5.html">4. Some Basic Commands</A>
<B> Up:</B> <A NAME="tex2html172"
HREF="unx.html">Introduction to Unix &amp;</A>
<B> Previous:</B> <A NAME="tex2html166"
HREF="node3.html">2. Introduction</A>
&nbsp <B> <A NAME="tex2html174"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<ADDRESS>
Gene Michael Stover
2005-07-07
</ADDRESS>
</BODY>
</HTML>