In December of 1996, Apple acquired NeXT Software. The reason for the acquisition was so that Apple could finally make a modern operating system for their users. They searched high and low for a OS to be the foundation for their new OS. Among the candidates, Windows NT which never even made it past the first stage. Then came Solaris, but Apple and Sun could not agree on the licensing terms and the idea was crushed.
Be was considered as well but like Windows NT, the idea was crushed because Be was still in development and very few commercial applications were available for the OS, Be was very strongly considered because it had features that surpassed the current Mac OS as well as other Operating Systems on the market and had the support of the Mac user base. Then came NeXT in all of its glory and it was decided that NeXT would be the foundation for the new OS.. Here are some of the things NeXT brought to Apple through the Acquisition.
Mach Microkernel
Mach is a microkernel designed by Carnegie Mellon University from 1985 to 1994. A microkernel is a smaller operating system implementation than monolithic kernels, as Microkernels build on smaller modules. Mach was one of the most popular microkernels ever used. Compaq, IBM, HP all of them used the Mach Microkernel at one time or another. GNU Hurd was also based on Mach but that OS has yet to be released and personally I doubt it ever will be released. Here is a list of all Microkernels in use today.
What Mach brings to Darwin and Mac OS X is preemptive multitasking, Inter-process communication, I/O and interrupt management. It also brings along a great device driver framework. In Mach, device drivers are IOKits ( Input-Output kits). The differences between a Microkernel, like what is used in Mac OS X and Darwin, and a Monolithic Kernel, like what is used in Linux, is that a Monolithic Kernel is a large chunk of code, where a Microkernel consists of small message passing cores or Modules, with several different Daemons or “servers” that communicate between the modules. The modules give filing systems, security,and virtual memory. This often times makes a Microkernel more complex and decreases performance in some instances. One of the many advantages is that if you create a new Module, it can just be simply ” plugged ” in where in a Monolithic it used to be that you had to recompile your source code in order to utilize new features. BUT, Now Monolithic kernels use what is called dynamically loadable modules, where this allows you to actually do the same thing and plug in modules, but in some cases it is easier to inherit memory leaks and other problems that could impact your system more severely with this method. To counter act these problems writing dynamically loadable modules can often times be more time consuming as well as take up even more time in testing. While yes, Microkernels do have problems and as Linus Torvalds says, sometimes they can make up problems of their own. I find Microkernels to be much easier to work with and problems are easier to pinpoint in Microkernels than it is in Monolithic kernels.
BSD Compatibility
The BSD Application layer is built on top of the Mach Microkernel. This layer allows compatibility with most UNIX based software. The BSD Layer also offers great Networking capabilities.
The Open Step Development Environment
This is a true object oriented programming environment developed by Avie Tevanian and others at CMU. It is also noteworthy that Dr. Tevanian was a NeXT employee and he remains at Apple to this day.
The Introduction of Darwin
1997 – 2000 was a really exciting time to be a Macintosh developer. It was during this time Steve Jobs returned and started Mac OS X development. He went all clandestine and starting introducing code names and releases and finally showed us that Apple was far from the death that Analysts and the press portrayed. In 1998, Apple finally did it. At WWDC, Steve Jobs finally put Rhapsody, the very first OS X implementation, to sleep and introduced Mac OS X Server. In March of 1999 Steve Jobs made a new announcement, Apple was giving away some of its source code. Apple then introduced Darwin. He also stated that Darwin itself was going to be Open Source, this announcement immediately drew Open Source developers, including myself, out of the woodwork and immediately drew support from the Open Source community. This announcement also ended the FSF Boycott that the Free Software foundation had laid on Apple Computer. Darwin is based on the original NeXTStep implementation of Mach brought over from NeXT Computer. Darwin 1.0 was released shortly after the announcement and while it was primarily for Apple PowerPC based computers, preliminary support for Intel based machines was built into Darwin. Darwin support for Intel has been lacking but it is quickly becoming more robust and development is increasing very quickly to introduce modern features into the Intel offering.
GNU-Darwin
In November of 2000, Dr. Michael Love founded the GNU-Darwin distribution. His goal was to bring free software to the wide spectrum of Apple users. GNU Darwin originally was supposed to run on top of Mac OS X, an XServer was developed which allowed Mac OS X users to run UNIX software without having to port the interface elements to Mac OS X. The project is still going strong and many developers have joined the ranks. During 2002 some bad press caught onto the GNU Darwin project thus their popularity was severely effected by the bad press. It has since recovered, in my opinion, and is since becoming the premier operating environment for Darwin on Intel. The one thing that GNU Darwin has done is to stay in line with the philosophy of the GNU Project in that it no longer links to the proprietary libraries in Mac OS X ( CoreAudio and CoreVideo ) Also they have put their PowerPC offerings into maintenance mode.
Open Darwin
Open Darwin was founded in April of 2002. This is Apples official outside development house for Darwin Intel as well as Darwin PPC. It was formed by Apple and its members include Darwin commiters and Apple employees. This is by far the most popular distribution to date. This distribution is by far the best and many of the Mac OS X as well as Darwin features have been developed by this group. This distribution is well loved by users who wish to keep running Mac OS X but need the full power of the Unix environment. This distribution still links to the Core libraries and you can run several multimedia packages, for example, in your Unix environment without having to run a remote sound server like what has to be done in GNU Darwin.
Present Time
Darwin has had a very bright past, and its future is increasingly bright. Many universities use Darwin for educational purposes to teach operating system design. Darwin has grown up and is well on its way of leaving its mother, Mac OS X. Some are concerned that Darwin will become fragmented and that if people make more commercially available versions of Darwin stand alone systems that we will just be looking at another System V Unix situation. I doubt this will happen because like Linux, Darwin is controlled by Apple and is centralized with Apple. Everyone has access to the same source code, unlike with Unix, where Solaris and AIX are based on the same Operating System they are actually quite different both in design and in features. The Darwin OS as it increases in popularity and development furthers, has the potential to surpass Linux, the BSD family and even Mac OS X in popularity as well as adoption. That will be many years into the future. It will be very interesting to see how Darwin affects the computer industry. As Darwin development furthers, many of its benefits are starting to be recognized by the industry.
About the Author:
Roberto J Dohnert is a Unix/Linux Consultant and software developer. His first introduction to Unix based systems dates back to NeXTStep. He is a member of the GNU Darwin Distribution and has made several contributions to that and other projects. His personal webpage is here.
“Here is a list of all Microkernels in use today.”
The link should be http://www.cs.arizona.edu/people/bridges/os/microkernel.html and nothing else.
_That_ little fellow is Darwin’s Mascot? Cute. Enough reason to look at this OS (yes, I _am_ serious) 😉
regards,
Stephan
Interesting, I didn’t know Apple was evening considering NT for a base for there next OS.
One thing to keep in mind about XNU is that it really isn’t a microkernel. Functionality traditionally handled by Mach servers in a microkernel architecture has been somewhat haphazardly grafted into the kernel itself. The FreeBSD Unified Buffer Cache, which provides linkage between the FreeBSD VFS and VMM, has been modified to attach to the Mach VMM. The networking code from FreeBSD has been attached in a similar manner. Thus, XNU is a microkernel without servers, making it functionally equivalent to a monolithic kernel.
Apple has done a great deal of work to modernize such an ancient kernel, but it still lacks a number of post-1980s Unix standbys, such as poll(), which can be poorly emulated in a userspace library which wraps select(). New system calls are slow to come to XNU, as Apple is overly worried about breaking 3rd party KEXTs between releases.
The feature I most wish would come to OS X is the kqueue()/kevent() calls from FreeBSD. As far as I know OS X has no similar event notification mechanism, and such a mechanism is sorely needed for the Finder. The Finder will often not “realize” that the underlying filesystem has been modifed, making the state displayed by the Finder differ from the actual system state.
The darwin kernel is called XNU. It is derived from a heavily modified Mach 3.x base I believe, though it started life derived from a Mach 2.x base.
While much of the internal structure of XNU maintains elements inherent in microkernel designs Apple has changed several important characteristics over the implementation of a Mach based kernel which NeXT used.
Probably the most notable among these changes was the decision to bring the BSD server across the kernel/user space barrier into the kernel to drastically boost performance.
It is also this decision which generates a lot of the contention as to whether or not XNU is really a microkernel or not.
Isn’t the UNIX world already full of good choices, most of them more reliable and proven? Why focusing open source effort in yet another unix which is unfortunately void of philosophy ? Hurd, NetBSD, OpenBSD, FreeBSD all have their unique philosophy. Why not pick one of these and improve on it? In such a way both Apple would have had a more reliable base system and the open source project would have gained more momentum. However Apple introduced Darwin…
Can someone explain me what good there’s in it?
>Isn’t the UNIX world already full of good choices, most of them more reliable and proven?
Not on Macs. FreeBSD port is really not ready, and NetBSD doesn’t offer quite some range or options.
“During 2002 some bad press caught onto the GNU Darwin project thus their popularity was severely effected by the bad press. It has since recovered, in my opinion, and is since becoming the premier operating environment for Darwin on Intel. ”
So, what is this about?
The decision by Apple to develop Darwin came out of their requirements for the development of MacOS X.
Apple could build Darwin to be the ideal core for their vision of MacOS X. Aspects of Darwin such as the IOKit driver framework are, I think, the obvious fruit of this endevour. IOKit is a very well designed framework which provides a very clean and simple metaphor for driver development for several families of devices. The OO design of the framework allows a lot of the repetitive work of driver development to be avoided by inhereting much of that common functionalty from the root/parent classes in the framework like IOService, IOPCIDevice, etc.
I just can’t understand the fragmentation in open source effort. I believe in choices and variety like OpenBSD, NetBSD, Hurd, etc. offers. Even though they’re not used by many (especially Hurd), these efforts have some particular purpose / approach / philosophy in mind. So the effort put in them is meaningful and justifiable.
However Darwin protrudes as a “waste of effort” IMHO. Because neither it has a past nor it has a philosophy. And Apple, trying to base their servers on it, are making a fool of themselves. It’s introduced for no good reason except for being Apple’s b**ch.
Not on Macs. FreeBSD port is really not ready, and NetBSD doesn’t offer quite some range or options.
So Apple decided to introduce a whole OS? You can improve on any of the alternatives I said. They could’ve wrote whatever code they wanted in FreeBSD and ported FreeBSD on PowerPC. Just like IBM is doing with Linux and will probably abandon AIX in the future. And for Apple it was much easier, because they were starting from scratch with OS X…
You don’t get it, do you?
If anyone would be interested in porting it, they would have already done it. But no one has. Except NetBSD, all the rest of the BSD “ports” are larking and they are half-baked. Even Linux only has YDL, Gentoo and Debian being active on the PPC front. Mandrake and SuSE don’t care too much about it, as they sell almost 0 on PPC.
So there was someone who cared: Apple. And they did their own BSD, by incoprorating different technologies in order to do their thing. And then, they released that underlyign technology to people.
So it is not about “fragmentation” and “why don’t you port XYZ”. It is about who sits his a$$ down and do the actual port. In this case, it was Apple.
>So Apple decided to introduce a whole OS? You can improve on any of the alternatives I said.
That’s what they did! Darwin is nothing but Mach, NeXT and FreeBSD, plus a few new stuff. They incorporated a lot of existing technologies to make something better.
Darwin is born of NeXT. Apple DID choose to base their new operating system on an existing Unix, just not one you listed. Clue in.
“However Darwin protrudes as a “waste of effort” IMHO. Because neither it has a past nor it has a philosophy.”
It certainly has a past. Mach has a long legacy and is the basis for the “kernel” of a number of OSes besides Darwin/OS X.
It has much more of a history than Linux.
And it certainly has a philosophy/purpose. It provides an OS/platform independent base to a premier commercial/GUI OS. It incorporates the practices and methods of the best Apple code providing a number of frameworks to easily OO code such things which are poorly executed in the Open Source world: drivers, media frameworks (CoreAudio, CoreVideo, etc…)
“They could’ve wrote whatever code they wanted in FreeBSD and ported FreeBSD on PowerPC.” So they should have done more work and used a base they were less familiar with because YOU want to be more familiar with it? Whatever.
“And for Apple it was much easier, because they were starting from scratch with OS X…” Your right, Apple didn’t consider numerous options and base their decision on what would be easier or more effective…. Again, whatever.
{ Isn’t the UNIX world already full of good choices, most of them more reliable and proven? Why focusing open source effort in yet another unix which is unfortunately void of philosophy ? Hurd, NetBSD, OpenBSD, FreeBSD all have their unique philosophy. Why not pick one of these and improve on it? In such a way both Apple would have had a more reliable base system and the open source project would have gained more momentum. However Apple introduced Darwin…
Can someone explain me what good there’s in it? }
As Eugenia stated, FreeBSD and NetBSD have their powerPC ports but they are on the backburner, meaning that they focus on the x86 architecture. Darwin on the other hand was made for the PowerPC and many users that I know use Darwin as a standalone OS on PowerPC. Plus its free, while Yes it is not as robust as other Unix based systems as I stated development continues and I do believe in the potential of Darwin, will it surpass Mac OS X or Linux in the near future? No, but the potential is there.
I don’t get it. Very frankly so. An OS is all about maturity. Darwin is half baked as an entire OS. Of course it’s Apple’s effort and they’re entitled to whatever they want to do with it.
However people putting their efforts in Darwin, because it’s an open source project, seems unjustifiable to me. Because there’re much promising options out there waiting for potential developers.
Of course NetBSD and other BSD ports of PowerPC are probably not good, because no commercial company (maybe Wasabi Systems) put effort in it for a complete and working port using all features of processor. But if Apple did it, it would have been easier a task than writing an entire OS and much more reliable an OS for basing OS X on.
The main reason for Darwin’s existence is probably because it is the core of MacOS X and Apple wished to leverage the talents of opensource hackers.
>Darwin is half baked as an entire OS
WHY are you saying this? Darwin has some limitations (e.g. requires a primary partition), but as an OS is not any worse than NetBSD or FreeBSD.
If you say that Darwin is half-baked, it is like saying MacOSX is half-baked. And I can tell you that while OSX is not the fastest OS on the planet, it matures just fine with time and it is better with each release. As JoelOnSoftware says, all software need 10 years to mature.
And use the proper subjects when you reply.
As Eugenia stated, FreeBSD and NetBSD have their powerPC ports but they are on the backburner, meaning that they focus on the x86 architecture.
Yes because there’s almost no userbase. I don’t say NetBSD, FreeBSD, etc. is a better alternative as it is for PowerPC. I claim one of those existing projects could have been made to work perfectly on PowerPC by Apple with probably less effort than coming up with Darwin. And Apple’s investment, new userbase, etc. would have brought a spur/momentum to one existing and more promising (than Darwin) UNIX with more developers investing time in it. That’s what IBM is doing with Linux for instance. That I’d have applauded.
So Apple decided to introduce a whole OS? You can improve on any of the alternatives I said. They could’ve wrote whatever code they wanted in FreeBSD and ported FreeBSD on PowerPC. Just like IBM is doing with Linux and will probably abandon AIX in the future. And for Apple it was much easier, because they were starting from scratch with OS X…
Except Apple wasn’t starting from scratch, they were starting from NeXT.
The reason Apple chose an antequated ABI for OS X was to save from modifying the NeXT development tools. Cocoa, NeXT Interface Builder, countless frameworks, and the XNU kernel all come from NeXT.
Now, while XNU may be the bastard child of NeXT’s Mach kernel and FreeBSD, it does have a number of nice features. The first is the Mach-O binary format, which allows for fat binaries. This will ease the lives of application developers who want to release 64-bit optimized versions of their applications. It would be nice if all applications compiled to 32-bits and 64-bits automatically, as the new 64-bit ABI will most likely be as optimized as possible (at least, one can hope Apple learned from their previous mistakes)
Also keep in mind that all event handling and synchronization within the Cocoa/CoreFoundation/CoreServices architecture is done using Mach message queues.
Finally, keep in mind the extensible, object oriented driver architecture.
XNU has a number of features which make it an excellent choice for a kernel for a desktop operating system.
{ Darwin is born of NeXT. Apple DID choose to base their new operating system on an existing Unix, just not one you listed. Clue in. }
NeXT was pure Mach, look it up. While yes XNU is used, now and I forgot to include that, because this was more of a historical article than a present ” whats in Mac OS X article ” Rhapsody and Mac OS X Server 1.2 were total ports of NeXTStep to the PowerPC. There were very little changes done, the only major change was the interface.The rest was just drivers for few devices and motherboard components that Apple used The internals were the same, Rhapsody for Example was the only version of OS X that could run on a PC. And they did that by utilizing the old version of NeXT for the PC. Real work did not begin on OS X until DP1 when they introduced Aqua.
That “little fellow” is Hexley, the mascot of Darwin. It’s supposed to be a platypus wearing the BSD daemon/devil horns and pitchfork.
I guess it’s supposed to represent an evolution of the BSD system — the name Hexley suggests Huxley, the naturalist who was a friend of Charles Darwin and father of Alduous Huxley. But the playtpus is a strange creature that kind of didn’t evolve, being an egg-laying mammal with a duck’s bill and a poisonous spine on its ankles!
Still, it is kind of cute in a Disney-ish way.
Mach-based OS’s:
OSF/1, NeXTSTEP/OpenSTEP, IBM’s OS/2 for the RS/6000-based machines, HURD, and QNX… mkLinux — the first Mac Linux, also produced by Apple… (and I believe SunOS or Solaris also originally used it…Not Sure)
Where’s the lack of history?
What option should they have pursued that isn’t exactly what you ask for (use existing code with a history and purpose)?
QNX has the best functioning Mach kernel but is designed primarily for embedded apps…
HURD is a piece of crap by relative standards and is impaired by the GPL license…
FreeBSD and NetBSD have gone nowhere on the PPC…
They used the kernel that they have TONS of HISTORY with (via Avie actually being on the original CMU Mach project, NeXTSTEP/OpenSTEP, mkLinux) used the unique and powerful features of OpenSTEP, and are incorporating the elements of FreeBSD that the OS community expects… Sounds like quite the strategy and philsophy to me.
Darwin was not developed simply because PPC based UNIX derivatives were lacking.
Darwin was developed as a UNIX based core for OS X that Apple could design and build to meet the specific needs for their vision of MacOS X.
Taking this direction was and is much easier and more flexible when you consider some of the things Apple would have had to rip out and reimplement in any other “pre-fab” UNIX. IOKit, CoreAudio, forms of kernel optimization for real-time threads, etc.
So Apple built, and in some ways inherited, a UNIX base for their next generation consumer OS.
…Apple did not want the burden of an unfavourable license. They did want Solaris but could not agree with Sun. I suppose they saw potential in it, they are a company of engineers for crying out loud, I am sure they have very good reasons for choosing it instead of other choices.
> If you say that Darwin is half-baked, it is like saying MacOSX is half-baked. And I can tell you that while OSX is not the fastest OS on the planet, it matures just fine with time and it is better with each release. As JoelOnSoftware says, all software need 10 years to mature.
Well but you won’t claim OSX is not half-baked, will you? It was much more apparent when it was first introduced (because Apple was so late already). Of course it matures with time. And with the amount of investment it will probably become good. But they already had mature alternatives, among which they didn’t pick. That’s what I don’t get. If they picked one of those, it would have been much more beneficial to that open source project as well. Or of they said we don’t like any of these projects, because we want to come up with our own microkernel based OS, that I’d have understood as well. But Darwin offers nothing new, every technology on it could have been ported easily to one of the BSDs…
XNU isa module, as is most of the Kernel, while XNU is getting bigger and the contention is there wether OS X is still a microkernel. A majority of the Kernel has the same characteristics of a Microkernel.
It’s older and, therefore, more mature. It’s a microkernel. It has support for ISA NIC cards and ESDI hard drives. And… the best part?
It’ll run on a ultra-mega-powerful, drop-your-pants-and-squeeze, multi-thousand transistor… 8086-based XT!!!
You can’t beat that, man… you just can’t.
Luposian
“But they already had mature alternatives, among which they didn’t pick. That’s what I don’t get.”
Which one and why? Explain which option you would have picked and why.
It sounds to me like you want the base of OS X simply to be FreeBSD without acknowledging that Apple does have a philosophy (optimize for a platform, provide easy to implement OO frameworks for media and other purposes which are generally lacking in implementation in ALL other OSes, etc.)
I want the Open Source OS from Apple to support THEIR technologies: Cocoa, CoreFoundation, CoreServices, CoreAudio, CoreVideo, WebKit, IOKit…
What do you want? Really.
“But Darwin offers nothing new, every technology on it could have been ported easily to one of the BSDs…”
That’s just it… THIS IS NOT TRUE.
There are parts of Darwin which are not part of the BSD server in XNU, which provides much of what you see as UNIX, that are simply not available FUNDAMENTALLY in any of the other mature BSD or OSS operating systems. I’ve pointed out several technologies which are built on top of Darwin/XNU which without some of the unique charateristics of the system would not be possible, or would otherwise be severely limited. IOKit is just one example of this.
Darwin was not about a lack of availability of UNIX-like OS’s which could run on PPC hardware, it was about no other UNIX-like OS being able to comply with the tools and services which Apple felt would need to be included to build the foundation of what they intended for the design and development of MacOS X.
I would have been OK with anything except for a new OS. Even that I’d have been OK with if it introduced some new ideas that could not be achieved with another existing/more mature OS. I don’t know why I sound like I’m advocating use of FreeBSD to you.
However Hubbard works for Apple, and Apple already has stated that they take FreeBSD as their example for future development.
Other than that they could’ve gotten Cocoa, Quartz, and whatever closed technology they wanted running on Hurd, (x)BSD…
I want the Open Source OS from Apple to support THEIR technologies: Cocoa, CoreFoundation, CoreServices, CoreAudio, CoreVideo, WebKit, IOKit…
Any developer is free to work on anything. And if they’re paid by Apple, they would surely be working on what you wanted…
Hurd is a piece of crap and bogged down by the GPL and is based on Mach!
Great alternative! (x)BSD? It IS!!!!
Darwin is Mach, OpenSTEP, and FreeBSD!!
“Even that I’d have been OK with if it introduced some new ideas that could not be achieved with another existing/more mature OS.”
It does!! Apple has produced tons of amazing frameworks that are far superior to OS alternatives.
What the hell are you talking about?!!
If Apple had taken any of these kernels and built PPC optimizations into it and then ported all of their technologies over to it… IT would still be a new OS called Darwin.
What the **** are you trying to get at?
Are you just intentionally ignoring my posts?
I fail to see how much more clear one can make the point that Darwin has as part of its fundamental design certaing characteristics which allowed Apple to develop certain higher level technologies, again such as IOKit, which simply were/are not available in any of the other systems you seem to think these metaphors/systems could have been grafted onto.
This is what fostered and I believe justified the development of Darwin, which as a UNIX-like OS has an incredible headstart with respect to media technolog foundation over any other current UNIX-like OS, including IRIX.
Can someone give me statistics that howmany people in U.S. use Mac compare to the rest of the world.
Macs have ~3% of the OS market worldwide.
It’s estimated that between 5 and 8 million users are using Mac OS X. (Depending on who you believe.)
It’s estimated that there are possibly 25 million Active Mac users worldwide. (This may be a little how depending on who you believe.)
The worldwide PC market is moving past 300 million. (This number is difficult to pin down as well.)
I do not now the US/worldwide ratio but I would suspect around 65/35 with the bulk of the 35% being in Europe (mostly England, France, and Germany), Japan, Australia, and other (Latin Am, MidEast, SE Asia).
Hope it helps. These are rough figures, but relatively accurate.
> Are you just intentionally ignoring my posts?
No. I see your point. I just think any such technology could be ported to the alternatives I named already. If IBM can port entire AIX technology onto Linux, that’s far easier…
Thanks for pointing them out *politely*. As I said, I see the points you raised.
I wish the discussions on OSNews were more polite. Maybe if everyone had a username, and knew about each other’s opinions and strengths it could have been possible. I am here to discuss not to fight.
That was supposed to be “HIGH”.
Must have coffee.
I would have been OK with anything except for a new OS. Even that I’d have been OK with if it introduced some new ideas that could not be achieved with another existing/more mature OS.
XNU isn’t a new kernel, it’s a hybrid kernel made out of two other, existing kernels, namely the NeXT Mach kernel and FreeBSD.
Other than that they could’ve gotten Cocoa, Quartz, and whatever closed technology they wanted running on Hurd, (x)BSD…
Hurd doesn’t support > 1GB filesystems, supports almost no hardware, and can’t even warm boot. Why the hell would anyone want to use it?
In order to use Cocoa/CoreFoundation on *BSD, you would either have to:
1) Modify the underlying OS kernel to support Mach message queues
2) Break source compatibility with OpenStep and deviate from the standard
There are no equivalents of the Mach-O binary format on *BSD, which allows for fat binaries targeted at multiple architectures.
No other OS has an object oriented driver architecture.
Apple had a choice between taking a kernel that met their needs and having to deal with modifying it over time to increase performance, or staring with a kernel that didn’t fit their needs and spending time modifying it to fit their needs. One solution allowed quick deployment using only time tested and mature code, and allowed for an upgrade path that would make it desirable for users to buy new versions of the OS, whereas the other would’ve had much longer deployment time and would’ve required extensive regression testing of brand new features.
As Apple, would you consider the latter alternative wise fiscal policy?
>The worldwide PC market is moving past 300 million
It is way more than that. I heard that number back in 1996.
The two BSD’s that run on the PowerPC processer, namely OpenBSD and NetBSD, do not have sleep and sound support on the Apple portables. I have been looking into a full-featured alternative to running OS X on my ibook and was wondering if Darwin or its derivatives have support for sleep and sound that the other BSD’s are lacking. If so, why hasn’t the code been ported if Darwin is open and they are all BSD’s? I want to watch DVD’s in mplayer on my ibook while enjoying the benefits of pf under openbsd! Instead it looks like I will have to just stick with Gentoo and Debian ppc..
I don’t think it is much higher than that. (But I’m willing to hear another figure.)
If you are including servers, sure, absolutely, by a LONG shot. But I’m referring to desktop installs when I use “PC” and am only counting such systems.
dude, it would actually be more work putting cocoa CoreFoundation, CoreServices, CoreAudio, CoreVideo, WebKit, and IOKit onto freebsd, netbsd, or openbsd then simply modifying NeXT (which inherently is darwin).
I mean, this way, they could focus most of the developer effort on trying to create a brand, spanking-new UI, and trying to intergrate that with the kernel. So, they saved lots of work by just using what NeXT had already built from FreeBSD and really already matured. What hadn’t matured was the interface. And now it is maturing (albeit slowly).
(BTW, don’t underestimate the power of NeXT… Damn that was a cool OS)
Then after releasing OS X, they decided to open source (ya know, to get in good w/ open source folk, be model open source enterprise citizens, and save on development effort by using the wide and great talents of the open source developers: win-win for everyone)
It’s not creating waste of OS and time… Instead, its saving time by using an already powerful, mature kernel and tuning it to the desktop and a new UI… hope that helps…
🙂
“It has since recovered, in my opinion, and is since becoming the premier operating environment for Darwin on Intel.”
How so?
It didn’t change it’s policies; the same actions that created the flap are still in place–the only reason no one continues to decry GNU-Darwin is because everyone has abandoned it.
Do you have any numbers to support that its a “premier operating environment”?
Some of us would say that lacking PPC support and not supporting Apple libraries means its not a “Darwin” at all.
From the article: “I doubt this will happen because like Linux, Darwin is controlled by Apple and is centralized with Apple.”
I knew it! This talk about working for transmeta and all was a hoax
> GNU-Darwin is because everyone has abandoned it.
You should be the one to substantiate your claims. We had our biggest sales ever in the month of April, with which we were able to commision a new server for the benefit of our many users.
> Some of us would say that lacking PPC support…
But we do support PPC. See for yourself.
http://www.gnu-darwin.org/
http://www.gnu-darwin.org/order.shtml
Regards,
proclus
You DID support PPC until you abandoned it. Having a dead PPC port in permanent maintenance mode is not support.
And don’t post unnecessary links to sell your product…
Maybe you should fix all (i’d say about 30% of the site’s) links on the site before you direct people to it. “Moved… moved… moved… moved… moved” Great site–commit to your project as frequently as you maintain your site?
Yeah, great the best of both world’s!! A Darwin which doesn’t support PPC or key elements of Darwin. And a GNU project not supported by the GNU project. Brilliant!
ER duh, maintenance means that we maintain support!
> commit to your project as frequently…
Heh, that might explain why we provide 10,000 package for Mac OS X users.
Regards,
proclus
http://www.gnu-darwin.org/
For you, “maintenance” means no more code contributions!
Hell, that was a joke about how poorly maintained your site is. I can look around the web and find any number of uninteresting, untalented programmers porting existing code. And I can go to other OS X/Darwin porting projects that are far, far superior. The initial question was: what makes GNU-Darwin a premier operating environment? How have they overcome their problems?
You cannot answer this.
You cannot explain why the site is in such a pathetic state.
You cannot explain why many view your project as not “Darwin” or rather why we SHOULD treat your project as a “Darwin.”
You cannot explain why you do not have the support of GNU–well we know the reason, but why bother if you do not have Darwin or GNU support.
You cannot point to a single action or event that has changed to remove you from the initial criticism that Roberto mentions.
But “webwarrior” (ha, ha) has the balls to call you a “premier” operating environment… Hmmm, I wonder why “webwarrior” would say such a thing…
I read the article and forty-long comments with great interest.
I do not intend to find out why Darwin or not Darwin. Avie´s work explains it.
What I would like to see is the future.
I think that Apple wins making Darwin open source in getting a large number of testers.
What do the user win?
Mac OS X is Darwin plus propietary soft (Core, Audio, etc.) Runs on PowerPC and (hopefuly 970s)
Darwin runs on PowerPC (other than Macs? Older Macs?)
Does it run on x86´s?
What about the propietary software (at the OS level, not iTunes).
Is there ports/open source developments?
Is it posible to run a Mac OS application over other CPU?
And from the Unix side: Does this Darwin ports (or Fink or OpenOSX…) open me the unix door?
As a user of Macs I would like to see it spread all over the world (just to make people happier). Can the people who does not own a Mac have this experience with open Darwin? What should be add to Open Darwin as it is today to be able to fullfill the Mac experience? (Of course, it would have to include Acqua or other time of GUI)
Read my lips, GNU-Darwin supports PPC. We have always supported PPC, and we will continue to do so. We have continued to release PPC package updates since the Free Darwin action began. PPC support is a crucial part of our project goal to reach Apple users with software freedom, so we are on the platform for the duration.
If you say that we don’t support PPC, then you are only propogandizing against the Distribution. We support Apple users despite your spurious claims.
We have had no complaints about our level of support from our users, and I don’t know what site you are looking at. Our site is current and well maintained.
Regards,
proclus
http://www.gnu-darwin.org/
Does anyone know the status of sound and sleep support on the apple portables under the various Darwins? I know that both OpenBSD and NetBSD macppc don’t support sound and sleep, but I figured Darwin would support sleep/sound because it’s the source of OS X which supports everything. If the sound/sleep code is open source, why hasn’t it been ported to the macppc BSD’s? Looks like folks will have to stick to gnu/linux for these features on their ppc hardware (as an alternative to mac os x), which is my evidence that Darwin won’t take over Linux, Sun, etc… as I have read suggested somewhere in all this commentary.
Have you tried, Darwin? Maybe you could answer the question yourself since you seem to be the only person desperate to replace OS X on their Mac AND looking for sleep support.
And… who suggested Darwin was going to overtake Linux or Solaris? All of us “defending” Apple’s decision probably understand the purpose of Darwin and it certainly isn’t to overtake anything.
this half baked business is rediculous.
one mans half baked is another mans over cooked.
i enjoy using freebsd. it makes for a wonderful server. i even spend long nights tweaking/compiling, making it into the perfect desktop.
that said, i NEED commercial software, and freebsd does not have it…..therefore I could say “FREEBSD IS HALF BAKED” as a desktop OS.
Of course I’m not that stupid. I also use Redhat, OS X, and Win XP.
I find advantages and disadvantages to each. Looking at the subject with the proper perspective, I’d have to say that Darwin does what Steve Jobs needs it to do. It properly provides the foundation for OS X.
Stupid is as Stupid does.
OS X is a damn fine enduser/desktop operating system. Sure it’s not a long evolved UNIX with a pedigreed family tree. But who cares? Look at what long slow methodical evolution has gotten us…
Windows everywhere! Almost to the point that we are without choice.
(because UNIX was taking to goshdang long to put up a fight…now we have a linux and os x as good mainstream desktops)
so my whole point is, if what you say is true, then i can only hope to stumble across other half-baked products as fine as OS X.
As a very active computer user and frequent OSnews reader. I thought I knew and had triad most of the available operating systems out there. Darwin was to me a little of a question mark witch I really didn’t know mouth about. This article spelled it out for me so thanks for a great article.
I have my reasons for not wanting to run OS X, mostly because I don’t feel like paying for every marginal change that apple creates. Furthermore, Free Software is just much more flexible as far what I can do. For example, I can choose from different file systems, different disk encryption systems, and most importantly I get to share my experiences and communicate with others. Plus running emacs in a terminal emulator sucks; OS X doesn’t offer full-screen console mode. OS X has it’s place, but it’s not for me. Stop being an OS Nazi. I don’t care what OS you run as long as it complies with a sstem of open standards. All I wanted to know was about some simple hardware support. Geeze!
I asked why you hadn’t tried Darwin? Why you kept posting the same question when you could find out for yourself.
I don’t care what OS you chose or why you do it… But I do get annoyed by people who feel the need to preach to me the merits of free software but they themselves are too lazy to do some research for themselves… I do get annoyed when people get so caught up in their own pathetic idealogies they deem anything that doesn’t conform to them a failure (based on the goals of their intentions, not the products)… I do get annoyed with people who say it should be easy to port something but then bitch when someone doesn’t hand it to them (I thought it was easy? Why haven’t you?)… etc…
“… I doubt this will happen because like Linux, Darwin is controlled by Apple and is centralized with Apple.”
really?
I don’t feel like paying for every marginal change that apple creates
the last paid for upgrade was from 10.1 to 10.2, forget the small number change this was a dramatic improvement.
OS X doesn’t offer full-screen console mode
try logging in as console, that turns off aqua and leaves you with just the command line on the screen.
proclus said You should be the one to substantiate your claims. We had our biggest sales ever in the month of April, with which we were able to commision a new server for the benefit of our many users.
It doesn’t seem to be a very good server you commisioned, as it’s down right now.
> mostly because I don’t feel like paying for every marginal change that apple creates.
Errrm, that’s exactly *one* payment so far. And if you think 10.1 –> 10.2 was ‘marginal’, you are a complete nitwit. Quartz Extreme alone merited the upgrade, I say.
And 10.3 will bring 64-bitness, for one. If you think that’s ‘marginal’ and not worth paying for, I officially designate you ‘utter twit not worthy of any sensible person’s time’ and will only sneer in the general direction of any further flatulence you emit.
> OS X doesn’t offer full-screen console mode.
Bzzzt, wrong. But hey, thanks for playing!
(Enter user name “>console” at the login screen. Et voilá!)
Just one tid-bit to add to the conversation. I think that the fact that Tim Berners-Lee pretty much started the whole web revolution on a Next cube gives just a smidge of history to the OS that not many others can match!
I completely agree, might I also ad that NeXt Step was already a mature operating system when Apple bought it. Back then FreeBSD was still in the 3.x days, the threading was crap, the SMP was crap and I am sure there are more parts one could point out that are crap. Apple made the decision based on what was available THEN not what COULD be available. Apple’s whole problem was based on the idea of building things from scratch, that is why every replacement for MacOS Classic fell to pieces.
NeXt Step provided exactly what Apple needed, a fresh operating system with new ideas and concepts. It seems the only people who have complained are the “why didn’t they use my kernel” whiners of the world.
In terms of the future, I would love to see Apple sync their OS up with FreeBSD 5.2 in terms of KSE/libpthreads and some other neat stuff.
IIRC, one of the most widely known one is called Tru64 which is based onf OSF/2 which is based of Mach.
The Tech Advisor at Apple hired from IBM wanted to go with Be. Had Be not tried to negotiate a good price, Apple probably would have gone with them. While in discussion with Be, Steve Jobs came down and got the ear of Emelio. Out when Be and in came Next. And down the tubes when the prospects of getting any return for their money for the BeOS investors. The guy who couldn’t negotiate the Be aquisition (Frenchman) was the same guy who while at Apple fought vehemently (and successfully) against the licensing of the MacOS.
No, that wasn’t the issue, Be wanted $400 million plus. Sorry, who do you think is going to win, an immature half-banked anti-legacy zealot driven operating system or an operating system that is based on mature technology and can be bought at a reasonable price.
You support PowerPC exactly like Mandrake and SuSE: as an after thought. Allow me to quote for your “Free Darwin” announcement,
“Second, we will be moving our operations to x86, and we are putting the ppc collection into maintenance mode.”
The article would lead you to believe that Tevanian was only involved in the application-level object-oriented component frameworks. That is incorrect. Avie was a key contributor to the Mach kernel itself while at CMU. In fact, the “OpenStep” object-oriented layer attributed to Tevanian’s work at CMU didn’t even exist under that name until 1993 (well after Tevanian left Pittsburg). It was a refined version of the OO framework which had already been shipping with NeXT computers. Moreover, I haven’t seen any information that attributes that OO layer to Tevanian at CMU. Rather, it was developed internally at NeXT.
Among the candidates, Windows NT which never even made it past the first stage.
You mean they actually considered, stupidly, Windows NT? You mean they had so much money to blow it on buying a huge chunk of the world’s biggest software company? Even licensing an operating from your arch-rival sounds soooo stupid to me.
1997 – 2000 was a really exciting time to be a Macintosh developer
You probably meant Macintosh user… Developers weren’t all too happy to spend more money to port software from one platform to another, and even more money to optimize it to the level they did on OS 8/9…
Never been on a research team ? When you sit around a table, you first find *EVERYTHING* that may fix your problem (in this case, a big list of ALL existing OS and beyond). Then you start cutting. They removed NT at stage 1, probably because of competition issues, or whatever their reasons.
What is so stupid in that process ???
Oi vey isnt a mac user.
He/She is too much of a stiff.
Ok, quick question. How is darwin going to surpass Mac OS X in popularity, when Mac OSX IS darwin PLUS extra stuff? At least thats what i understood
I always found the most fascinating OS to be AUX – the 68k-native version of UNIX that apple distributed arounf 95, which had an apple interface as well as X and could run Mac apps in compatibility mode.
And why shouldn’t they have considered NT? You might not like MS but NT was a PPC OS with a reliable kernel and a modular driver format.
I’m glad they didn’t, but it would have been a valid and reasonable move to have done so if the licencins terms could be agreed.
You know that you do not “support” the PPC port. You also know that even your website is poorly maintained. Why not come clean about your projects’ lackings?
AUX, that is a good point. Commodore did the same thing with the AMIGA. It is too bad that both companies couldn’t get off of the ground with that. Before AMIGA was purchased by Gateway, they were going to use QNX!
I hear a lot of chatter about different flavours of UNIX and which is better. I think that any UNIX that is nonMS is a good thing. I respect all of them, and each have their own strengths. I grew up on computers before Windows existed. So many companies were at least 10 years ahead of Microsoft. It is amazing how things turned out. I am a bit disapointed since they are almost completely caught up. All they really need to do is improve the quality.
I always thought Apple didn’t buy Be Inc. because Gassée’s price was deemed unacceptable.
Sorry CCCC. BeOS was not “an immature half-banked anti-legacy zealot driven operating system.” Anti-legacy, yes. Anti-legacy is not a bad thing. After all, with OSX Apple did a complete overhaul of its old base. Mac OS 9 was “mature technology.” Should they have used it? The fact is, by the late 1990s NeXT was very much decaying. Be was just reaching the peak of its potential. There is no doubt that BeOS would have provided an exceedingly good base for the kind of thing Apple was going for. Also, BeOS is pure C++, which makes it easier to learn to program for (ObjC is really not all that popular;I am only speaking about the adaptability curve, not the C++vsObjC learning curve).
This is all just theoreticals, because JLG and whatsisname Sakoman would never have agreed to go back there (they were Newton engineers). $400 mill? Be made no or almost no profit throughout the entirety of its existence. The price they named was ridiculous.
I must say, if OSX was Be-based, I would go out and buy a Mac as soon as possible, as long as they made the interface cleaner than current,nonfantasyland OSX (shudder).
Sorry CCCC. BeOS was not “an immature half-banked anti-legacy zealot driven operating system.” Anti-legacy, yes. Anti-legacy is not a bad thing. After all, with OSX Apple did a complete overhaul of its old base. Mac OS 9 was “mature technology.” Should they have used it? The fact is, by the late 1990s NeXT was very much decaying. Be was just reaching the peak of its potential. There is no doubt that BeOS would have provided an exceedingly good base for the kind of thing Apple was going for. Also, BeOS is pure C++, which makes it easier to learn to program for (ObjC is really not all that popular;I am only speaking about the adaptability curve, not the C++vsObjC learning curve).
Please tell me one positive aspect of BeOS? its crap TCP/IP stack? its crap PPP stack? its crap hardware support? its crap POSIX support?
Please, NeXT as a business may have been going down the toilet but as a technology it was perfect. We are talking about 1997. FreeBSD was STILL 3.x, Linux was still 2.2.x and BeOS was still using a.out binaries for goodness sake! compare that crap to what NeXT bought, and IMHO, Apple got NeXT’s intelellectual property at a discount price.
As for Cocoa, if you have been ignoring the Apple news, Apple is working on C++ bindings for Cocoa plus bindings for other languages.
Hardware support on an Apple platform is trivial. Proprietary hardware=easy hardware support. That is not a concern.
TCP/IP and PPP were all fixed later in Bone and Dano. With Apple money and development they would have been fixed and improved much earlier. Its POSIX support was great–ask Eugenia, who I believe ported a ton of UNIX apps. Be technology was as revolutionary as NeXT.
Apple may as well have bought Amiga. It had a great technological lead, but then came to a complete standstill, much like NeXT.
Yes, bindings schmindings. So what? There could easily have been ObjC bindings for the BeAPI. The fact that there still aren’t any after 6 years is kinda curious.
Hardware support on an Apple platform is trivial. Proprietary hardware=easy hardware support. That is not a concern.
Considering that there was a complete lack of any USB support in 1997, I really can’t see how they can be not concered about hardware support. Sure, internal devices are not an issue, however, what about USB? firewire? are device manufacturers willing to write drivers for an operating system that is completely different to any other operating system on the market?
TCP/IP and PPP were all fixed later in Bone and Dano. With Apple money and development they would have been fixed and improved much earlier. Its POSIX support was great–ask Eugenia, who I believe ported a ton of UNIX apps. Be technology was as revolutionary as NeXT.
The fact remains that they weren’t fixed at the time of the NeXT purchase, simple as that. Apple did not want to then spend a whole heap more moneying to get an operating system up to an acceptable level. NeXT already had a mature TCP/IP stack, a mature PPP stack.
As for POSIX, just look at the h*ll the Apache and Mozilla team went through because one piece of basic UNIX/POSIX functionality was missing. Btw, Eugenia isn’t a programmer, he husband is a coder, but she isn’t.
Apple may as well have bought Amiga. It had a great technological lead, but then came to a complete standstill, much like NeXT.
What a complete load of bullcrap. At best, the Amiga was slightly infront of MacOS 9, at worse, it was sitting on an obsolete platform with a dead API and dead developer community.
Yes, bindings schmindings. So what? There could easily have been ObjC bindings for the BeAPI. The fact that there still aren’t any after 6 years is kinda curious.
Again you completely miss the point entirely.
In 1997, USB was just being introduced. This was the era of Pentium Pros, remember.
>are device manufacturers willing to write drivers for an operating system that is completely different to any other operating system on the market?
If it’s Apple they’re going to anyway. It’s not like you could reuse a driver from Windows with NeXT, so what’s the issue?
>The fact remains that they weren’t fixed at the time of the NeXT purchase, simple as that. Apple did not want to then spend a whole heap more moneying to get an operating system up to an acceptable level. NeXT already had a mature TCP/IP stack, a mature PPP stack
Yes. You have a good point there.
>Btw, Eugenia isn’t a programmer, he husband is a coder, but she isn’t.
The code for this website was written by her. I think you are wrong.
>What a complete load of bullcrap. At best, the Amiga was slightly infront of MacOS 9, at worse, it was sitting on an obsolete platform with a dead API and dead developer community.
I was being facetious.
>Again you completely miss the point entirely.
Would you point me in the right direction then?
Where did you hear that Apple was developing a C++ binding of Cocoa? The only existing binding is in Java. C++ is not an option because of the RTTI.
Regarding the BeOS, the C++ application kits were great to develop with but they didn’t scale well (that’s only my opinion: having more than 20 views in one window would cause my BeBox to slow down everytime I would resize the window).
The NeXT fundation/application frameworks are much more mature, scalable and able to evolve: you don’t need to recompile your app everytime Apple decides to release a new version of its frameworks but you had to do it with Be…
Apple choose not to go with BeOS because greedy Jean-Louis Gassée wanted a ridiculous amount of money for it.
“Apple choose not to go with BeOS because greedy Jean-Louis Gassée wanted a ridiculous amount of money for it.”
This is the semi-official reason everybody gave at that time… but I’m sure Apple selected the NeXT environment based on technical reasons, not on pure financial ones.
Furthermore, I’m sure Jean-Louis was probably ready to drop the price drastically if Amelio would have shown real interest in the BeOS.
Another reason in favor of NeXT is that Apple had already heavily invested in a C++ OS: Taligent. They didn’t want to make the same mistake twice…
It was Steve’s opinion. They brought Steve back in as a consultant. He said that they would have difficulty porting the Mac ToolBox and thought the tech cool but that it wasn’t the platform for what he wanted to build into the future OS down the road.
He thought his own company had the right OS and he had the right ideas.
He then negotiated the purchase of NeXT for more than Gassee’s price tag just to piss him off.
I read Amelio’s book a few years back and IIRC, Anonymous is correct. I think Gassee was asking $100 million, but Amelio was convinced that BeOS was 3 years away from production. Jobs charmed the pants off Amelio, who was basically a financial executive, and the rest of Apple’s board, getting a premium price for Next and a cushy CEO deal for himself. Of course, once the deal was done Jobs wouldn’t give Amelio the time of day.
“Please tell me one positive aspect of BeOS?”
Its speed. Nobody talks about OSX in terms of being a speed-demon.
Its speed. Nobody talks about OSX in terms of being a speed-demon.
Depends how you define speed. BeOS’s kernel had pathetic throughput but excellent scheduling, so the solution was to go completely overboard with threads in the userland APIs. You can’t argue with results, but it’s still revisionist history somewhat.
Nevermind the fact that speed issues aren’t a result of the underlying OS, but the OS X GUI layers primarily…
So it’s not like Chris could actually say a Be-based OS X would be faster.
>The worldwide PC market is moving past 300 million
Eugenia: “It is way more than that. I heard that number back in 1996.”
I doubt it very much. Poulation is roughly 6 Bio.
2/3 of it live below the poverty line. ergo, there are about 2 Bio people (incl. infants, students, people over 60, etc). Assuming that one quarter would buy a PC, it would leave us w/- a potential market of about 250 mio.
The market hasn’t changed very much, since 1996.
Roberto, MacInTouch has linked your story here – congrats!!
The thing with Apple’s flavor of Objective-C is that it can use C++ code. I believe the term is “Objective-C++”. Obj-C is also a perfect superset of C. Given this it’s possible to use C and C++ backends with an Objective-C Cocoa interface.
Then there’s also Carbon. It doesn’t give programmers as much “for free”, but it’s no less “native” than Cocoa, and it can be coded in C++.
Darwin is not a NeXT product. Real Apple employees were working on Darwin long before the kids from NeXT came in. If it wasn’t for the Darwin kernel and the real Apple employees, you would not have OSX today. The NeXT kernel was junk on traditional Mac hardware, but OK on Intel.
Where the heck did the notion that NeXT brought in Darwin come from, Jobs, or one of his cronies? Nothing could be further from the truth. Good luck with spreading the concept around though. The Mac community eats up this nonsense, and they will probably believe it.
said by oi vey:
“Plus running emacs in a terminal emulator sucks; OS X doesn’t offer full-screen console mode.”
Who says? Obviously someone who’s a GNU-nazi. Lay off the “if I have to pay it sucks” hype. Your Loonix friends already know how cool you are. Or is it how cheap you are? Anyhoo, try typing “>console” at the login screen sometime. Then you can emacs your brains out. Meanwhile the rest of us will stretch our xterms and multitask, OK?
“I have my reasons for not wanting to run OS X, mostly because I don’t feel like paying for every marginal change that apple creates.”
Please. Have you ever compared 10.0, 10.1, and 10.2? No. While they didn’t pull a Billy switch where a new face is put on rotten code and called “new”, they have been doing wonders in making things faster and more stable. Hello? Quartz Extreme? 10.3 is going to be 64 bit, should that be free too? Who do you think pays the development team? The Code Fairy?
Wouldn’t it be cool if Burger King gave away free Whoppers? Let’s run with that business plan.
If I want a disorganized mess, I’ll go download RedHat for free, and get what I paid for, a shoddy patchwork outdated mess with a GUI that looks like Windows. Wooo!