What is UNIX, Anyway?
Lieutenant writes "Technology professionals have loosely used the term "UNIX" since the first person had to explain the difference between the Berkeley and AT&T flavors, so it's not surprising to find as many UNIX standards as there are versions of the operating system. Peter Seebach wades through the wellspring of UNIX standards and sorts them out for you, concluding that the rumors of the death of UNIX are (as usual) greatly exaggerated."
This editorial definitely seems to be for marketing purposes, being both hosted by IBM and directly confrontational about Microsoft. Still, interesting enough article; it's always tough to be brief and to the point about such a complicated subject. I especially like the author's point about the liquidity of the Microsoft "standard" API which is so touted as a counterpoint to *nix implementation -- DOS, Win16, OS/2, Win32, WinNT, WinXP, .NET, Vista... versus POSIX. Yeah, he's right, it sounds pretty ridiculous when you put it that way. That being said, the article's pretty light on the details. For those rare individuals interested in reading more than TFA, here's a little more info on UNIX and the POSIX standard.
Working in a DevOps shop is like playing in a band made up entirely of keytarists.
i don't take any reports of UNIX's death as fact without a Netcraft confirmation.
I code for this API and the sources end up being source compatible. But then there are library paths and stuff, which is why even something as homogenous as Linux is forced to create LSB standard. The API standard OTOH, is crystal clear - look at the API tables in terms of availability. And yeah, my project is called Portable.net, so I've put in my time writing portable code for various platforms (even BeOS and SkyOS). Wish the threading models worked the same, that's all :)
There is just *nixQuidquid latine dictum sit, altum videtur
Only Women Bleed (Sex, Sharia remix)
UNIX is not UNIX ! Hmm wait... no sorry I heard that or something close somewhere else.
isn't unix:
./configure && make && make install
- everything is a file
- every file is a stream of bytes
- do one thing and one thing well, Keep It Simple Stupid
- human readable/editable config files
- principle of least privilege
- services as daemon processes
- clear separation of kernel and userland (although this one is debatable)
- multi-user environment (despite the name)
- remote access facilities
- console/automation oriented, powerful shells
-
?
well, that's just a few things that come to my (linux/bsd slanted) view of what (a modern) unix is...
"There were only two things to come out of Berkeley in the 60's, LSD and Unix. I doubt that is a coincidence."
"Academicians are more likely to share each other's toothbrush than each other's nomenclature."
Cohen
"The nice thing about standards is that there are so many to choose from." -- Andrew S. Tanenbaum, author of Minix.
This post expresses my opinion, not that of my employer. And yes, IAAL.
Probably the oldest standard that people still refer to is AT&T's 1985 System V Interface Definition (SVID).
I routinely use printed Seventh Edition (Bell Labs Research) UNIX manuals, even when writing C for Linux. It also helps one remain blissfully ignorant of the 'cat -v' option and similar excrescences. Also the Tenth Edition UNIX manuals. I have to remember the changes introduced by Standard C and the like, but it's convenient to have the essence of the modern-day manual in printed form. Of course, there are some people out there who delight in using Fifth, Sixth, Seventh etc Editions on PDP-11s etc - see the PDP-11 UNIX Preservation Society, http://minnie.tuhs.org/PUPS/. I wish I had a larger garage! How much would a PDP-11/40 cost me now, anyway?
Peter Salus' book "A Quarter Century of UNIX", Addison-Wesley, 1994 (corrected 1995), ISBN 0-201-547771-5 is a good informal UNIX history.
"Those who do not understand UNIX are condemned to reinvent it -- badly."
-- Henry Spencer
Mirrordot
(Unix->VMS->WNT)
Only an american could be so ignorant of history. VMSVMS did indeed lead to NT, but had nothing to do with unix.
Indeed, the story of UNIX today is depicted in this documentary.
"I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
VMS is absolutely nothing like Unix.
Do you even lift?
These aren't the 'roids you're looking for.
Huh? Unix isn't remotely related to VMS.
Unix is not GNU.
it's funny AND true.
/ seriously thinks UNIX like systems need to go the way of VAXen.
// well, actually not so much the systems themselves, but the assinine UNIX mentality of "harder is better" and "more documentation eliminates the need for good design.", which set back Computer Science departments and academia 15 years behind industry.
/// fortunately, one of the unintended side-effects of Linux is that the mentality, at least amongst Linux users, is slowly, ever so slowly, fading away.
"There are two major products that came out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence." - Jeremy S. Anderson
Thank you
No. I'll stop using Unix when something more useful to me comes along. That hasn't happened yet, obviously.
Plan 9 could have been useful if Unix was bad enough to make people migrate.
As it is, something that replaces Unix would have to have enormous technical advantages, no social or economical disadvantages -- and a complete Unix compatibility subsystem. I think Pike has written about that effect too, somewhere...
That command is only valid for System V type variants.
It's true I tell you, feller at work's next door neighbour read it in the paper.
That's ISBN 0-201-54777-5, or 978-0-201-54777-1.
Ah. I see you've been forced to use AIX as well!
what? what is going on?
Our apologies
The IBM developerWorks Web site is currently under maintenance.
Please try again later.
Thank you.
_ In Egypt Networks: Network Solutions with a Twist
Our apologies
The IBM developerWorks Web site is currently under maintenance.
Please try again later.
Thank you.
!!
Well, maybe they're running Windows on demand!
Maybe it would be easier to see what Unix is by pointing out the weaknesses, reading "The Unix Hater's Handbook" for instance:
http://web.mit.edu/~simsong/www/ugh.pdf
Which, despite the name is not a mindless bashfest and is interesting.
--Plan9/Inferno and Lisp Machine advocate--
...we, erm, wouldn't need Autoconf?
unix brings me back to college days
back them doing assignments on windows was more fun than unix command line...
alot of people on our course got put off from ever touching unix and linux thanks to this
>...we, erm, wouldn't need Autoconf?
Actually, that is precisely why autoconf can exist.
Because Unix is a stable and standardised
API the differences between various flavors of Unix
are small enough that it's possible to write
an application like autoconf/automake that
can handle the small differences between the
platforms.
As someone who has had to write over 100 packages for
portability I appreciate that the flavors of Unix
are close enough that autoconf/automake can work.
--Johnny
This is a better documentary of UNIX evolution: http://imdb.com/title/tt0308808/
Why UNIX?
Yup. UNIX isn't an OS. It's a trademark and a standard. And Linux is a kernel, not an OS.
http://www.unix.org/
http://www.kernel.org/
Also Windows aren't OS. It's an opening constructed in a wall or roof that functions to admit light or air.
Lastly Apple is not a company. It's a god damn fruit. Why is that ESPECIALLY MacOS users don't seem to get that Apple Computers are PC!?!? Try to ask a MacOS user this. "Do you have a PC?" I bet, 99% of them will say "No, I don't have PC, but I have a Mac." WTF??
"Don't let fools fool you. They are the clever ones."
Turning a physical computer into n virtual computers that each execute machine instructions in a separate address space. Throw in a bunch of interprocess communication mechanisms (filesystems, sockets, shared memory, etc) and you get unix. The model is so successful because it is so conceptually unambitious.
lots of links to other unix stuff.
If you want your life to be different, live it differently.
Repeat after me...... AIX is not UNIX. :)
-- Given enough time and money, Microsoft will eventualy invent UNIX.
Are you sure about that? I confess that I haven't tried running old binaries on new systems (with source code available there doesn't seem to be much need) but I know that the Linus, at least, is dogmatic about making sure that the Linux system call interface is always backwards compatible. You can run binaries that were compiled against Linux < 1 unmodified today.
I'm not as confident that the same is true of userspace, but I bet it's not that different. Where there have been incompatible user-space ABI changes (glibc, gtk) the distributions I've used make the older versions available and useable alongside the newer versions.
It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
I've been working with Unix/Solaris/SunOS/Linux/AIX/AUX/BSD/ATT Unix, et. al. now for over twenty years. I mostly love the environment, I'm self-taught, and never have stopped discovering new and cool (and sometimes amazing) things about how Unix works.
I've pretty much always always been able to sit down and immediately be productive in a Unix environment. Things are stored and arranged in a surprisingly consistent way (not always in the same places, but one of a few organizations (/etc vs. /usr/etc)), and for those hard to find arrangements you need only know "find".
Considering how many different Unixes there are it's actually impressive how compatible and consistent they are across the Unix universe. It's only my opinion, but I find adapting and adjusting to the Unixes far easier than the various versions of Windows.
"With rare exceptions, porting hassles between UNIX systems are long forgotten."
Yeah right. We're down to complaining about porting apps between versions of the same distribution of linux and here's a guy claiming that porting hassles between UNIX systems ar long forgotten. Come on, you can't claim that with a straight face even if you are working for Microsoft.
It's not like your 1993 binary of wolfenstein will work out of the box on win XP but the chances of binaries from that era doing something are a lot higher than say running any unix binary from that era on the latest Red Hat/Debian/Whatever. Compiling with the latest GCC almost guarantees running into porting issues, never mind the particular OS you are doing that on. Probably hello world works fine but anything doing something less trivial is likely to not work at all. Generally problems increase as you (necessarily for non trivial stuff) depend on libraries not part of any of the Unix standards. For example, these standards do not cover anything related to graphics or user interfaces so you're fucked if your app is non trivial enough to include a (G)UI.
Jilles
Clearly you were never forced to program anything to the Win32 API.
There's a common subset of functions available on both 9x and NT flavors of Windows. (With different bugs and sometimes different supported flags, different restrictions on use, etc). Then there's a bunch of functions that only work on NT-based flavors of Windows, not 9x-based. And the opposite is also true. Then XP came along, then Server 2003, each adding a bunch of new stuff to the API that Microsoft (unfortunately) did not go back and also add to the earlier versions of Windows.
There really are at least 3 distinct flavors of the Win32 API, and you have to be careful what functions you use if you want your program to run on all three of them.
For an example, check out the documentation for the CreateWindowEx function.
If you scroll to the bottom, they describe several of the differences in the behaviour of this function on different versions of Windows ranging from 95 to XP.
This situation could have been avoided if Microsoft had had the foresight to separate the Win32 API implementation from the rest of the OS so it could be upgraded independently.
heheheh I'm beginning to think that finding a mention of Amiga in articles covering aged, long-standing, or break-through technologies or philosophies, or just places of honor in computing history, is almost like a "Where's Waldo" using web pages as the pictures :)
(Uh, are we a cult yet?)
I vote for syslog as the most drug-induced facility.
Don't piss off The Angry Economist
OLE
COM
COM+
DCOM
There are are probably more, but it seems like MS changes APIs every few years.
putting the 'B' in LGBTQ+
In all fairness, it all came from the same tradition - but when AT&T took back the copyright on their original UNIX implementation - that's when it started to seriously fragment into AIX, HPUX, APUX, DGUX, Solaris, and BSD's. Evolution slowed down drastically and left the UNIX community wide open enough for Microsoft to drive a train thru. To compensate, the UNIX community tried to force thru all these standards initiatives (renember CDE?, Motif), but they always failed to stem the tide.
Then Linux came along, and started to undo the damage that the copyright fragmenting caused to begin with because it was under the GPL, and ever since then it has been the beginning of the end for Microsoft and Linux has taken off in the server space and now it's getting ready to attack the desktop. Moral: free markets are about freedoms and not markets. When you have freedoms the markets will take care of themselves, but when you sacrifice freedoms for markets - you will eventually loose both.
isn't it? that what I was told...
-- it's ridiculous how many people misspell ridiculous... (damn, damn, damn...)
Hard to believe that UNIX came out of Berkeley in 1960's since the first tape from Bell Labs arrived in December 1973. I'm guessing the CS department wanted to have a replacement for Kronos that went away when the CDC-6400 'B' machine got shipped off in January 1973.
If you consider the evolution of component architectures, the evolution of programming for the Microsoft platforms is a little more complicated. Really, the Microsoft .NET platform is just a replacement for COM and the Win32 API and is inspired by Sun Microsystems' Java platform. COM and ActiveX controls stem from the older OLE (Object Linking and Embedding) and VBX (Visual Basic eXtensions).
On vit, on code et puis on meurt.
the linux userspace/kernelspace interface is changed a LOT. Sometimes it's minor stuff that only affects a few applictions (like changing the /proc/ file format), but they have completely broken the system call abi, so linux 1.0 compiled binaries will not run on a recent distro.
Do you even lift?
These aren't the 'roids you're looking for.
You generally can run old linux programs on current Distros, but you need to install the relevant libc/glibc/uclibc compatibility layer. You can even run many Solaris and BSD binaries on Gnu/Linux with the right compatibility layers.
The thing most windows users don't get is that windows has those compatibility layers there by default, whereas most Distro's don't install them as so few users actually need them.
The Same goes for BSD, FreeBSD 5 can run FreeBSD 1.0 binaries, but you need to install the relevant compatibility packages.
On the other hand, some operating systems do have consistent ABI's, Solaris and MVS (now known as zVM?), But (in the case of Solaris) it's only really an advantage to those few suckers that got stuck with Binary-only software and no upgrade path.
Anyway, don't buy custom software without the source code, you *will* get shafted.
What could be better than a jet powered motorcycle? http://www.youtube.com/watch?v=u8l6GTHLSWE
From http://rinkworks.com/stupid/cs_comeagain.shtml
One of the best quotes I've ever heard was from a colleague of mine,
"Unix isn't."
"I reject your reality, and substitute my own!"
I think that the whole discussion can be summed up, just as the article says, with:
"We reject kings, presidents and voting. We believe in rough consensus and running code." -- Dave Clark
So in answer to "What is UNIX?", UNIX is code that runs based on general agreement of the masses. This is why it will not die, even LSB is discussed in the article and rightly so, it falls into the same category. A loosely held standard that defines what the general masses of Linux distributions use.
No hard and fast standard would ever survive in the *nix world, ever system is unique to its purpose.
Nice article, IBM churn them out and every so often a good one turns up.
BOO
[i]"The fact that MS userland is hooked into the registry and alows root level access is the reason that crap binaries are so easy to create."[/i]
For a sentence that neither makes sense, nor contains any accurate information, it sure contains a ton of jargon.
Are you a consultant that specializes in Windows>UNIX migrations?
I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
If I remember correctly, the early versions of NT had their own seperate API, which MS eventually dumped in favor of Win32...
How to enable garbage collection on a system without protected memory: #define malloc() ((void *) rand())
The middle-ground system I can imagine happening sometime soon is this: a balanced user interface standard which specifies a unified set of best practices for both CL and GU interfaces. The GUI is all about rapid and focused information retrieval, while the CL is all about rapid and focused information manipulation. GUI is therefore good for discovery - it's natural for new users and can manifest in varying degrees of sophistication. Every GUI program presents a command-line alternative for every GUI-accessible function (and perhaps more, as CLI is well suited to esoterica). A general terminal client with a customizable GUI discovery mode provides an interface for CLI-only programs.
[|]
"everything is a file"
Yes, it's the original "leaky abstraction". We're talking buckets of water here.
Or...
"UNIX is like a box of chocolates. You pick one that looks nice, and it turns out to be really hard."
"Proudly Posting Without Reading The Article"
The best thing about Plan 9 is that lovely and cute bunny! Oh man, I just LOOOOOOOVE that Glenda bunny!
8 of 13 people found this answer helpful. Did you?