is osx a true unix system

Some more tidbits on strengthening the argument of X is broadly nix...
Hear is what Apple states in there Inside MacOSX developers docs.

Integrated with Mach is a customized version of the BSD operating system (currently 4.4BSD). Darwin's implementation of BSD includes many of the POSIX APIs and exports these APIs to the application layers of the system. BSD serves as the basis for the file systems and networking facilities of Mac OS X. In addition, it provides several programming interfaces and services, including¥ the process model (process IDs, signals, and so on)¥ basic security policies such as user IDs and permissions¥ threading support (POSIX threads)¥ BSD socket

Here is a snippet from the whatis site about POSIX

POSIX (Portable Operating System Interface) is a set of standard operating system interfaces based on the UNIX operating system. The need for standardization arose because enterprises using computers wanted to be able to develop programs that could be moved among different manufacturer's computer systems without having to be recoded. UNIX was selected as the basis for a standard system interface partly because it was "manufacturer-neutral." However, several major versions of UNIX existed so there was a need to develop a common denominator system. Informally, each standard in the POSIX set is defined by a decimal following the POSIX. Thus, POSIX.1 is the standard for an application program interface in the C language. POSIX.2 is the standard shell and utility interface (that is to say, the user's command interface with the operating system). These are the main two interfaces, but additional interfaces, such as POSIX.4 for thread management, have been developed or are being developed. The POSIX interfaces were developed under the auspices of the Institute of Electrical and Electronics Engineers (IEEE).POSIX.1 and POSIX.2 interfaces are included in a somewhat larger interface known as the X/Open Programming Guide 4.2 (also known as the "Single UNIX Specification" and "UNIX 95"). The Open Group, an industry standards group, owns the UNIX trademark and can thus "brand" operating systems that conform to the interface as "UNIX" systems. IBM's OS/390 is an example of an operating system that includes a branded UNIX interface.
There are substantial diferences between Linux and a true UNIX. Ask your friend about the memory device on the '/dev' directory. I think it's called 'kmem' or something like that.

