- 论坛徽章:
- 0
|
[求助]MAC OS X操作系统
The code in the Darwin kernel is in several "components":
- BSD: much of the kernel functionality (system calls,
networking, file systems) is here
- Mach: derived from Mach 3.x, but integrated with the
rest of the OS like Mach 2.x; this component
handles tasks, threads, memory management, and
messaging (some, but not all, of the communication
within Mac OS X/Darwin is done with Mach
messages)
- IOKit: the device driver/device support component. An
object-oriented environment, based more or less
on embedded C++
There are some other, more minor pieces (platform expert, libsa, libkern), but the above three make up the lion's share of the kernel. In addition to the kernel, functionality is provided by loadable extensions (KEXTs); these include networking components (NKEs), file system plugins, and device components (drivers, family support, ...).
If you know FreeBSD 4.x, you may be able to recognize most of the BSD part. The networking component is changed in some significant ways, at different layers. The IP stack is more or less the same, but the area where stacks meet devices is much different. I don't know FreeBSD 5.x well enough to comment on how it matches Darwin. |
|