苹果的另一面:开源软件重镇

苹果的另一面:开源软件重镇

2011-05-14 22:19 | 13929次阅读 | 来源:优快云原创 【已有61条评论】发表评论

关键词:iOS,开源,Mac,Apple | 作者:刘江 | 收藏这篇资讯

刚才一个苹果网站的链接在很短时间内成为Hacker News的头条。这个普通的网址却揭开了以封闭著称的苹果公司不太为人所知的另一面:开源社区的积极一员。

正如这个网页上苹果自己所说的,它是第一个将开源软件作为关键战略的主要计算机公司。了解苹果历史的人肯定知道此言不虚。苹果最重要的软件产品——Mac OS X的内核XNU再加上一些驱动等核心组件合称为Darwin,就是一个开源项目。这个开源项目有个可爱的吉祥物Hexley(达尔文的斗犬赫胥黎是也,不过为什么是鸭子的形状,是因为混合吗?),熟悉FreeBSD的人应该发出会心一笑吧:

这是一个堪称完美的混合内核,著名学院派操作系统Mach的微内核提供了足够的灵活性,也支持着系统的任务、线程、进程、消息传递(IPC)、RPC、SMP调度支持、保护式内存、虚拟内存管理等主要底层功能;而Unix正宗FreeBSD则满足了足够的性能要求,并提供了POSIX API、文件系统、网络栈、安全、抢占式多任务、用户与组管理、权限管理等特性;此外还有Apple独有的面向对象设备驱动框架I/O Kit。这个内核的模块性如此之好,以至于苹果的架构师们能够比较自由地为Mac电脑以及iOS设备选择底层硬件,从PowerPC到Intel,再到ARM……

 

Darwin架构图

作为目前普通用户最多的类Unix操作系统,Mac OS X中还内置了Unix中常见的各种开源软件,包括Ruby、Python、Perl等语言开发环境以及各种工具。也难怪现在越来越多程序员将Mac OS作为开发机,并渐渐“沦为果粉”……

苹果的另一个著名开源项目大家应该都听说过,但未必知道出自苹果。这就是浏览器引擎WebKit。WebKit(开源项目网址)是1998年苹果工程师开发的一个(KDE开源项目旗下)KHTML与KJS派生版本,开始的时候代码会提交到KDE项目中,但后来双方产生了矛盾而分裂。2005年6月,苹果宣布WebKit开源,成为一个独立的项目。

除了Safari之外,排名第三的开源浏览器Chrome也是基于WebKit的,甚至Adobe的AIR和Creative Suite CS 5也使用它来渲染HTML。当然,使WebKit日益重要的是手机,目前大多数智能手机浏览器包括Android、iPhone、黑莓、Symbian都基于WebKit,据估计目前用户已经超过4亿。今天的WebKit项目开发团队中,除了苹果的工程师外,Google也是生力军,此外还有不少RIM公司的人,他们应该是来自被黑莓收购的Torch浏览器开发团队。

苹果还有几个在更专业的领域里非常重要的开源项目,比如编译器框架LLVM,异构编程框架OpenCL,服务发现协议实现Bonjour等。其中,LLVM现在已经成为语言创新的温床,看看都有哪些项目因此而如虎添翼吧。

了解了苹果在开源方面的贡献,你对它的印象是否已经有所改观?其实也不稀奇,苹果是一家工程师文化深厚的公司,开源本来就是应该是工程师文化的一部分。

