From owner-freebsd-hackers@FreeBSD.ORG Thu Jul 1 19:30:56 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 F059B16A4CE for ; Thu, 1 Jul 2004 19:30:55 +0000 (GMT) Received: from smtpout.mac.com (smtpout.mac.com [17.250.248.83]) by mx1.FreeBSD.org (Postfix) with ESMTP id C75D743D3F for ; Thu, 1 Jul 2004 19:30:55 +0000 (GMT) (envelope-from justin@mac.com) Received: from mac.com (smtpin01-en2 [10.13.10.146]) by smtpout.mac.com (8.12.6/MantshX 2.0) with ESMTP id i61JUCgH023649 for ; Thu, 1 Jul 2004 12:30:12 -0700 (PDT) Received: from [67.169.117.81] (c-67-169-117-81.client.comcast.net [67.169.117.81]) (authenticated bits=0) by mac.com (Xserve/smtpin01/MantshX 4.0) with ESMTP id i61JTQTx016806 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 1 Jul 2004 12:29:56 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v618) 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> Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Justin Walker Date: Thu, 1 Jul 2004 12:29:32 -0700 To: freebsd-hackers@freebsd.org X-Mailer: Apple Mail (2.618) 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 19:30:56 -0000 On Jun 30, 2004, at 23:33, Q wrote: > > On 30/06/2004, at 4:40 PM, Chris Zumbrunn wrote: > >> >> On 30. Jun 2004, at 3:01, Alasdair Lumsden wrote: >> [snip] > 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. To get pedantic, the Darwin kernel of Mac OS X is not a microkernel. Although it used the code-base of Mach 3.0 as a starting point, it is monolithic, as were the pre-3.0 versions of Mach. In fact, I doubt at this point that you could get any micro-kernel functionality to work based on Darwin. > 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 device driver model (IOKit) is C++, using the "embedded C++" constraints to avoid a huge C++ runtime in the kernel. Other extensions (file system and network plugins), however, are not. > 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. I'm not sure precisely what you mean here, but the Darwin kernel has been completely rewritten since the days of NeXT. There may be minor bits of NeXT code left, but I don't think it's much. > 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. Sounds like you've been doing some homework :-} Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | It's not whether you win or lose... | It's whether *I* win or lose. *--------------------------------------*-------------------------------*