Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Apple's devices are based on Mach which has a different kernel than BSD. Though it does use some BSD code it's not accurate to call it *BSD.


There's more to iOS/OSX Unix than the kernel.

The Darwin portion is for most intents and purposes based on BSD -- particularly FreeBSD-- running on top of XNU (a hybrid Mach 3.0 microkernel with big chunks of the monolithic BSD kernel embedded).

http://en.wikipedia.org/wiki/Darwin_(operating_system)#Kerne...

Concerning the BSD portions, see this from Apple's Kernel docs: http://goo.gl/1sp69

"Integrated with Darwin is a customized version of the Berkeley Software Distribution (BSD) operating system. Darwin’s implementation of BSD includes much of the POSIX API, which higher-level apps can also use to implement basic app features. BSD serves as the basis for the file systems and networking facilities of 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 file permissions and user and group IDs; Threading support (POSIX threads); Networking support (BSD sockets)"

That accounts for an immense amount of what a kernel normally does.

Besides, I have never met a NeXT or Apple employee that didn't consider Darwin to be BSD.

It's a radically modified BSD but I think it's still a descendant.


iOS ships the darwin libc. Does it use any other major components? I'm pretty sure I remember there being no unix userspace available on iOS. Note that the stuff you quote are kernel features. And again, it's really not a BSD kernel; it has BSD roots, but they're back in the 1980's. There's no relationship between the existing projects and the Free/OpenBSD open source work.


I'm pretty sure I remember there being no unix userspace available on iOS.

Not exposed to standard users, no.

There's no relationship between the existing projects and the Free/OpenBSD open source work.

That's simply not true. There's more to the BSDs than just the kernel – all of the userland stuff is incredibly important to Apple, especially as they try to further distance themselves from the GPL. There is a relatively strong relationship between the BSDs and OS X/iOS. It's true, the lower you get, the bigger the differences, but even xnu has some relatively current BSD sources. e.g. from OpenBSD:

http://opensource.apple.com/source/xnu/xnu-2050.7.9/bsd/net/...


The last time Darwin was synced with FreeBSD was FreeBSD 5, at which point the features available in FreeBSD 5 were also made available in Darwin, such as kqueue and various other API's.

I, and some other developers I know, have been hoping that Apple in the future will sync with FreeBSD again in the future, hopefully against FreeBSD 10 to get even more feature parity in kernel interfaces available.

There is a lot of a relationship between Darwin and the FreeBSD team. Apple's firewall import from OpenBSD (pf) for example was also used by the FreeBSD team to update their port.

Just because it is not visible on the surface doesn't mean the relationship doesn't exist ...


Was "darwin libc" copied from somewhere? Maybe a BSD project? Check your facts.


The kernel is a drop-in replacement for a BSD kernel, so the OS is still BSD.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: