apple 似乎没有什么开源的东西?

2019-06-27 19:26:43 +08:00
 abmin521
除了 swift
5241 次点击
所在节点    Apple
18 条回复
sanddudu
2019-06-27 19:31:05 +08:00
https://opensource.apple.com/

开源和不开源并不意味着什么
dot2017
2019-06-27 19:35:09 +08:00
是的,🍎💊
EIJAM
2019-06-27 19:35:21 +08:00
WebKit
itqls
2019-06-27 19:37:13 +08:00
哪怕你百毒一下,都不会问这种问题。
maxco292
2019-06-27 19:37:23 +08:00
llvm
keelii
2019-06-27 20:08:02 +08:00
开源是一种权利,不是义务。
abmin521
2019-06-27 20:31:21 +08:00
bringyou
2019-06-27 20:39:57 +08:00
foundationDB
chtan
2019-06-27 21:07:53 +08:00
4l 人才 果然章口就莱
lcdtyph
2019-06-27 21:14:37 +08:00
opencl 也是苹果先弄出来的,虽然后来被抛弃了
secondwtq
2019-06-27 21:30:44 +08:00
如果你只做互联网,那对你来说就只有 Swift,如果你只做互联网,并且对其他领域毫无兴趣,那么一辈子你都只知道 Swift


Apple 开源的东西不少,不过有个特点,很多项目都是买过来之后开源的(或者说不是完全原创的)
Swift 所依赖的 LLVM 是买 UIUC 的,但是 Apple 前期的支持对 LLVM 的成长起了非常重要的作用,现在 LLVM 社区已经是典型的大公司支配的开源社区,Apple 的主导权被 Google 分了一半了
另外 LLVM 不是单独一个项目,还有 Clang 前端、libc++ 标准库、LLDB 调试器、lld 链接器等子项目,当然 Apple 应该不是在所有子项目中都活跃的。Swift 和 LLVM/Clang 同出 Chris Lattner 之手,翻一下会发现这些项目的代码风格是非常相似的
除了 Swift 之外,LLVM 还是 Rust、Julia 等语言的基础,AMD 的 AOCC 以及 GPU 驱动也是基于 LLVM 的
Swift 所依赖的基础库 Foundation 也是一块开源的,但是 Objective-C 版本的 Foundation 貌似并没有开源,虽然如此,这俩库共同依赖的 C 库 CoreFoundation 却是开源的
为 Swift 提供智能提示功能的 SourceKit 是开源的,我没看过源码,猜测这个应该是严重依赖于 Swift 编译器本身的
Apple 为 Swift 和 OC 钦定的并行解决方案 libdispatch 是开源且跨平台的
WebKit 是当年 OS X 需要一个浏览器,于是就 fork 了 KDE 的 KHTML 和 KJS,由于 KHTML 当时貌似是 LGPL 协议,所以 WebKit 原则上是必须开源的。后来乱拳打死老师傅,现在没人知道 KHTML 了。之后历史又重复了自身,WebKit 被 Google fork 出的 Blink 乱拳打死老师傅
需要注意的是 WebKit 也是个巨型项目,内部包含 WTF、WebCore、WebKit、JavaScriptCore 和 WebInspector 等多个子项目

UNIX 系统标准的打印机管理系统 CUPS 是 Apple 买过来的,现在是开源的,之前是不是不知道
Apple 还买了个数据库软件 FoundationDB 开源在 github 上
此外 Apple 平台的 OS 内核 XNU 一直都是开源的,这个也是拼的 BSD 和 Mach,需要注意的是虽然 kernel 开源,但是在换到 x86 之后就没有完整的开源驱动栈了,Apple 官方关于驱动的资料也非常稀有(尤其是非桌面平台),间接导致 XNU 内核的开源系统失去了意义。XNU 源码树里面还包含 Apple 的驱动框架 IOKit,号称可以写跨平台驱动,然而实际只能写 XNU。总之摆明了就是跑 Apple 系统只能用 Apple 硬件。所以这个应该算是 Apple 最没用的开源项目 ...
此外还有一些底层组件如 dyld、Security、Objective-C 和 Swift 的 Runtime 等是开源的,不过这些东西如果不是 hack Apple 平台的话貌似没人关注

除此之外 Apple 还合作参与了若干技术标准和开源项目,比如和微软合作的 TrueType,Apple 自己还提出了 OpenCL (可以看下 OpenCL 的 Logo,很明显的 Apple 风,和 Khronos 其他标准都不一样)。Apple 在 W3C 也有很强的存在感,不过这个不好统计具体有哪些工作。
不过 Apple 对技术标准的态度让人很纠结,比如对 OpenType 的支持不是很好,为了推 Metal 直接 deprecate 了 OpenGL 和 OpenCL,并且一直没有 Vulkan 的官方实现之类的奇葩事情

