The nature of kernel of the FreeBSD

Robert Watson rwatson at FreeBSD.org
Sat Sep 9 08:02:45 PDT 2006


On Wed, 6 Sep 2006, Julian Elischer wrote:

> Eder wrote:
>
>> Kernel of the FreeBSD is monolithic, correct !!!
>> 
>> The MacOS is derived from kernel of the FreeBSD, correct !!!
>
> no, wrong.
>
> The MacOS kernel is "related distantly" to the FreeBSD kernel. It has been 
> derived from MACH 3 and MACH 2.5 which themselves had SOME components 
> derived from BSD4.3. Some of these components have been updated to the 
> equivalent companents from modern BSD systems and BSD4.4 in turn borrowed 
> the VM system from MACH. So, they are related but not in a parent/child 
> manner.  MacOS has been designed and evolved with a very different set of 
> goals from FreeBSD, so many different tradeoffs have been made along the 
> way. They have very different behaviour characteristics.

That's only partially true.  The BSD bits in the Mac OS X kernel have been 
updated to FreeBSD parts on several occasions, although the last complete 
import was quite some time ago, and moderate amounts of code from quite recent 
FreeBSD versions have been merged, including kqueue support, smbfs, etc.  The 
VM and scheduler are from Mach, but the VFS, network stack, etc, are 
FreeBSD-derived.  There has been significant divergent and convergent 
evolution -- the FreeBSD kernel snapshot imported into Mac OS X was pre-SMPng, 
so while there is significant similarity in the fine-grained locking, that's 
largely convergence due to similar data structures -- most of the details are 
different.

There are a number of reasons why Mac OS X may appear to perform worse than 
FreeBSD, especially for server-centric tasks -- among other things, a complete 
context switch occurs going to/from the kernel so that the kernel has a 
complete address space to work with.  On the other hand, the Mac OS X IPC and 
windowing system perform much better than X Windows in many cases, and they've 
invested heavily in file system performance, especially for workloads found on 
desktop computers.  The behavior of applications likeKDE ends up being 
remarkably silly on UNIX-based operating systems, whereas applications like 
Finder in Mac OS X can behave much better -- from simple things like 
getattrlist(), to complex things like having congruence in the file system 
architecture vertically through the OS and application stack.  Also, the 
FreeBSD bar is pretty high, so it's not surprising if for workloads FreeBSD 
has been designed for, it makes Mac OS X seem a bit less happy.

Robert N M Watson
Computer Laboratory
University of Cambridge

>
>> 
>> It would like to understand because the performance of a MacOS as serving
>> it is very inferior of what a FreeBSD server, being that the MacOS is
>> derived
>> from kernel of the FreeBSD.
>> 
>> It will be that somebody could explain this better to me.
>> 
>> Thanks,
>> 
>> Ederson de Moura
>
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
>


More information about the freebsd-hackers mailing list