Linux has this 'kmem' directory which is a filesystem representation of the contents of the memory of the system (kernel space, user processes, etc). It is something cool and geek-like, but not too useful and definitely not widely used (remember it's not standard UNIX).

Imagine a particular system administration program uses this feature on Linux, it wouldn't work on any other UNIX out there. Wouldn't even compile.

As far as I know it's not on POSIX and not on UNIX, so tell your friend to keep his mouth shut.

Moreover, the TCP/IP functions and API (sockets, etc.) were first developed on BSD, which MacOS X is based on. In fact, the original UNIX implementation at Bell Labs was networkless. The tcpip API derives substantially from the original (open/read/close) UNIX API philosophy, feels more like a hack.


I prefer to say UNIX is craaap and OS X is not UNIX.

Actually I prefer to say eunuchs.

When you look at the history of UNIX you come to realize what crap it is. UNIX was designed to run on one machine using one processor. It's taking years and years to break free from it's non-multithreaded roots. When you look at the file hierarchy of UNIX you realize how utterly stupid it is. /etc/? What were they thinking? The C language was purposely written to be unreadable. It's a form of job security and gave software engineers an ego trip. Then look at the dozens of common programs which are used in a stanard distribution. Do they share common interfaces? Is there some logic behind the choosing of flags and other arguments? Is there a general stdin and stdout formatting? Even sockets was a hack. The TCP specification was written and somebody figured out a quick and dirty way to implement it, and then it was extended and re-extended. Heck, most of the network stack modifications are non-standard and don't follow any universal API, not like STREAMS.

UNIX is a heap of hackware and always has been. It was a quick and dirty way to share expensive machines and was poorly designed from the very beginning. The past 30 years has mostly been trying to fix mistakes made in the design in years prior.

The root directory was originally used like a home directory. That's why you have this moronic file hierarchy like etc, var, tmp. It was cleaned up slightly when /usr was made, but they failed to make a per user pref and lib and bin etc. This demonstrates how multiple users was a hack on a system designed for single user. The same is true with trying to make a non-multi-threaded OS multi-threaded.

The fact that everything is consolidating around UNIX tools and other stupid UNIX-isms just shows how entenched we are. We will never get rid of it, we'll only grow AROUND the problem. It'll remain like some appendix or other useless organ only that if ou try to remove it you'll die. More like a talking conjoined fetus on your forehead.

The only reason so many people love this system is because it's the most akward, contrived, ridiculously complex heap of hackware they feel superior my mastering it and secure in the thought that somebody somewhere has this talking fetus on his forehead which will only shut up if you hire one of these engineers to prepare special conjoined fetus food and feed it with a straw made of rare orchid stalks.

So if apple switched to it, they must have thought that the OS9 core was worse. After your post, that's unimaginable!

Well .. we're getting away from OS X specifics here and entering the realm of the aforementioned religious wars ...

But I essentially agree with what you say, strobe, that Unix is a hack upon a hack wrapped around a hack.

The thing is that ANY modern operating system - whether an enterprise platform, or a consumer operating system, is a hack. DOS/Windows is a prime example - you had a single user, single task, single processor, text-only, 16-bit OS that was hacked for 32 bits, then for [proprietary] networking, then for multiple users, then for GUI, then for standard networking, then for multimedia and so on and so forrth. Similarly you have the Macintosh - a state of the art, amazing, and most modern OS when it came out ... but hacked to oblivion over the years - again from single user, single processor to networked multiple user, from 68k to PowerPC ... etc.

I am not familiar with industrial strength platforms - but I am sure someone knowledgeable in those will be able to cite why their favourite platform is also hack upon hack upon hack.

There have been attempts at rewriting things from scratch. BeOS comes to mind with a vengence here - an excellent idea - OS completely built from scratch to be legacy free and architecture independent. Designed with multiprocessor, multitasking, multimedia machines in mind, and incorporating object oriented design, and every other good design concept currently in vogue. Quite well executed too

Windows [OS/2] NT/2000/XP also comes to mind - built from scratch. Again, designed to be legacy free and architecture independent, with multi-processor, multi-user, and multi tasking support in mind. Also somewhat Object Oriented. Also reasonably well executed in my opinion (despite a few things like security issues, and of course it being traditional to despise MS regardless)

However, they have not been very successful in replacing the old guard. Most Mac and Windows users do not know what BeOS is. Most Windows 98 or Windoes ME users would not use Windows NT or 2000 unless forced to do so at work.

I have a feeling that Microsoft wanted to get away from the DOS legacy a long long time ago. When they were working with IBM on OS/2 NT (that later become Windows NT), I think they realised that hacking DOS was not going to be good enough. They were probably trying to get away from the DOS codebase since then, and the Win32s subsystem for 16-bit Windows and even Windows 95 (despite the huge fanfare on launch) were really just side projects to get something out there, and to bide the time while they came up with a proper implementation from scratch. It took them six years to finally say goodbye to DOS and the hacks built around it (with Windows XP being the first WIndows NT based consumer operating system, to be released)

The funny thing is that even these so-called hack-free systems are still quite hacked. They had to be in order to be accepted in the broader world. For example, BeOS has a POSIX subsystem, all the GNU utilities and a Unix shell - obviously hacked! Windows NT has a 16-bit Windows on Windows subsystem - nice shiny new OS hacked to run older apps inside it. The Windows registry (in NT/2000 and Win 95/98/ME) is quite obviously a single-user to multi-user hack when you look at it's structure. Moreover, I am told that this so-called designed from scratch OS has a lot in common with the 30-year old VMS!

The thing is that the industry, or the user community, is moving way way faster than the OS developers can keep up with. We talk about hardware growing faster than software and so on ... but users (or I should say uses - the things we do with our computers) are growing way faster than any of these combined. It is VERY hard to make rapid changes to something as core as an OS. And you need to take care of so many things when changing the OS - hardware support, backwards compatibility, stability, consistency, migration from older models to newer models (or APIs)

The funny thing is that Unix, despite all these shortcomings has overscome a lot of these problems ... it has some VERY good things going for it

1. Industry Support: Anyone who is anyone in IT today has a their own version of Unix - whether it is IBM, HP, DEC (Compaq), Sun, SGI ... and despite a few factional differences, almost any new development on one version spreads to the other versions quite quickly. These people have a lot of resources at hand, and a lot of very important (=wealthy?) customers relying on them to be up-to-date and correct. This has to be good for Unix in general

2. Academia and Open Source: They say that the most important innovations occur at the fringes of society. In the IT world, this fringe it probably defined by the lone geek in some cold college lab hacking some amazing new code. With Unix rooted so deeply in academia, having so many smart people (as well as a fair share of incredibly dumb ones!) working with it - learning about how OSs are designed from studying Unix, looking at the source code and things like that - has to be one of the best things happening to Unix in terms of innovation. I don't think I have to go over all the wonderful technology that has changed our world that started off with some maverick student somewhere

So anyway ... the point I am trying to make is that Unix may be craap - but it is good craap! It is tried and trusted, and yet it is rapidly changing. It has far more industry support than any other OS. There are probably more people working on Unix-related applications than on any other platforms, and there are certainly more people studying Unix than any other OS.

What this means is that with more eyeballs and fingers working with Unix, while the industry matures, more and more of the crap hacks get improved, and then replaced altogether, and innovation and improvements - in terms of new features, bug fixes, security hole fixes etc. - are all done far faster than anything else that is non-standard, non-industry-supported - however good it may be.

Also, you will see the focus of the action shift from the core OS to higher level stuff such as GNOME (as an application platform, not just a UI), the OS X Native APIs, and other similar things, as well as the web being the new platform.

gnome is craaaap too, and has an extra "a" than UNIX's craaap.

Eventually what will happen when we are all dead and buried is fewer and fewer programs will be dependent on UNIX while more and more will be dependnet on a protocol. By then the PC will be dead and everything will be embedded.

Unfortunately that will take decades because 90% of the world's programmers are working within the current framework.

Java isn't helping either. Kind of ironic given how that was one of the revolutionary things Java was supposed to bring about
I dont really like GNOME either...
Ised it as part of linux PPC.... bad bad experience.

brw can someone define the essence of an embedded system ???

it means instead of having one computer like a PC everything you use has it's own computer.

To use an example off the top of my head, instead of using Painter on my PC, a painter-like program may be embedded in a drawing tablet.
Mac OS X is, if not fully, then partially, Unix. Otherwise, Apple could be sued for saying so. :D

I, too, don't know the intricacies between monolithic kernels and microkernels. But try asking your friend this, "Is Linux UNIX?" The answer is no. Linux is UNIX-like, but is not UNIX. It's a flavor of Unix, but is not Unix. As was mentioned earlier, Unix is from Bell Labs, and all other derivatives/variants are Unix-like.

You can ask the Linux people to verify this for you, too. :)
Well, there is support for the mouse in the CLI in Linux. They use it for copying/pasting code across virtual screens or within the same screen. :)