Apple 曾经试图把最好的文件系统 ZFS 集成到自己平台上,不过最后项目死了,直到最近几年才换到了 APFS。Apple 也集成了最好的动态跟踪工具 DTrace,现在的 Instruments 就是基于这玩意的。这俩东西一开始都是 Sun 开发的,不知道 Apple 参与了多少。现在 Linux 上面的支持貌似还不是很成熟,想用的话欢迎入 FreeBSD。

有一点需要注意的是 Apple 技术上的核心竞争优势之一:桌面环境和 GUI 框架( AppKit 和 UIKit )一直没有开源,很多周边的核心框架( CoreGraphics 等)也没有开源,不过我个人倒是觉得对于学习目的来说,这类项目的 API 设计重要性远超实现,倒是 LLVM、JavaScriptCore、Security、RTS 和 libdispatch 这些库的实现、优化细节都是非常重要的。

哦对了还有最重要的:Apple 最大的优势其实还是钱,Apple 的母公司曾经向 OpenSSL、OpenBSD 等开源项目捐赠数百万元
swsh007
2019-06-27 21:40:42 +08:00
👍11 楼
secondwtq
2019-06-27 22:08:37 +08:00
补一句忘说了… 对标另一个做基础平台的最近疯狂搞开源的公司,开源世界的爹 MSFT:
dotnet 可以对标 LLVM+Clang+Swift+一堆库(如果你不用 Win 也不用 macOS 的话其实你大概不会用 .net 或 swift,但是 LLVM 和 Clang 八成绕不过去。coreclr 是 JIT+GC,LLVM 偏向于静态编译(并且 C,C++,Obj-C 和 Swift、Rust 都是没有 tracing GC 的))
TypeScript 我个人认为是 C# 在前端圈,或者所谓大前端的延伸,因为 C# 一大半还是在做 server 做工具,Apple 基本是专注于自己的用户端(估计没几个知道 Mac OS X Server 和 XServe 的,连 Airport 都停了),所以其实还是对标 Swift
XNU 可以对标 WRK (两者在“对大多数人没啥用”这点上是完美 align 的——要是学 OS 你八成还是会去用某个教学 kernel 去走一遍某个公开课,然后去读 BSD 或者 Linux kernel 源码)(顺便 MSFT 还开源了 MS-DOS ...)
Security 可以对标 SymCrypt ( MSFT 前段时间刚开源的 Windows 加密库)
MSFT 的 VSCode+LSP 无敌,就连 Apple 都在自己 org 底下默默放了一个 sourcekit-lsp 仓库
但是别笑,Apple 的孙子 Blink 前段时间刚吃了微软亲儿子 MSHTML ...
(所以现在的局面是,MSFT 的 ChakraCore 和 Apple 的 JavaScriptCore 都在 V8 的淫威下瑟瑟发抖( SpiderMonkey 不配拥有名字么?)
MSFT 开源了 PowerShellCore 以及这两天 trending 的 Windows Terminal,Apple 表示不慌,咱先把 macOS 的默认 shell 改成 zsh ...

MSFT 开源了 WTF,哦不 WTF 是 WebKit 的,是 WPF,Apple ... 你敢开源 AppKit 么?或者开源个 SwiftUI 也行啊
(虽然 WPF 开源了但是还是不能直接移植 Windows GUI 程序,不过我个人觉得 WPF 是 Flutter 和 SwiftUI 的先声,只是时运不济 ... 好了我去看 Pro WPF in C# 2012 了)

这么一看 Apple 的 open source portfolio 其实并不弱。当然和 MSFT 的体量还是没法比:Apple 的黑科技一半在硬件上(可惜开源硬件刚烧起小火苗),并且 MSFT 现在是把开源当成重要战略在做,你看看 Apple 现在是什么战略,吃老本+薅羊毛?

就不说 MSFT 在 AI 等方面是 Apple 没法比的,这个 Apple 也有借口:” The ‘ s ’ in Artificial Intelligence stands for ‘ security ’, and the ‘ p ’ in Artificial Intelligence stands for ‘ privacy ’”。在我看来 MSFT 真正的杀手锏是 Microsoft Research:Z3,GraphEngine,Koka 等项目对于 Apple 来说完全超纲了,更别说那一堆 paper
alphatoad
2019-06-28 02:48:37 +08:00
十一楼已经说得很好了,毕竟是个商业公司
不开源 Metal 并且 deprecate OpenGL,不支持 cuda ……非常自信的操作
能不能吸引开发者就看造化了
abmin521
2019-06-28 09:30:35 +08:00
@secondwtq 感谢科普 底层这些东西平时也看不到,只是好奇苹果这么大的公司在这么多用户的情况下 怎么都没有什么技术输出
muxiesan1989
2019-06-28 17:02:15 +08:00
苹果开源仓库: https://opensource.apple.com/
siebel
2019-06-29 10:15:36 +08:00
Swift
shintendo
32 天前
@secondwtq
“Apple 的母公司曾经向 OpenSSL 、OpenBSD 等开源项目捐赠数百万元” 这句是认真的吗🤣

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578108

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX