From owner-freebsd-hackers@FreeBSD.ORG Thu Jul 1 07:10:40 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9BAC416A4CE for ; Thu, 1 Jul 2004 07:10:40 +0000 (GMT) Received: from engine140.deployzone.net (engine140.deployzone.net [193.17.85.140]) by mx1.FreeBSD.org (Postfix) with SMTP id D612B43D2F for ; Thu, 1 Jul 2004 07:10:39 +0000 (GMT) (envelope-from chris@zumbrunn.com) Received: from adsl-212-90-218-6.cybernet.ch [212.90.218.6] by engine140.deployzone.net; Thu, 1 Jul 2004 09:09:25 +0200 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> Mime-Version: 1.0 (Apple Message framework v618) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Chris Zumbrunn Date: Thu, 1 Jul 2004 09:10:16 +0200 To: Q X-Mailer: Apple Mail (2.618) cc: freebsd-hackers@freebsd.org cc: Alasdair Lumsden Subject: Re: FreeBSD and MacOS X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jul 2004 07:10:40 -0000 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