该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在问题贴“苹果的系统是bsd吗?”中,@神之赞歌 (即赞歌天使、*bsd那厮)提到“这个比较复杂。就像 Android 对于 Linux。”、“跟Android一样,内核也是改动过的。”
愚以为要么是其不懂,以至于存在误解,要么是其故意偷换概念,以下简述之
(涉及darwin的内容援引自mac dev lib)
darwin的kernel包含:bsd、fs、mach、networking
1、mach是“heart of darwin”(apple原话,一个字不带改的),提供:protected memory、preemptive multitasking、advanced virtual memory、real-time support等。足见其os的核心地位:mm、scheduling
2、bsd部分提供:process model、basic security policies、threading support(posix threads)、networking support(bsd sockets)。同为“support”,需注意到,其中threading以mach的multitask能力为基础;而networking是以freebsd实现的协议栈为主体,从接口至下实现的全套设施。此外,bsd还提供作为os的重要能力的ipc,及fs支持
(其他os组件不赘述)
bsd是darwin的重要组成部分不言而喻,但也不该由此忽略另一些os核心能力的提供者mach的重要性
另一方面再来看android,其核心就是linux kernel,改动极小(不涉及任何核心部件)。kernel上层未使用常见发行版使用的glibc,而使用的是elibc,但这和os kernel毫无关系
由此可知,用bsd之于darwin来类比linux kernel之于android是不妥当的。前两者在后两者中占的比重有质的区别。bsd是darwin不可或缺的有机组成。而android的kernel就是linux kernel,这点毋庸置疑