大学计算机专业有一门课叫做《操作系统原理》,这门课只讲一种操作系统,UNIX。
iOS/mac之类的都基于Darwin,Darwin基于XNU,XNU本身是一个混合的内核:底层的微内核是基于Mach的,在此之上的另外一部分是来自于FreeBSD的POSIX兼容层。这就是我们为什么总是觉得XNU很像Unix的原因:因为它的API确实就是来自于Unix-like的FreeBSD。
所以,它肯定不可能是套壳Unix,最多能说它是套壳BSD——毕竟FreeBSD也不能堂而皇之的宣称自己是Unix,最多是Unix-like。当然,另一个角度说,说它是套壳Mach,也问题不大,甚至可以说更接近本质。
最后多说一句:开源软件世界里面,追究是否套壳,套谁的壳这类问题,实际上是毫无意义的——因为大家都是层层套壳而来的(美其名曰:站在巨人的肩膀上)。但是如果某个项目套了壳但又不承认,那问题反而更严重——说轻了是道德问题,说重了就是违反开源协议的问题。
iOS基于Darwin,不会还有人不知道吧?
Darwin前身是NeXTSTEP,NeXTSTEP由乔布斯“离家出走”期间创办的NeXT公司开发。
NeXTSTEP/Darwin的内核是XNU,XNU由乔布斯及其开发团队与NeXTSTEP同期开发。
XNU全称X is Not Unix
有个冷知识,Darwin应该是目前最成熟的“分布式系统”。
iOS、macOS、watchOS、BridgeOS(Touch Bar的固件)、HomePod的固件、AirPort的固件、AirPods的固件、夭折的AirPower的固件,都是Darwin。
(2021-06-04补充)
此处有误,AirPods使用RTKit,AirPort使用NetBSD
补充一下,Airpods 经过安全研究人员逆向以后发现是 RTKit,而不是 Darwin。Airport 的固件显示的内核信息是 NetBSD tc5e 6.0 NetBSD 6.0 (build.kernel-target.conf) #0: Mon Apr 29 18:35:13 PDT 2019 root@xapp29.apple.com:/BuildRoot/Library/Caches/com.apple.xbs/Sources/J28/AirPortFW-79100.2/Embedded/Firmware/NetBSD/Targets/J28/release/obj/build.kernel-target.conf evbarm https://arxiv.org/pdf/2005.07255.pdf
这跟某OS那种把各种操作系统混为一谈的强行分布式不一样,以上所有操作系统,基于的都是同一个Darwin。
最新消息:陈小武的学生们已经被排成一排,挨个查手机了。
最新消息:陈小武的学生们已经被排成一排,挨个查手机了。