Date: Thu, 1 Jul 2004 09:10:16 +0200 From: Chris Zumbrunn <chris@zumbrunn.com> To: Q <q_dolan@yahoo.com.au> Cc: Alasdair Lumsden <enquiries@alivewww.com> Subject: Re: FreeBSD and MacOS Message-ID: <B435F941-CB2D-11D8-988E-000A95C969C6@zumbrunn.com> In-Reply-To: <9B616D82-CB28-11D8-9145-000D9335C6A0@yahoo.com.au> References: <40E1CAAD.3000303@minimum.se> <40E1CF00.2090601@netli.com> <1088557263.3528.102.camel@host-83-146-2-180.bulldogdsl.com> <72A1AE29-CA60-11D8-988E-000A95C969C6@zumbrunn.com> <9B616D82-CB28-11D8-9145-000D9335C6A0@yahoo.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1. Jul 2004, at 8:33, Q wrote: > > On 30/06/2004, at 4:40 PM, Chris Zumbrunn wrote: > >> >> On 30. Jun 2004, at 3:01, Alasdair Lumsden wrote: >> >>> While Mach is derived from 4.3BSD (circa 1986~1988), there's been >>> about >>> 15 years worth of divergence since then. For example, FreeBSD is >>> monolithic while Mach is more micro-kernel based. Also the driver >>> models >>> are quite different, eg Darwin uses IOKit (Object Oriented driver >>> interface model). >> >> From Apple's webpages previewing Tiger: >> >> "The upgraded kernel, based on FreeBSD 5.x, provides optimised >> resource locking for better scalability across multiple processors, >> support for 64-bit memory pointers through the System library and >> standards-based access control lists." >> >> http://www.apple.com.au/macosx/tiger/unix.html > > Some of the newer code in Darwin is "based on FreeBSD 5.x" yes, but > the monolithic FreeBSD kernel (as a whole) is not one of them. Instead > apple has targeted the "interesting" bits and imported these pieces of > the kernel as discrete components into Darwin (they are implemented > this way anyway). > > Darwin still uses a Mach kernel design, although Apple has made some > significant modifications to its implementation to reduce message > passing overhead and latency etc, making it something of a hybrid and > no longer a pure micro-kernel. As a result the Darwin Mach kernel is > not the traditional Mach mix of userspace/kernelspace RPC connected > components, instead the kernel is linked into a single address space, > using kernel extensions (loadable modules) in a similar way FreeBSD > does. However these extensions are implemented using a highly object > oriented API (IOKit) for interacting with the kernel, instead of the > traditional struct passing procedural approach used in FreeBSD. > > The portions of the FreeBSD kernel that Apple have adopted can be > found as part of the XNU project (the darwin kernel) from Apple's > Opensource website > http://www.opensource.apple.com/darwinsource/ > The CVS tags should still be intact on the files in question. > > While FreeBSD provides a sizable chunk of Darwin's BSDness, it still > has a decent amount of legacy NeXT/BSD code in it as well. > > Some of the things that have been adopted from FreeBSD/NetBSD in the > Darwin kernel include: > > Crypto support > Filesystem support for CD9660, DEVFS, NFS, VFS, MEMDEV (Curiously this > doesn't include UFS/FFS support) > IP & IPV6 TCP stack support including BPF & IPFW > Most of the BSD/Posix/SYSV system calls (sysctl, fork, exec, ktrace, > mmap, etc) and corresponding MAN pages. So, Apple's statement is a bit misleading. It's the "kernel upgrades" and not the "upgraded kernel" that is/are based on FreeBSD 5.x. :-) Chris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B435F941-CB2D-11D8-988E-000A95C969C6>