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.
From XP (Unix->VMS->WNT) to MacOS...for being a dead OS, it's certainly got quite a social life.
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
Not only is UNIX dead, it's starting to smell really bad." Rob Pike - circa 1991
The inventors of Unix don't use it any more, isn't that enough for you people.
The Good, the Bad, and the Ugly: The Unix Legacy (pdf)
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
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.
UNIX Is Not linuX
"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
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
The statement about how many platforms Microsoft have is not entierly fair. As far as desktop applications are concerned (not device drivers and not server applications), the API (usually referred as the Win32 API) is the same starting from Win95, it's practically only extended since then. That is, desktop applications that were written for Win95 run on WinXP (and most certainly on Vista too) without recompillation or emulation or any trick. And Windows is traditionally about dektop applications (office, internet borwser, mail) and multimedia and games, not about servers.
AT&T sold UNIX to the SRO group who believed they could use ownership of the UNIX code to sue Linux and make a load of money by 0wning Linux in the process, shutting it down, and selling their own brand of UNIX (UnixWare) in its place. The net result was that the court said that Linux was NOT a rip of UNIX. AT&T knew this anyway which is why they sold it in the first place. LINUX effectively killed the future of Bell Labs' UNIX. If you want to use UNIX then you can buy UnixWare, IRIX, HP-UX, AIX, all of which are now mostly useless to the world at large. LINUX is replacing these mission critical OSs. BSD is the other option. See this diagram for a brief history of Unix Development http://en.wikipedia.org/wiki/Image:Unix.png
Yes it goes to show just how inefficent windows apps are because it can reverse its instruction sets all the way back to 386.
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.
The message of the story is, "Look what a mess UNIX is".
That's what Zonk wants you to remember.
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
I use Tomahawk Desktop. Is a Linux an Unix? If so, on what grounds people call Unix is dead?
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
My momma always said, "UNIX is like a box of choc-a-lates. You just never know what you're gonna get."
The countless worm and virus hackers have counted on this for years. 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.
Since when can you not create core linux/gnu code that is portable? I can take any good C++ routine and use it unmodified in any Linux varient. If all you are worried about is a standardised button cluttered windowing gui then Microsoft is where you belong. However if creating original powerfull core applications that can be portable then the gnu c compilers are just as good and one hell of alot more secure.
The only reason why some people need to use Microsoft compilers is so that they can easily hide code. We are talking about a different culture here, by and large gnu coders want to be able to share and be proud of their code.
I am afraid that the Microsoft way of doing software has created a criminal coding backwater. Afterall being able to peddle garbage binaries and hide functionality is what the MS compiler UI and API's are all about. Caveate Emptor, and besides who pays for MS compilers anyway, certainly not the crackers writing all the VB and C# and core C Windows worms and viruses and spyware!
OLE
COM
COM+
DCOM
There are are probably more, but it seems like MS changes APIs every few years.
putting the 'B' in LGBTQ+
Am I the only person who knows anything? Unix is SCO... duh!
They own it afterall.
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.
He was correct though, VMS was the design "forebear" of NT-based OS' by MS, & UNIX is not either (though they share some similar design patterns in various areas)... Same architect in Mr. D. Cutler on VMS by DEC & NT-based OS by MS.
He should not have used the word "American" as some sort of slur though - after all, what is the United States? A conglomeration of many nations.
(In essence, putting down the U.S.A. when done by others from other nations? Is really putting down your own, because after all, we ARE all of you others...)
APK
Non-techy's get very confused about unix, so here is a little explanation I have come up with that I find works pretty well.
I start by explaining that unix is a **type** of operating system. It's like a minvan is a type of car. Many different companies make minvans, and each is made up of different parts, but they are all still minivans because they have the same basic design, such as a short hood, a front-mounted engine three rows of seats, and a big door on one side. That distinguishes a minivan from other types of motor vehicles that have the same basic components, like motors and doors, but arranged differently.
It's the same with unix: many different companies and non-profit groups make unix-type os's, and they are all unix because they have the same basic internal design, which in the case of an os is known as the "architecture" Just as with automotive vehicles, there are certain components that all os's have. Different os's arrange them in different ways, and there is one particular pattern that is known as a unix-type operating system. (I know this isn't the whole story, but it is enough for non-techys).
Then I explain that this is unusual in the os field, because a given architecture is usually made by only one company, but many different organizations produce a unix-type operating system. However, Unix is produced by many different organizations.
Also, the term "UNIX" is a trade-mark, and so only certain unix-type systems get to use it, while those unix-type systems that don't have legal permission, like linix, are usually referred to as "unix-like."
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 work in education and one of my many responsibilities is student labs. In these labs, which run XP, there are around 25 different educational apps that were written between 1996 and 2000. Since moving from 98 to NT bases OS's in the labs, we've only had to stop using two or three apps due to complete incompatibility. We have three Win98 boxes left on our entire network now, due to an old, obscure, Access97-based app that does not work on NT, so yes, we have felt the sting of legacy apps not working, but overall, backwards compatibility seems pretty damn good to me. The most common problem I've seen are apps trying to write to places where limited users are not allowed to, and a few permission changes are all that's neccessary to get them to work.
What kernel version was the break? I can't find it.
[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())
Man that is a confusing article. And here I always managed to sum it up as --
Am I working on a system V or BSD varient.
And the most important part -- Do I have man pages?
But, I usually only work on Irix, HP-UX, SunOS, True64 or Linux.
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.