Most of you will know that the underlying core set of components of Mac OS X and the iPhone operating system are released under the Apple Public Source License, an FSF-approved open source license. Few of you, however, will have actually used Darwin in any other form than Mac OS X or the iPhone OS. Despite numerous projects attempting so, Darwin has never gained any significant traction apart from Apple’s own interest. The PureDarwin project tries to rise from the ashes of the OpenDarwin project, and has just released a Christmas developer preview.
The problem with OpenDarwin was that there was little interest in Darwin-proper, turning OpenDarwin into a mere hosting facility for several Mac OS X-related open source projects, which was not what the maintainers had signed up for. OpenDarwin was supposed to increase the cooperation between the Free software community and Apple, allowing both to profit from each other, but according to the project maintainers, the idea of creating a stand-alone Darwin operating system had failed. Remember, this happened during the PPC-Intel transition, a time where Apple refused to release the sources to Darwin for a while.
Last year, the PureDarwin project was founded to continue the effort of creating a stand-alone Darwin operating system. In a relationship similar to that between Debian and Ubuntu, PureDarwin draws from DarwinBuild, adding various Free software components like X.org to create a usable version of Darwin. The “pure” in PureDarwin means that the project does not use any Mac OS X components, sticking to Darwin-specific tools only.
The current developer preview release can boot into X.org, and comes in the form of a VMware Fusion 2.0 image. This release is just a proof-of-concept, to show that “Darwin 9 is alive”.
Great to see this come back together!
Using Open Darwin as a base, and a GNUStep WM would make for a great Mac OS replacement. Étoilé is an interesting project, and PureDarwin just adds a little more diversity to the list of OSes out there; there’s too many Linux derivatives IMO.
Well… If you take GNUstep/etoile you can make a nice MacOSX replacement out of Linux, other BSDs and OpenSolaris too…
What I would like to know is, really, what does Darwin has to offer that other Unix and Unix-like systems don’t?… for example, I see on the release page that pureDarwin has ZFS, DTrace and X11 working… so, why not use OpenSolaris or FreeBSD?
Exactly. Tons of OS projects jump up like this every day it seems. None of them seem to offer any more than what is already out there. No-one does anything creative with the GUI, or tries to improve that at all. Everyone just seems to be content with: Take a linux/darwin,bsd kernel, slap some existing packages in it to make it usable, slap KDE/Gnome/Enlightenment/or what have you on top of that, then claim you just created an OS.
I would love to see a project like this though that runs off of openstep gui, and uses objective c/gnustep for their main api. I think that would set it apart better. That combined with an appearance overhaul on openstep.
Edited 2008-12-26 13:30 UTC
I guess you guys should read up on what Darwin has to offer. Most importantly, it differs a GREAT deal from Linux, BSD, and Solaris in that it uses a diferent kernel type, closer to that of Windows NT than that of the aforementioned.
It also has something called I/O kit, an object-oriented device driver kit that is very, very different from that othe roperating systems have to offer.
Those are just two I knew from the top of my head.
Sometimes, you need to dig a little deeper before you see the real differences. Sometimes, they just don’t show up in the GUI. Sometimes, you need a little more technical knowledge.
Edited 2008-12-26 13:31 UTC
When all you can tell about a microkernel is that it is NT-like, I would refrain from questioning other people’s technical knowledge.
In any case, Linux, BSDs, and OpenSolaris… all use different kernels, threading approaches, and heck even io subsystems. Simply saying that “it is different” doesn’t quite answer the question of what makes Darwin interesting. Don’t you think?
Exept… XNU isn’t a microkernel.
It’s a hybrid kernel – a loaded term among Linux enthusiasts, but a valid term, nonetheless. Linux, the BSDs, and Solaris all use monolithic kernels, meaning there certainly is a difference between the two. If you don’t know the differences between micro, monolithic, and hybrid kernels, then feel free to Google around.
From the top of my head, these first two came to my mind. If you think that employing a totally different kernel type, as well as a radically different device driver kit unlike any of the others mentioned in this thread doesn’t justify calling Darwin unique… Well, then you might as well call Linux, Solaris, BSD, Windows NT, Mac OS X, AmigaOS, etc. etc. the same.
Me thinks people are simply too lazy to study the more technical differences, instead focussing on the stuff they can grasp, which rarely – if ever – goes any further than the colour scheme and 3D effects used.
Edited 2008-12-26 18:03 UTC
Yeah, I think most of us here know that.
Nice put-down.
Feel free to patronize your readers any time you want. 🙂 Most of your readers are familiar with the different concepts involved. Butters did a pretty good job of calling your understanding into question a while back, IIRC.
Sure, OpenDarwin, PureDarwin, whatever it’s called this time around, is different. But what are the advantages of the open source parts of OS X? Anything of special value was proprietized by Apple, and the dregs were left. Mach-based kernel? OK. So it’s slower. (And Mach certainly worked well enough for HURD, right?) But what actual *benefits* are reaped from that trade-off? You don’t point to any.
Another question I have is this. From reading the link about the demise of the original OpenDarwin, and the associated OSNews comments, it looks like there were very good reasons for that project to have crumbled. What are these new guys doing differently in order to avoid the plight of the original?
I just quoted that bit to highlight the fact that your fangs are showing.
Edited 2008-12-26 18:27 UTC
I know. However, the person I replied to obviously did not know, so I pointed this out to him or her.
Nobody is talking about advantages. We were discussing *differences*. Those are two different things [and the lamest joke ever award goes to…!].
That’s for sure.
Fair point. And one which was not lost on me from the start. But “different” in the absence of “better” is what most of us would call “fragmentation”. (Certainly, a loaded term in the OSNews world.)
Let’s hear from people about how this new project, “PureDarwin”, is better in some areas.
Well, I was actually talking about advantages and so far I have seen none.
I do have knowledge in the underpinnings of different models of kernel development, Thom, and it’s not because of laziness that I asked.
hybrid kernel, monolithic kernel, microkernel… those are just words, differences and advantages are seen on implementation and I would really like to see one from Darwin… I’m not being sarcastic or anything, I really want to know what does Darwin has to offer, that others can’t… since I haven’t found anything so far.
What makes Mac OS X unique is everything that is not on Darwin (you know… Cocoa, Quartz, Aqua, the different “cores”..)… After all, Darwin is the (somewhat) evolution of the Mach + BSD + FreeBSD + NetBSD + stuff from OpenSolaris + some things from Apple (HFS+ support…) mix that both nextstep and apple used and have been using on their OSs… but what can anyone other than Apple do with this kind of FrankenOS? (note that those things they base Darwin off are mostly open source already)
Sorry, but while I always have seen the Darwin kernel as “interesting” I have also always seen it as a lame excuse of an open source project from Apple… there was a reason why OpenDarwin failed and without an advantage for using pureDarwin, I see the same thing repeating again…
It’s not very NT-like. It’s a Mach kernel, “inherited” by Apple from its acquisition of NeXT. The Mach kernel has some interesting architectural features that make an open source Darwin-based OS an interesting idea indeed, and a worthy project to pursue.
Microsoft’s NT kernel pretended to offer similar architectural features with all its dithering on about how it uses a “hybrid” kernel, but the truth is that the NT kernel just made use of some superficial characteristics of a modularized monolithic kernel without actually leveraging any of the advantages thereof. PureDarwin may actually prove to offer the kind of benefits NT only pretended (and failed) to offer, because of its choice of core architecture.
but also some very bad performance drawbacks ( that other microkernels like L4 or KeyKos have successfully tackled in the last decades, btw)
what some people don’t remember or deliberately ignore, is that:
1) Darwin is NOT NT, and its architecture is now totally different;
2) NT too was based on a pure microkernel (actually a Mach derivative) for some time, in the early days
3) NT being hybrid doesn’t have to do with filesystem and networking stacks being merged into the kernel, but with the latter being a layered (and “ringed”) structure made of elements interfaced by versioned APIs and accessed with LPC
4) NT4+ applications could be written, link, and work the same way (and with the same runtime libraries) as application for previous (3.x) versions of NT, and these could continue to run on the newer (integrated hybrid) kernel – this was because (thanks to architectural provisioning for messaging, transactions and local RPC, and the use of a dispatch system) they were independent from whether function providers were in- kernel or external;
5) “inner core” facilities (those that would be placed in a microkernel too) like VM, scheduling, messaging, are logically separated from less vital ones (whose memory may also be *paged out* to disk, btw – few other monolit… ehm, macrokernels can swap out parts of their address space, afaik…);
then, NT can be said to have a *microkernel centered*, structured, hybrid kernel
given the above, you see that NT has not “failed” in delivering a structured hybrid kernel
at least less of a failure than some other OS’s one at leveraging the monolithic kernel design…
if the monolithic approach is chosen to reduce context switch overhead;
but, if user space daemons have to be present anyway to supply functionality required for the base platform to *work* at all (functionality such as event notifications or messaged ipc, that even other *microkernels* have implemented internally for ages);
and moreover, if they have to communicate in the most inefficient way possible (plain marshaling over sockets, even for local interaction – when things like protected procedure calls and Lightweight RPC, have existed for decades on other systems);
then i’m inclined to believe that in that case, there’s something wrong in the way the monolithic kernel has been designed and deployed …
after all, everything boils down to NIH syndrome, doesnt it?
Edited 2008-12-31 20:23 UTC
http://etoileos.com/etoile/
Very true, especially seeing as how this is designed to be Macintosh only.
Everyone knows I’m an advocate of OS X and Macs, but to use this only on a Mac seems a mystery.
I’d definitely like to see something generalized across similar hardware platforms, at least, so that I could (for instance) install it on a ThinkPad rather than having to shell out hard-earned cash for a Mac laptop that doesn’t serve my hardware needs as well.
I must say I agree.
Open Solaris would even be a better way for one to run ZFS anyway.
What I’d like to see though was for some of the core Darwin components like Open Directory and DirectoryServices to be ported to some open source OS like Open Solaris for use as a complete Mac OS X Server replacement along with Mac OS X clients. This would also make the use of Apple’s open source CalendarServer much easier, as it ties itself quite tightly towards the Apple Open directory API structure.
The rest of it, Apple might as well keep to itself, if you ask me!
I wonder why no one is trying to develop a Mac OS X clone. A lot of Mac OS X components are publicly available, so it shouldn’t be too hard, it should prove to be easier than cloning Windows.
Cloning an OS such as it remains compatible at the ABI is very difficult, and demanding. Not very exciting for open source developers, for sure. Such a task only makes sense for windows, given its huge user base and applications.
Mac OS X, from an OS POV, has nothing much to offer compared to linux or bsd or other unices. Its internals or architecture are not interesting compared to the other open source alternatives: the interesting bits of Mac OS X are the proprietary ones: quartz, cocoa, the applications, maybe the development tools (instruments and the likes). There is a reason why Apple, given its history of secrecy, has given away the kernel: it is useless for anyone but Apple.
What would something like open darwin have to offer that bsd or linux cannot ?
GNUStep is a free implementation of Cocoa, and if a programmer develops on GNUStep, porting to Cocoa should be trouble-free, but not the other way around.
The only portions that need to be written from scratch are possibly Quartz, QuickTime and Core APIs.
Incorrect.
GNUstep is a set of frameworks based upon the Openstep API standard and has slowly tried to incorporate as much of the current Cocoa frameworks it can, in order to have your code viable on both platforms.
Unfortunately, due to aversion by 99.9% of the FOSS community towards ObjC it’s been struggling to mature.
The Etoile Project is interesting, if you want a merging of GNUstep and Smalltalk, in a piece meal approach that isn’t going to set any performance records for Desktop Environments.
Too true — and it’s one of the stupidest things I’ve ever seen. ObjC is an excellent language that should definitely get some wider attention.
Instead, for some asinine reason, a bunch of open source developers are starting to look at Java, now that it’s “open source”. Well, news flash: it’s only mostly open source, whereas ObjC support actually is open source (see GCC support for it, for details).
But isn’t Cocoa also based on/extension to OpenStep?
from gnustep.org
I do admit that my wording in my original post was flawed and unclear.
I can see how what’s on the site can be misunderstood. I guess we were operating under the assumption that people know and understand that Cocoa is an extension of OpenStep. We should probably clarify that.
BTW, sorry for the double posting before… for some reason the site wouldn’t take the posting so I hit the button twice.
Later,
Greg
Tyrione,
This is a meme/idea that I’ve been trying to combat for a while: GNUstep is not just OpenStep. It is an implementation of the Cocoa APIs as well. We try our best to maintain compatibility with both when possible or practical.
The project is very much aimed towards Cocoa compatibility and has been doing so over the last few years.
As far as the aversion of the community to ObjC, I’m not surprised about this, but things are starting to change with the popularity of such languages as Ruby. People are getting used to dealing with dynamic languages.
Also, with the resurgence of Apple, ObjC is becoming more popular or, at least, better understood.
Thanks,
Gregory Casamento
– GNUstep Chief Maintainer.
I don’t think aversion to ObjectiveC has much to do with it. It’s just that most people either don’t know GNUStep exists, or simply don’t care.
There are two big players in Linux desktop platforms – Gnome and KDE – and all others are niche players fighting for a bit of attention. That’s not a comment on the quality of those small players, just on how things work. It’s the same in most industries – one or two big players who get most of the attention, and lots of small ones who don’t.
Not interesting in the least bit.
Its just like Linux or other Unix-like OSes but with the crippled hardware support of OS X. You’ll basically need a Mac or Mac-compatible hardware (Hackintosh) for there to be working drivers.
I recently tried a newer x86 image of Darwin 8 and it wouldn’t even boot on my 5 yo Dell machine.
BTW, I believe PureDarwin has XFree86 working not Xorg X-Server. Few Unixes use XFree86 anymore after it was abandoned years ago by the vast majority of developers due to infamous license change.
For developers to be really interested in pushing this OS, I think there needs to be a big enough user base.
I dont see this happening because it relies on such a minority userbase.
– the people who see the benifits of darwin but are freedom loving and technical enough not to use OSX and persist with a system thats work-in-progress as far as the end user is concerned.
Furthermore, people who are in this catagory are probably alredy linux/*bsd/opensolaris users, since these are open and give very usable systems.
Darwin would really need to offer some tangable improvement over these other OS’s and I dont think it does.
– Look at opensolaris – with dtrace and zfs, even THEN they have not got a significant userbase from it. But IMHO darwin would need to offer somthing at this level to get significant interest and possibly devs/users moving to it.
Unlike opensolaris, darwin is not being promoted as an OS from apple, so its really behind the 8ball.
Im not against darwin, but developer mindshare is not easy to win these days with many established probjects filling this space.
Edited 2008-12-27 03:42 UTC
I tend to agree. From TFA:
Sometimes a body can spasm after death, as rigor sets in. Especially around Christmas.
Edited 2008-12-27 03:53 UTC
I think this is what’s happening: everybody seems to like OS X and apple computers, but the current markets that apple can sell into are still actually limited, despite the quality of OS X and the fact it runs on x86 hardware. The big market is corporate america, and apple knows that. they’re currently as close as they will come to a chance to break into this. No corporate buyer is going buy all apple hardware, it’s too much vendor-lock-in, even if you’d like to be locked into apple (I could see worse situations) it’s just not prudent, you need options. who knows if they could totally service your company. iPhone with exchange client: nice. iTunes on windows, nice. mac minis with bootcamp: nice – gets them a little closer. Apple’s absolutely doing fine, but they might miss this window if they’re not bold. What they need to do now is get some rapport with fortune 500 IT.
What Apple should do is to outright buy Sun Microsystems for their existing business contacts into the server room, and phase out the brand. Craft a light-ish OSS Darwin version of OS X that has a completely businessy, different look and feel from OS X, and is missing some of the goodies in OS X. Charge for support of this software but otherwise make it free under the GPL (ok, one of the licenses anyway). Get the Fink and other darwin porting apps and repos really fleshed out like apt-get is now, but neatened up. Make it universal, easy stable. not quite OS X in experience but better than windows, runs on every x86 box, free to download, supported by Google, HP, AppleSun, IBM, Dell, etc. etc. A total windows stack replacement, but solid stuff, tons of software available, branded as “cheap as linux, slightly more polished, less homemade, a little less choice”. As nice as Ubuntu and maybe a bit more testing, a bit more bling, a little bit more integrated in terms of desktop suites, ERP apps. big software companies port their stuff to it kind of OS.
Could you run the darwin based OS on a mac – yeah, but why would you? would you not buy mac hardware because of this distro – not really, because it’s not OS X. it’s a little plainer, more boring. could developers migrate code to OS X – yes. but if you were corporate IT, you’d feel a lot more comfortable switching to it compared to a single hw vendor which may or may not be able to ramp up to your specialized requirements.
Really?
Right. Because, as everyone knows, the mission critical server market is all about look and feel, and not really about delivering the goods. Probably less color and more pastel blues and neutral greys would really help in this area. And since they are only after the business contracts, they can probably lighten the acquired company by firing all the technical employees that don’t leave during the transition period.
Agreed. Though porting a few of the more of the “businessy looking” features of MacOS X to the new core, like Apple ZFS and Apple DTrace, might help sell it to the old Sun’s customers, as long as the right color scheme is chosen for the admin utilities.
Yes. A nine month release cycle. Downtime could be in the million dollar a minute range. So we should be conservative here.
OK. A ten month release cycle.
We in the Linux community had to phone Oracle several times before Larry called to say we were supported.
I don’t know about that. The prestige of being able to say that your whole accounting department runs off a MacBook would gain you boo koo points at CIO conventions.
Right. The color schemes of the server oriented administration apps would clash with existing hardware designs. But it wouldn’t be too hard for Apple to change the colors, textures, and lines of their server cases to blend better with this software.
Indubitably.
Edited 2008-12-28 03:45 UTC
What planet are you from?
Apple is a CONSUMER electronics company. Why would Apple do that?
Besides Sun Microsystems won’t need a suitor by the end of 2009. Either they will have converted over to a successful open source-based services provider by then, or they won’t be around. My money is on Sun being successful in 2009!
Claire.
Edited 2008-12-29 03:55 UTC
“pastel blues and neutral greys”
nahp… not going to do it, has to be something substantially different and compelling. but look how cheap Sun is – does it even have a PE? anyway that’s like less than a half a year of Apple revenue for the whole thing!
http://finance.google.com/finance?client=ig&q=JAVA
it make sense to have a distribution based on OSS+Darwin. It would be nice for developers but i wonder if Apple will allow it finally. I believe the most promising operating system is
Syllable+GenodeOS
moreover a BSD variant over L4 (like netbsd over L4, do you hear midnightbsd people?) would be also innovatve.
Don’t forget also GNU-HURD over CoyotOS (it is a very nice research effort but really slow progress is made)
Haiku is also a big player but from the point of view of innovation it doesn’t offer much though it sports a user oriented kernel which is different from other approaches.
has an alternative. A real OSS alternative.
I’m glad to see Darwin being resurrected. I ran open darwin a year or so before the intel macs came along. I had fun running darwin and compiling xfree, blackbox and firefox from ports. I was fortunate to have a system where everything just worked and it was a great learning experience. I might give this a try when they have a native installer.
Thom and others are missing the point. Despite the kernel architecture there isn’t anything interesting about Darwin. The interface is completely similar to FreeBSD. The only thing that MAY be beneficial is IOkit. End users aren’t going to notice any real difference between Darwin and FreeBSD. Device driver developers are the only ones that experience anything radically different. I don’t think that is enough differentiation for people to develop for it, nevermind use it. If they are just going to slap X and Gnome or KDE on it then it isn’t really any different than FreeBSD. More power to OpenDarwin if they do find a niche to fill but I don’t think the differences between Darwin and FreeBSD are enough to get people to use it over FreeBSD or other alternatives.
That’s “PureDarwin” (this time).
Forget the differences between it and FreeBSD. A much more immediate question is “what’s the difference between PureDarwin (this time around), and the very dead OpenDarwin (last time around). How are these new devs addressing the issues, like extreme developer ennui, that killed OpenDarwin?
Couple of things….
1. Mach-O/Fat/Universal binaries.
2. Much of the ObjC/Cocoa message passing still uses native Mach functionality. FreeBSD doesn’t have this. NetBSD does, though I’m not sure how current it is (last I saw COMPAT_DARWIN only supported 10.3)
3. I don’t know if GNUstep still does a lot of things via emulation that are done natively on Mach. Last time I really played around with it, they were looking at trying to use native Mach features if available, but I don’t know if that ever made it in.
FreeBSD is also way behind in areas like power management and HFS+ support.
The FreeBSD (and NetBSD) bits in the OS X kernel and userland still make up a rather small part of the whole.
Again I don’t think this means anything to most people even developers. ObjC really isn’t popular on any platform other than OSX and only because it’s Apple’s preferred langauge.
I don’t think anyone is yearning for HFS+ support except to mount their OSX partitions. Power management is actually something that might get people to use it. That’t the first argument I’ve heard that makes sense. If people can have a FreeBSD userland with better power management it might sway some people as we increaslingly move towards mobile devices.
When you strip out the proprietary parts of OSX you bascially have a BSD interface. It’s a certified UNIX for a reason, because it isn’t all that different than other nix’s on the interface level. I still don’t think having a weird kernel is enough to attract people to use it though.
Except that GNUstep is an official GNU project; hell, RMS, himself, wrote the second iteration of the gnu-objc runtime. Yes, this was back during the NeXTstep/OPENSTEP days, but it being an official GNU project hasn’t changed.
And, I think, you’re going to see a lot more interest in it. Part of the Safari Win32 port was getting ObjC/ObjC++ ported back to Win32/Yellowbox. Apple isn’t advertising that, but they did it probably with the deprecation of Carbon in mind. On Snow Leopard, Cocoa will be the framework.
And maybe have a filesystem that supports resource forks, etc? Oh, and isn’t metadata-faith like -o softdep?
Which is one of the fundamental problems with all of the BSD (and Linux!) kernels. I haven’t seen anything that’s modern and at the same time as good as Mach. Let’s not even start with Windows….
No, you have a system with multiple interfaces, traditional BSD (for Unix-compatibility) being one of them. Same deal as with NeXTstep. They aren’t the focus of development, however, rather they provide *basic* services and/or compatibility.
Because you’re paying attention to one small part, and only one small part. Take your view as a Java developer — everything has a JVM, why would you ever run something weird like OS X, or Linux, or Solaris, when you can run it on Windows!
No, and I’m not sure what the desire here is, myself. Apple doesn’t release a lot of the drivers, etc, and many of the more interesting parts of OS X (e.g. Quartz) aren’t OSS. Where it can benefit is for porters and developers who want to make their products run better on OS X (apache, mysql, etc. etc.). It also helps the packagers who try to provide cross-platform porting tools, like pkgsrc.
One thing I have noticed is that “official GNU projects” often do not care to associate themselves to closely to Richard. Ulrich Drepper, whose project is one of two cornerstone’s of the FSF’s claim of dominating the free software lanscape, had much of his control of the project wrestled from him by Richard in 2001… due to his disagreeing with Richard on some points. He didn’t seem too keen on Richard even before that travesty. Gnome is often cited as an official GNU project… but would anyone ever guess that if FSF fans did not appropriate that technicality to bolster their arguments in public forums?
In some ways GNU reminds me of a large multinational corporation with employees and subsidiaries which don’t care that much for the CEO and Chairman of the Board. But endure him because the relationship is still mutually beneficial for them.
Edited 2008-12-29 18:28 UTC
What is your point? Hurd is an official GNU project too but no one uses it.
A lot more people are going to be interested in ZFS than HFS+. HFS+ isn’t all that great compared to other modern filesystems.
Mach isn’t that great. The only reason Darwin uses it is because it is a holdover from NextSTEP. Mach is actually a pretty big and old microkernel compared to what is available now. Even HURD dumped Mach for a smaller, better microkernel. I haven’t read papers on exactly why or how Mach is better at power management. I don’t think there is anything inherent in the architecture that allows it to be more efficient. I really can’t complain about power consumption on Linux.
Really? What other interface does Darwin have? I haven’t seen anyone claim this. The XNU kernel is just a mishmash of Mach and BSD. You cannot seperate out the BSD functionality without writing new subsytems to take care of what BSD provides for XNU like IPC, TCP/IP, syscalls, VFS, crypto and many other things.
That’s not even remotely the same argument. I’m not saying you shouldn’t use Darwin. I’m just asking WHO is going to use it? Especially when it doesn’t seem to offer anything worthwhile to the majority of users and developers when they already have BSD.
Finally a real reason! I never thought of that angle. It would probably be pretty nice to have Darwin in a VM or on another partition to test packages out for cross compatibility.
If i had to pick a Kernel to build a new OS around Darwin would be a decent choice. though personaly i would choose QNX or Solaris (or even the version 5 branch of NetBSD).