网友评论(共 61条评论)..
  • najifen111 2011-05-21 15:04:20

    Objective-C就是SmallTalk之父在Apple工作时搞出来的。所以Objective-C的最大特点就是完全就完全兼容C标准再加SmallTalk消息机制。你好好去看看Wikipedia

    回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

    • ywj-xp 2011-05-15 08:20:34

      得了吧,苹果开源是因为用了开源的东西,并且还想从开源社区得到更多的东西
      它贡献的,和它得到的,以及它诱使开发人员替他贡献后得到的一比,简直是小巫见大巫

      回复(13) 支持(12) 反对(13) 举报(0) | 13条回复..

      • gltop 2011-05-15 08:59:23

        这本来就是开源能够得以发展的固有规律。如果都是付出的多回报的少,我们也就看不到开源的今天了。

        回复(0) 支持(8) 反对(0) 举报(0)

      • zenny_chen 2011-05-15 15:24:52

        你懂个P!WebKit就是Apple自己的!Objective-C开源到GNU之前也是Apple持有的!

        回复(2) 支持(4) 反对(8) 举报(0)

      • next163 2011-05-15 15:25:33

        开源不是指只付出不获取,你想让全世界的开源人士都饿死啊

        回复(1) 支持(9) 反对(0) 举报(0)

      • zenny_chen 2011-05-15 15:25:37

        另外,OpenCL也是Apple先撰写出来,然后再提交给Kronos开放标准的。给你长点知识!

        回复(0) 支持(2) 反对(4) 举报(0)

      • public_void_kill 2011-05-15 15:54:24

        无知者无畏阿.

        回复(0) 支持(2) 反对(1) 举报(0)

      • tompaz 2011-05-15 21:00:11
        引用内容next163 2011-05-15 15:25:33开源不是指只付出不获取,你想让全世界的开源人士都饿死啊..

        对于我们的骄傲,腾讯联想类是坚决只获取不付出的

        回复(0) 支持(8) 反对(1) 举报(0)

      • aihui109 2011-05-15 23:26:41
        引用内容zenny_chen 2011-05-15 15:24:52你懂个P!WebKit就是Apple自己的!Objective-C开源到GNU之前也是Apple持有的!..

        放屁..胡言乱语之前,你就不能自己先搜索一下?

        回复(1) 支持(4) 反对(3) 举报(0)

      • zenny_chen 2011-05-17 21:20:10
        引用内容aihui109 2011-05-15 23:26:41放屁..胡言乱语之前,你就不能自己先搜索一下?..

        搜你个魂啊!这些都是常识!哦,对了,如果你在百毒上看到的话那偶真是要昏厥过去了,呵呵呵呵呵呵⋯⋯

        回复(1) 支持(2) 反对(2) 举报(0)

      • aihui109 2011-05-18 09:04:00
        引用内容zenny_chen 2011-05-17 21:20:10搜你个魂啊!这些都是常识!哦,对了,如果你在百毒上看到的话那偶真是要昏厥过去了,呵呵呵呵呵呵⋯⋯..

        随便你晕。。。说实话,你的常识还不如百毒.

        回复(1) 支持(3) 反对(1) 举报(0)

      • zenny_chen 2011-05-18 10:51:55
        引用内容aihui109 2011-05-18 09:04:00随便你晕。。。说实话,你的常识还不如百毒...

        呵呵呵,是呀,百毒会让你去购买三聚氰氨奶粉,它确实比偶有知识得多,尤其是化学方面⋯⋯

        回复(1) 支持(1) 反对(2) 举报(0)

      • aihui109 2011-05-19 12:39:39
        引用内容zenny_chen 2011-05-18 10:51:55呵呵呵,是呀,百毒会让你去购买三聚氰氨奶粉,它确实比偶有知识得多,尤其是化学方面⋯⋯..

        不仅化学方面,胡扯你也确实跟百毒有点差距.....
        就你这Y的,确实也只能跟百毒来比比。

        回复(1) 支持(3) 反对(1) 举报(0)

      • lupingloveyou 2011-05-21 10:55:42
        引用内容zenny_chen 2011-05-15 15:24:52你懂个P!WebKit就是Apple自己的!Objective-C开源到GNU之前也是Apple持有的!..

        Objective-C 能干什么?
        还不是服务于Mac、IOS……

        回复(0) 支持(1) 反对(1) 举报(0)

      • zenny_chen 2011-05-21 13:37:53
        引用内容aihui109 2011-05-19 12:39:39不仅化学方面,胡扯你也确实跟百毒有点差距.....
        就你这Y的,确实也只能跟百毒来比比。..

        哈哈哈哈哈……一看你这厮就是百毒的簇拥啊!!!

        回复(0) 支持(1) 反对(0) 举报(0)

    • bencaomao 2011-05-21 10:21:04

      呵呵呵呵呵呵呵呵!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

      • quanzi0214 2011-05-20 21:02:58

        看评论,开了眼界。

        回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

        • ChaoZhang 2011-05-20 14:09:19

          其实就是搞笑吗,苹果拿着BSD的内核代码,不给开源做点贡献怎么能行呀,这也是应该的。

          回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

          • ADF1230 2011-05-15 23:51:36

            看成OpenGL了。。。汗

            回复(1) 支持(0) 反对(0) 举报(0) | 1条回复..

            • imstyle1001 2011-05-19 13:36:39

              我觉得苹果开源 openCL 是应为他做不起来,现在主要是NVIDIA在用openCL做图形上的高性能计算

              回复(0) 支持(0) 反对(0) 举报(0)

          • zhangjunjie2009 2011-05-19 13:28:58

            还是开源好啊!

            回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

            • janic716 2011-05-19 10:12:18

              不要天真的以为开源=免费.开源是为了把蛋糕做大,让更多的人加入进来,再通过定制服务或者其他方式获取利润.

              回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

              • jhuang4545 2011-05-18 17:04:30

                呵呵,辩论赛了

                回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

                • notpurec 2011-05-18 10:50:27

                  瘘猪是自欺欺人。你不应该为了达成自己的观点而选择性失明。掩耳盗铃的蠢事被你做绝了

                  回复(0) 支持(3) 反对(0) 举报(0) | 0条回复..

                  • s791118 2011-05-15 20:16:50

                    各有各的优点,但windows绝对是有其不可超越的地方

                    回复(1) 支持(1) 反对(1) 举报(0) | 1条回复..

                  • redleaves 2011-05-15 03:09:54

                    如果不是因为原本就要使用现有的开源的代码,苹果会开源?

                    回复(6) 支持(6) 反对(3) 举报(0) | 6条回复..

                    • LiuDian 2011-05-15 03:30:32

                      BSD的协议不要必须公开代码。苹果为啥就不能支持开源?

                      回复(1) 支持(3) 反对(0) 举报(0)

                    • redleaves 2011-05-15 17:58:25
                      引用内容LiuDian 2011-05-15 03:30:32BSD的协议不要必须公开代码。苹果为啥就不能支持开源?..

                      不是说它不能支持.只不过封闭是苹果的一贯做风而已.
                      说到BSD协议.APPLE敢把他的OS也开源?用了别人BSD的代码,对BSD却一点贡献也没有.BSD社区的人,对苹果还有是相当大的意见的.

                      回复(1) 支持(5) 反对(4) 举报(0)

                    • zenny_chen 2011-05-15 18:31:55

                      笨笨们。Apple的Objective-C开源给GNU了!Darwin完全是Apple自主的,自愿作为Open-Source Project的!WebKit完全是Apple自主研发的!OpenCL完全是Apple自主撰写的标准,然后提交给Khronos开放标准。你们以为Apple是百毒?疼讯?华为?呵呵呵呵⋯⋯都是些井底的蛤蟆!

                      回复(1) 支持(8) 反对(3) 举报(0)

                    • tcy 2011-05-15 21:50:54
                      引用内容redleaves 2011-05-15 17:58:25不是说它不能支持.只不过封闭是苹果的一贯做风而已.
                      说到BSD协议.APPLE敢把他的OS也开源?用了别人BS..

                      真是搞笑,apple的员工里头有FreeBSD的大牛。

                      回复(0) 支持(1) 反对(0) 举报(0)

                    • aihui109 2011-05-15 23:22:22
                      引用内容zenny_chen 2011-05-15 18:31:55笨笨们。Apple的Objective-C开源给GNU了!Darwin完全是Apple自主的,自愿作为Open-Sour..

                      obj c本身就是开源的,何谈归属于apple?
                      同理,webkit也是.

                      回复(1) 支持(1) 反对(1) 举报(0)

                    • zenny_chen 2011-05-16 09:50:09
                      引用内容aihui109 2011-05-15 23:22:22obj c本身就是开源的,何谈归属于apple?
                      同理,webkit也是...

                      Objective-C就是SmallTalk之父在Apple工作时搞出来的。所以Objective-C的最大特点就是完全就完全兼容C标准再加SmallTalk消息机制。你好好去看看Wikipedia

                      回复(0) 支持(1) 反对(3) 举报(0)

                  • szvsking 2011-05-15 18:10:17

                    为什么说Windows支撑着我们这个世界的运转?在如下的行业中,Windows都是处于统治地位的:采矿冶金、电力生产、石油开采、物流运输、银行金融、零售餐饮、仪器仪表、生产管理、卫生医疗、教育教学、交通管理、娱乐传媒、垃圾处理……

                    特别推荐专题:Windows Server编年史

                    这些行业维持着我们这个世界的运转,而Windows支持着这些行业中的大部分软件系统。甚至苹果商店的橱窗,也不得不使用Windows来做多媒体展示。

                    总有很多搞IT的人(特别是程序员)恨不得微软立刻死(一般是Linux和Mac的粉丝),他们有各种各样的理由,许多都很宏大、很冠冕堂皇。但是我一般不会买帐,因为我相信多样性之美,并且我比那些偏激的程序员们略微多了一点点常识,知道我们现在的这个世界,是由Windows来支撑着的。

                    回复(9) 支持(11) 反对(9) 举报(0) | 9条回复..

                    • szvsking 2011-05-15 18:10:35

                      采矿冶金,离不开Windows(包括生产管理如作业面规划分析、钻机控制、熔炉管理,和信息系统);

                      电力生产,离不开Windows(包括生产管理,信息系统等);

                      石油开采,离不开Windows(包括油井生产管理,石油勘探,wellbore规划和分析等);

                      物流运输,离不开Windows(包括管理终端,集装箱装载规划,通讯调度等);

                      银行金融,离不开Windows(包括ATM机,柜台终端,交易终端等);

                      零售餐饮,离不开Windows(包括计费系统,仓库/座位管理等);

                      仪器仪表,离不开Windows(包括高端仪器本身,仪器的设计制造过程等);

                      生产管理,离不开Windows(包括各种ERP系统,财会系统,车间管理终端等);

                      卫生医疗,离不开Windows(包括各种仪器本身,仪器设计制造过程,HIS系统等);

                      教育教学,离不开Windows(这个还用举例么?);

                      交通管理,离不开Windows(交通监控,机场/铁路流量规划控制,救援系统等);

                      娱乐传媒,离不开Windows(电视电影节目采编,后期制作,广告设计制作展示等);

                      垃圾处理,离不开Windows(嗯,其实在中国是离得开的);

                      回复(1) 支持(5) 反对(6) 举报(0)

                    • szvsking 2011-05-15 18:11:28
                      引用内容szvsking 2011-05-15 18:10:35采矿冶金,离不开Windows(包括生产管理如作业面规划分析、钻机控制、熔炉管理,和信息系统);

                      ..

                      ……这个单子还可以列得很长。试想,如果没有了Windows,这些行业要如何才能运转?

                      (我知道有些人会不服气,他们会认为,这样“高端”的应用,肯定不会用的是Windows……其实现在网终上的各种行业信息已经有很多了,每个人都完全可以去搜索一下,看看在我上面列举的这些行业,什么操作系统才是主流的。当然,我也可以给出部分软件的列表和截图等等,但是目前我不打算这样做)

                      嗯,再加一条:中国军方的高科技系统,离不开Windows……

                      在这些领域,Linux也许可以代替Windows,但这么多年,Linux也只在服务端发展得不错,因为运维人员可以玩得转Linux,而普通用户却不行(在这里我不打算论述,只说些例子:某些机构为了省钱,全面采用Linux,但最终发现总体费用太高,还不如买Windows划算,于是又换回了Windows)。

                      Mac OS是无法替代Windows的。我之所以敢这样说,还是因为它是不开放的。可能有些人又要对此说法嗤之以鼻,但“开放”这个词的意义,远比一些爱走极端的人所能理解的要有意义。还是举几个例子吧,比如你无法制造一个示波器,然后把Mac OS装到其中(装一台完整的Mac机器进去是行不通的);你无法制造一台ATM机,里面安装Mac OS(同样,一台完整的Mac机器也是不可取的方案);你无法制造一个大广告牌,然后安装Mac OS(这种方案里,理论上可以嵌一台完整的Mac机器到里面,但是成本会增加很多,机械设计和散热方案还需要额外更改——所以苹果商店橱窗里用的展示系统一般也是基于Windows的)……

                      这么多的现有系统,在Windows上的投入,应该是一个天文数字。所以目前最合理的选择还是让它继续下去,支撑着我们的世界继续运转。

                      回复(2) 支持(5) 反对(4) 举报(0)

                    • szvsking 2011-05-15 18:11:56
                      引用内容szvsking 2011-05-15 18:11:28……这个单子还可以列得很长。试想,如果没有了Windows,这些行业要如何才能运转?

                      (我知道有些..

                      那么未来呢?近期的未来似乎是比较确定的,长远的未来,又有谁能说得清呢——想想30年前的电脑是什么样子的……

                      补充:有人提到Mac在增长,Win在失势。其实全球的统计数据是这样的,2010年全球个人电脑出货量是368MM,其中Mac占4MM,也就是1.08%,所以Mac还是有点任重道远的。

                      再补充:中国人似乎一般都喜欢看作者也表个态,以便划分一下立场?其实我也很烦现在的Windows(很多方面,不一一列举了),只不过我觉得个人喜好不应该影响对事物的认知——不能因为我不喜欢它,就说它快要完蛋了(甚至像有些人那样说它已经完蛋了)。

                      回复(0) 支持(2) 反对(3) 举报(0)

                    • zqdsqycx 2011-05-15 18:57:41

                      windows会败给我的。

                      回复(0) 支持(3) 反对(2) 举报(0)

                    • iamybj 2011-05-15 20:33:30

                      UNIX和类UNIX系统支撑着这个世界。
                      采矿冶金、电力生产、石油开采、物流运输、银行金融、零售餐饮、仪器仪表、生产管理、卫生医疗、教育教学、交通管理、娱乐传媒、垃圾处理……
                      这些行业里无不是UNIX/Linux处理关键数据,支持24小时不间断服务。

                      回复(1) 支持(4) 反对(3) 举报(0)

                    • tompaz 2011-05-15 20:58:36
                      引用内容szvsking 2011-05-15 18:11:28……这个单子还可以列得很长。试想,如果没有了Windows,这些行业要如何才能运转?

                      (我知道有些..

                      幼稚的可笑,你见过哪个行业用window做服务器的?
                      用小型机中型机,除开unix就没的选择了

                      回复(0) 支持(3) 反对(5) 举报(0)

                    • aihui109 2011-05-15 23:30:04
                      引用内容iamybj 2011-05-15 20:33:30UNIX和类UNIX系统支撑着这个世界。
                      采矿冶金、电力生产、石油开采、物流运输、银行金融、零售餐饮、仪器仪表..

                      。。。我勒个去,没电、没硬件你支持个几把。

                      回复(0) 支持(7) 反对(0) 举报(0)

                    • aihui109 2011-05-15 23:30:35

                      我就搞不明白。。。。怎么这么喜欢比来比去

                      回复(0) 支持(0) 反对(0) 举报(0)

                    • Lynn_H10 2011-05-16 13:42:41

                      这些行业都用windows你好像很自豪啊

                      回复(0) 支持(0) 反对(0) 举报(0)

                  • iamqk 2011-05-16 09:56:32

                    那个不叫鸭子,叫鸭嘴兽。。。

                    回复(0) 支持(7) 反对(0) 举报(0) | 0条回复..

                    • junfu2009 2011-05-15 23:16:28

                      都是高手啊!了解了解。。。

                      回复(0) 支持(1) 反对(0) 举报(0) | 0条回复..

                      • iamybj 2011-05-15 20:29:09

                        以前的时候,我特讨厌Apple的东西,后来看MIT的网络课程,发现有个老师用的就是mac, 
                        mac os 实际上和linux一样也是一种类UNIX系统,各种unix工具都可以在mac os上使用,从此开始喜欢mac...
                        有钱了咱也买个mac book,不玩那linux,玩mac os照样相同。

                        回复(1) 支持(1) 反对(0) 举报(0) | 1条回复..

                        • zenny_chen 2011-05-15 22:32:39

                          呵呵,这位大侠早就可以加入Mac阵营了。现在Apple力推LLVM,LLVM编译器加LLDB调试器,实在是太爽了!LLVM将会在OpenGL Shading Language以及OpenCL中发挥更出色的效果。

                          回复(0) 支持(1) 反对(0) 举报(0)

                      • liao123abc 2011-05-15 21:43:28

                        看评论,开了眼界。

                        回复(0) 支持(2) 反对(0) 举报(0) | 0条回复..

                        • felix0730 2011-05-15 21:26:48

                          还是开源好

                          回复(0) 支持(1) 反对(0) 举报(0) | 0条回复..

                          • ahui132811 2011-05-15 20:00:26

                            苹果,谷歌,真牛X,不知道 那个姓乔的和姓施的现在关系是不是还像以前那么暧昧

                            回复(0) 支持(0) 反对(0) 举报(0) | 0条回复..

                            • sayyanfu 2011-05-15 18:59:27

                              强大的苹果,这些年大家都在模仿你啊。

                              回复(0) 支持(1) 反对(0) 举报(0) | 0条回复..

                              • zenny_chen 2011-05-15 15:23:50

                                永远支持Apple!
                                永远支持开源界!

                                回复(1) 支持(4) 反对(9) 举报(0) | 1条回复..

                              • tellxp 2011-05-15 14:03:41

                                开不开源只是一种策略而已,对市场的判断
                                现在开源的优势在于吸引人气,然后从其他方面增加收入。

                                回复(0) 支持(1) 反对(2) 举报(0) | 0条回复..

                                • liziki 2011-05-15 13:22:01

                                  还不错吧~~~~

                                  回复(0) 支持(1) 反对(0) 举报(0) | 0条回复..

                                  • realzsy 2011-05-15 10:57:44

                                    人家不开源 你也管不着~ 

                                    人家照样成为市值第一、净利润第一还有刚刚获得的第一品牌~

                                    和开源不开源没有一丁点关系~

                                    回复(0) 支持(2) 反对(4) 举报(0) | 0条回复..

                                    • dlmult 2011-05-15 10:37:13

                                      强大的苹果啊!

                                      回复(0) 支持(3) 反对(0) 举报(0) | 0条回复..

                                      发表评论/共61条评论..


                                      评论
                                      添加红包

                                      请填写红包祝福语或标题

                                      红包个数最小为10个

                                      红包金额最低5元

                                      当前余额3.43前往充值 >
                                      需支付:10.00
                                      成就一亿技术人!
                                      领取后你会自动成为博主和红包主的粉丝 规则
                                      hope_wisdom
                                      发出的红包
                                      实付
                                      使用余额支付
                                      点击重新获取
                                      扫码支付
                                      钱包余额 0

                                      抵扣说明:

                                      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
                                      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

                                      余额充值