Oh, the one-button mouse is simple, and simplicity has its advantages. The second and third mouse buttons simply makes things faster, but that doesn't mean it offers features unavailable to single-button mouse. :)
As a follow-up to some of the discussion about microkernel and monolithic OS structures, I thought I would point people who want to know more to a book and a very old debate between Andrew Tanenbaum and Linus Torvalds regarding the relative benefits of both structures. The book is Open Sources: Voices from the Open Source Revolution. Appendix A of that book has the actual debate, but it can be read in its entirety here:

The debate is colored by the fact that it took place in 1992. That is an ancient era, by today's standards. Moreover, it is obviously a very reasonable defense by the creator of Linux, and therefore, it revolves around the problems Linus Torvalds faced as he tried to organize his efforts to develop Linux as an Open Source piece of software. Both contributors have a lot to say, and I think it's well worth thinking about again in the context of this thread.

The book is quite good too, particularly if you want to know a bit about the history of Unix and the Open Source movement. As for whether microkernel or monolithic systems are the best, I think that is still playing out. I think generally, microkernel systems have the real advantage in the long run, but that in the effort to get past particular challenges that were probably faced by Linus Torvalds, a monolithic system obviously was the most likely OS structure to chose. It's a bit immature of anyone, however, to brand either strategy as inappropriate, dated, flawed or "not Unix". That will ultimately be shown in due time. Enjoy the debate.
I don't mind three buttons, but I do mind that X11 (and gdm) use the second and third button when I could determine their use for myself. The whole copy+paste routine with mouse buttons is idiotic. You don't need three mouse buttons to do cut+paste without the keyboard, MacOS does it with one (drag+drop text, beat that eunuchs!) leaving the other two to do other nifty time-saving routines like drag-scrolling.
I must have missed this earlier

"The Finder is Carbon. At first you'd think it was different enough from OS 9 and earlier that surely that didn't just carbonize the old Finder, but perhaps they did. In any event, the Finder is not Cocoa."

Where did this come from? the is an upgrade to Mac OS X Server's (which came from OPENSTEP, which came from NEXTSTEP), only the name has changed to protect the innocent (the average Mac user). There is a Carbon app called the "Finder", but all it does is point to the real (infact it is callled the "Mac OS X Fake Finder 1.0"). Let me put it to you another way, if you find something like "English.lproj" inside of an app package... it ain't Carbon!

