为何 Linus 一个人就能写出这么强的系统,中国却做不出来?
知乎用户 默然 发表 你看 Linus 自传就完事了。 Linus 研究生时期开始写操作系统(大约是 91 年),那时候个人电脑(PC)虽然兴起一些年了,但是还只是小部分程序员和狂热爱好者的玩具。硬件基本上都靠自己攒,软件也是用开源系统各种 …
太长不看版:它不是:它既不是套了壳的 UNIX,也不是从 0 开发的操作系统。
UNIX® 是 Open Group 的注册商标,谁是 UNIX 它说了算。
macOS version 11.0 Big Sur 两个版本(Apple 芯片版和 intel CPU 版)均通过了 UNIX 03 认证,所以它们都是 UNIX。据我所知,以前版本的 macOS 和 OS X 也都通过了 UNIX 认证,是正牌的 UNIX。(因为它长得好看,你也可以说它是套了个壳的 UNIX)
据我所知 iOS 从来没有通过 UNIX 认证,所以你不能说它是 UNIX。
iOS、iPadOS 和 macOS 都是基于 Darwin 的 XNU 核心(基于 Mach 核心)。
Crag Federighi 在 18 年的 WWDC 上说了,iOS 从第一天起就和 macOS 共享了同一个基础。
这是 WWDC20 上架了 Apple 自研芯片支持以后的架构图。
综上,如果你想诋毁 iOS 的话,要说它和 macOS 一样,不过只是个套了个壳的 XNU 而已。
参阅:
Kernel and Device Drivers Layer
https://en.wikipedia.org/wiki/IOS#Kernel
继续有兴趣的同学可以看这本书:Mac OS X and iOS Internals:To the Apple’s Core
[《Mac Os X And Ios Internals: To The Apple’s Core》(Jonathan Levin) 电子书下载、在线阅读、内容简介、评论e.jd.com
](https://link.zhihu.com/?target=https%3A//e.jd.com/30140079.html%3Febook%3D1)
这本书清华出版社有出中文版:
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。
iOS 又没有自称全新 + 独立自主,从它发布的第一天开始就宣布自己是 Mac OS 的手机版。而 Mac OS 是部分基于 BSD 的。
另外,iOS 内核开源了十几年了,可以自己去读一下源码呀。
Open Source - Releases (apple.com)
Unix 严格来说是一个标准, 而不是一个实现. 就比如 OpenBSD/NetBSD/FreeBSD 都是 BSD 的分支, 而 BSD 是一个经典的 Unix 实现.
所谓的壳 (shell) 比起内核 (kernel) 可能还要复杂, 迁移到 OS X 的最大变化就在于前端改成了 Aqua(基于 XQuartz 实现的 X11 和 OpenGL), 后来逐渐演化成以 Metal 作为基础的 AppKit 和 UIKit, 包括 UIKit 到 macOS 运行的 Catalyst 变种, 乃至 M1 支持的直接运行 iPad/iPhone App 都是这种实现.
至于 iOS/macOS/watchOS/tvOS/iPadOS 的基础: Darwin 系统 (XNU 内核), 是 FreeBSD 和 Mach 的杂交产物.
因此 iOS 如果想要的话可以把 Mach 这一层换掉. 而目前 Android 的 AOSP 这块, App 仍然对 Linux 存在一定依赖, 所以包括微软在内还是需要提供一套 Linux 系统调用从而兼容 Android App.
而 Apple 这边也许可以把 Mach 换掉, 只要 BSD 的部分保持稳定, 对于用户就没有明显感知. 就像 Nest Hub 换 Fuchsia 一样, flutter app 一点感觉都没有.
这玩意儿有屁好研究的,乔老爷自己官宣过,iPhone runs OS X
OS X 是什么,iOS 就是什么,只是针对触屏应用,重做过表层,以及为了适应移动环境,限制 app 的权限而已
算个套壳的 freebsd 吧,本质上,从内核结构上说都是 unix,但 unix 是个很商业的概念,可不是你想叫就叫的,她的版权属于贝儿实验室,跟着被到处专卖,最后应该属于 sco 吧,现在不知道怎么样了,随着 oracle 宣布不会在 aix 上发布新版软件,最后的 unix 也可能退出历史舞台了,solaris 坟头草已经几尺了。很唏嘘,但没办法。
其实完全不比纠结于谁是谁套壳的,开源的时代,你用了别人成果,也遵守游戏规则,分享你的成果,丝毫不影像你作品的品质,可耻的是那些用了别人成果却一定要自主可控的,强行沸腾的。
1、诋毁 iOS 改变不了鸿蒙套壳的本质。
2、搅浑水只会让人对海军更生反感。
3、我们会经历鸿蒙整个的生命周期,别急别躁。
4、评论区不开。
Darwin 内核是基于 Harmony OS 的,它是 Harmony OS 的一个变种。
这种问题难道不是有指向性的么
题主提问只是想要一个自己希望的答案
比如 “是啊”“当然是” 或者“肯定是”
一点浅显的了解,也不是什么开发人员,就捡着自己懂得说
ios 其实是套壳鸿蒙!(雾)
正经回答(当然还是基于那种半吊子民科了解程度,并不专业勿喷)
其实第一代 iphone 发布的时候乔帮主就说了 ios 是 iphone run osx。所以说 ios 其实本质上是 osx 的一个改版。
osx 前身是乔帮主被赶出苹果后搞得 nextstep,用的是微内核 mash+freebsd 的混合内核,这些什么的太专业了我也不明白,总之你就知道这个混合内核就行了。这个内核叫 xnu 全称是 x is not unix…… 不过苹果自己打自己脸的跑去搞 unix 认证也是…… 当然并不能说 xnu 是套壳 unix,总之这个挺复杂的百度一下就知道了。
xnu 再加一些乱七八糟的东西就是苹果的操作系统 darwin。然后如果加上 GUI 等玩意就是 macOS。
然后就到了 07 年苹果发布第一代 iphone,当时苹果的想法是要给 iphone 开发一个强大的现代的操作系统,正好自家的 OSX 已经算是比较成熟了,干脆就直接搬过来用,所以 ios 就是在 OSX 基础上,砍了不需要的,增加适合自身使用的 GUI,从底系统底层来说仍旧是 darwin。
随后诸如 watchOS,TVOS 等等也都是基于 ios 发展开来,底层也是 darwin。
首先实名反对
那个换内核的说法,苹果无论 macOS 还是 iOS 还是各种奇怪变种的上层应用都依赖于 Mach 的特性,比如说比较常用的 XPC,以及有时候做开发时(因为 Xcode 本身或者调试程序不稳定)蹦出来的 MIG(Mach Interface Generator)错误,都是依赖于 Mach 特性的技术,莫说是换其他 BSD 内核,就算是换其他微内核,至少用户层 XPC 框架要完完全全重写。能替换的也就 GNU Mach 和 GNU MIG,可是苹果会用一个比自己手里的东西还要残废的半成品么?
回到问题本身 iOS 是 UNIX 套壳么,当然不是。
从法律角度,UNIX 商标唯一指定拥有者 OpenGroup 从来没给 iOS 授权过 UNIX 商标,只给 macOS 授权过,iOS 法律上只能是一个长得像 UNIX 的系统。
从技术角度,最纯系的 UNIX 代码目前归 Xinuos 公司持有(源自合并来的 SCO),Sun(以及 Oracle)、IBM 和 HP 则在其基础上开发的 Solaris、AIX、z/OS 和 HP-UX,这些是至少在原 UNIX 代码基础上开发的系统。而 iOS 的内核大部分来自 CMU 开发的 UNIX 替代内核 Mach,小部分自己开发以及来自 FreeBSD,用户层也来自各种 BSD,BSD 在早年间因为 UNIX 商业化的问题被迫剔除所有 UNIX 的代码,因此技术上来讲 iOS 也必不是 UNIX 套壳。
但是是全新的吗?当然不是,iOS 前身 iPhoneOS 是 macOS 的分支,初版原本可以运行 macOS 的 AppKit 的程序,后来被取消并设计了 iOS 专属的 API 集。macOS 源自于传统 MacOS 和 NeXTSTEP,传统 MacOS 源自 LisaOS,NeXTSTEP 算是 BSD 的一个超魔改分支。从历史追溯过去也有差不多 40 年历史了,全新?不存在的。
哦对,不越狱的话,iOS 是并不带有完整的 Darwin 系统的哦。
看它是不是套壳我觉得很简单,就看它重新定义了什么、卖的是个什么
UNIX 本质上是定义了那个命令行界面加一堆编程接口
iOS 可不是,iOS 是在定义一套移动端的图形界面
卖的根本不是一个东西所以根本就没有什么套壳一说
整天追根溯源的,这种复杂系统迭代个十年年早就面目全非了,除了顶层 API 接口,能找出百分之一的最初源码都难。操作系统的发展是一个需要巨量高智慧脑劳动力加跨超长时间维度的软件迭代过程,认祖归宗这种东西,也就是一堆外行整天挂在嘴上,好像你做了一个 unix like 的小内核,就能跟 iOS Linux 这些系统的开发者称兄道弟了一样。
题主什么成分不用多说了吧?华为海军这就开始视线了?
好的技术架构或者底层核心,拿来用无可厚非,毕竟站在巨人肩膀上可以看更远,很多时候没必要重新造轮子。
唯一的要求,就是如果用的是开源的,遵守开源的规范,说简单点就是,你拿了开源的研发,也开源。
并且,即使基于某个其他核心诞生的产品也不是没有核心技术,甚至价值和技术高度很可能超越父分支。如:基于 webkit 的各类优秀浏览器、facebook 的 php、Google 的安卓、苹果的 OS 家族… 他们已经完成了大量重构和优化,经历了漫长的迭代,可以说和原系统已经是两个系统了。大大方方的做好产品,也没有人会否定。
但非要去否定自己的源头,强套自主研发引人沸腾,就有点膈应了。
如果真是因为难言之隐不能明说,内就低调不要大张旗鼓的拿出和 A 公司 G 公司的对比图开发布会。
linux 套 unix,Android 套 linux,鸿蒙套 Android,所以 iOS 套鸿蒙
2007 年,第一代 iPhone 发布时,乔布斯就说了,iPhone 运行在 OS X 系统上。
而 OS X,本身就是在 Unix 的基础上做了大量修改而来的。修改了这么多年,基本上是另外一个操作系统了。
不是,但按照某些人的定义习惯来看,iPad Os 不是 iOS,而是全新自主的系统
不是套壳 Unix,是套壳 XNU。
iOS 不过是套了鸿蒙的壳,里面是啥不重要
这就要看你怎么看待 macOS 了。macOS 从 Mac OS X 时代的 10.x 某个大版本开始是有兼容 UNIX 的认证。你不能说它就是 UNIX,但相比 Shell 的高度自有化来讲,Kernel 上它的确是基于和含有开源 UNIX-like 的成分,就是 Darwin,和 BSD,FreeBSD 有关。这又要扯到 Mac OS X 的前身 NEXTSTEP。
总之,iOS 更是已经发展了太久了,不可以直接划等号。
湿啊 逼一
好家伙,这是围 救
正文中不能发 emoji 表情吗
知乎的挑唆对立,真是到了新高度了啊!
NBNB,微博都得管你叫爸爸!运营加工资!
真问题乎味儿太浓了,反串的自己立靶自己打。
这问题要是头条系,我还真信是海军或者吃华为流量的人问的。
兄弟,我怀疑你这题是为了以后洗 HarmonyOS 的
大学计算机专业有一门课叫做《操作系统原理》,这门课只讲一种操作系统,UNIX。
这是个考古题啊。这得说到 unix 标准化的一系列历史了。
由于话太多,我也懒得整了。ios 肯定不是 unix 系统,这个问题你我说了都不上算,拿着 unix 商标的人说了算。
某为开始气急败坏拉 iOS 下水辣
都不是 是套壳鸿蒙
我一个买电冰箱的人还必须搞懂制冷原理?
你套不套壳真的不重要
作为消费者我只关心好不好用
一堆行业内的人争来争去
这跟我司开会程序员比谁代码写的好
一样无聊
消费市场有几个关心你代码怎么写 系统怎么优化
他们只关心到手的产品用起来爽不爽
哄蒙是整个人类的耻辱
当然都是套壳,不只石榴籽是 kernel 套壳,桃子也是啊。
知乎用户 默然 发表 你看 Linus 自传就完事了。 Linus 研究生时期开始写操作系统(大约是 91 年),那时候个人电脑(PC)虽然兴起一些年了,但是还只是小部分程序员和狂热爱好者的玩具。硬件基本上都靠自己攒,软件也是用开源系统各种 …
万事怕认真:聊聊鸿蒙 作者:冠东兄 做过硬件,也做过软件,要说到对二者研发的体验,有一点很突出:硬件你做出来了,就能用了,好用不好用是另一码事。但软件不同,对于软件来说,有没有是一回事,能不能用是另一回事,更不要说好不好用了。 一个软件开发 …
做过硬件,也做过软件,要说到对二者研发的体验,有一点很突出:硬件你做出来了,就能用了,好用不好用是另一码事。但软件不同,对于软件来说,有没有是一回事,能不能用是另一回事,更不要说好不好用了。 一个软件开发出来,往往经过了性能测试,证明可以工 …
知乎用户 默然 发表 你看 Linus 自传就完事了。 Linus 研究生时期开始写操作系统(大约是 91 年),那时候个人电脑(PC)虽然兴起一些年了,但是还只是小部分程序员和狂热爱好者的玩具。硬件基本上都靠自己攒,软件也是用开源系统各种 …
知乎用户 [知乎用户](undefined) 发表于 6/22/2020 小更一下 Translate App效果测试增加到文章末尾 iOS 14增加了粘贴提示 关于跨平台框架的问题 谈不上噩耗那么严重,跨平台框架团队其实从day0就知道这 …