Sorry Rob
Well, maybe I was wrong about the Finder, but that's what I've heard everywhere, even from Apple's mouth. I know the Finder certainly doesn't <em>act</em> like a cocoa app and it certainly <em>does act</em> like a carbon app.

What does it mean to "act like"? Carbon apps have a few VERY distict proporties. First, and most notable, is the ability to run in both MacOS 8.6+ and Mac OS X (because 70% of the APIs used are the same). Second, Carbon apps require special support that is actually just short of launching the full MacOS in Classic (again, because 70% of the APIs are the same, and must be supported some how), this is where the performance takes a hit, but protected memory can be applied. Third, multiple language support, most of the better Cocoa apps have more than just the English.lproj directory in them to support other languages besides english.

Not everyone at Apple knows the ins and outs of Mac OS X, this is why you can see info coming from them that says "Mac OS X is based on FreeBSD" when in actuallity that is BS. Mac OS X uses and special 4.4BSD interface layer (part is built into Darwin as the interface to the Mach 3.0 microkernel for aspect of the filing system, networking, and multiprocessor support, the other part is the APIs and libs that make up posix compliance, this part being optional while installing Mac OS X), with tools being ported from BSD, OpenBSD, and some from FreeBSD (far more from OpenBSD than FreeBSD as I recall). But, some people see BSD and say FreeBSD (the most widely used version currently). Even Apple's support reference manual for Mac OS X is riddled with errors and generalizations (this is as completely new to Apple's support personal as it is to long time Mac users).

Another noticable difference would be the "save sheets" (Cocoa) vs. "save windows" (Carbon). Carbon (in theory more than practice) should be backwards compatible with the old MacOS, and so Carbon apps don't use the cool "sheet" effect.

As for "acts like", I'm not quite sure what your looking for (or at) to make that judgement. Some people might say speed, but half of the "speed" problem with Mac OS X is the same one that people had with Windows 2000 and it's "cool" fade in and fade out effects (openning takes NO time, fading takes SOME time, so it must be running "slower" even though a NO time fade is no "fade" at all, right?). These effects are timed to play at the same speed on a slow systems as they would on the fastest system (so many re-draws per second).

Hope this helps when people start classifing this app as Carbon and that app as Cocoa. All you do is either try to save something (no "sheet", not Cocoa) or look in side with something like ResEdit (no <language>.lproj, not Cocoa).
I think that is is worthwhile to note that NetBSD amd OpenBSD have PPC versions, but FreeBSD is strictly x86 (well, since the last time I checked anyways)

How could I forget NetBSD... my friends would kill me (some of them sware by it and hate FreeBSD, I don't get it my self). It's a good thing I don't use my real name.
LOL its a good thing u arent using your real name. Different BSDs are known for different things, so noty all BSDs are the same I take it. NetBSD is more aabout being the most compatible OS outthere (meaning it runs on most hardware). OpenBSD is all about security. As for FreeBSD, never used it so I dont know its tag line :D
Looks like I need some direction here:

Am I right in understanding that Cocoa apps have a Services menu while Carbon apps don't?

And am I right in understanding that Cocoa apps support the scroll-wheel on a mouse while Carbon apps don't?

Furthermore am I right in recalling that the Finder has no Services menu and doesn't support the scroll-wheel?

What's going on? Is the Finder Cocoa or not? If it's Cocoa, what's all this I've read about Cocoa apps having the Services menu and support for scroll-wheel mice?

"Am I right in understanding that Cocoa apps have a Services menu while Carbon apps don't?"

Services are reach via the Finder, it was not used much (if at all) in the Finder/, so was dropped. This has nothing to do with it being a Cocoa app. I have outlined EXACTLY what does

"And am I right in understanding that Cocoa apps support the scroll-wheel on a mouse while Carbon apps don't?"

Why would this be a sign?

"Furthermore am I right in recalling that the Finder has no Services menu and doesn't support the scroll-wheel?"

Yes, and I don't know, I don't have a scroll-wheel.

"What's going on? Is the Finder Cocoa or not? If it's Cocoa, what's all this I've read about Cocoa apps having the Services menu and support for scroll-wheel mice?"

Lets try this again (I didn't think this was that hard), if the structure of an app includes directories with "language".lproj THEY ARE COCOA! If you have ANY question left in your mind, try this:

In the Finder, open a window (I just the browser mode myself), go to the "Go" menu, go down to "Go to the folder..." If it is a window dialog it is Carbon (I am completely wrong then), if it is a sheet dialog it is Cocoa (and I am completely right, and we end this).

Go on, I can wait...