2KB项目,专业的源码交易网站 帮助 收藏 每日签到

FreeBSD 为什么要废弃 GCC 改用 Clang/LLVM?

  • 时间:2019-01-23 18:40 编辑:2KB 来源:2KB.COM 阅读:508
  • 扫一扫,手机访问
  • 分享
摘要:
FreeBSD GCC clang LLVM 英文原文:Why is FreeBSD deprecating GCC in favor of Clang/LLVM?

摘要: GCC 迁移到 Clang 的主要原因是GCC 的GPL v3与 FreeBSD 项目目标的不兼容. 还有一些与公司投资相关的政治因素,以及来自用户的需求. 当然, 也有一些技术上的因素, 如符合标准, 容易调试. 但对于实际编译和运行性能的提升任具有争议且依赖于具体的代码, 两个编译器各有所长.

FreeBSD 和 GPL: FreeBSD 和 GPL 的关系很复杂. BSD许可证的支持者认为真正免费的软件不应该有任何使用限制. GPL支持者相信 为保护软件的自由,限制是必须的. 特别是基于免费软件来开发收费软件是不正当的行为, 而不是自由. FreeBSD项目尽量 避免使用GPL:

由于在商用PGL许可证的软件时可能带来额外的复杂情况, 我们尽可能使用更开放的FreeBSD许可证的软件来替代此类软件.

FreeBSD 和 GPL v3协议:GPL v3很明确的禁用了代码的所谓Tivoisation认证,在GPL v2协议中,存在一个可以通过硬件限制来阻止用户对软件程序进行合法修改的漏洞。怎么样很好的关闭这个漏洞是FreeBSD社区并不期望的步骤。 
在v2协议中由于臃肿的软件认证而受损的设备商如今正在向新的认证迁移。他们不再具有使用v3软件同时修改安装到本地硬件平台的自由...简短来说,将会有一大批热爱开源社区的人们突然对CPL新的认证软件的可选性变得饶有兴趣
因为GCC已经转移到GPL v3 (通用公共许可证General public license),FreeBSD被迫继续使用GCC 4.2.1 (GPL v2),它还是 早在2007年发布 ,现在已经明显过时。现实是FreeBSD没有转而使用GCC的更为现代的版本,即使是存在运行老旧编译器与(从新版本)向后移植修复之类的额外困难,所以应当考虑一下对避免GPL v3的必要性的强调。C编译器是FreeBSD基石的一个主要组件,而且是"  将FreeBSD 10作为基于GPL免费系统的 (试验性的)目标之一"。
公司投资: 就像许多主流的开源项目, FreeBSD从企业获得 投资开发工作。 尽管Apple对FreeBSD的投资与开发到了何种程度并不容易揭露,但有相当多的重叠工作,因为Apple的 Darwin OS 使用了源自BSD的稳定的 内核代码。此外,在成为 2007年开源项目之前, Clang本身是源自于一个Apple内部项目的。由于企业资源是FreeBSD项目的关键促进因素,或许迎合赞助商的需求是 一个显著的现实世界的驱动力

用户基础:FreeBSD对许多公司来说是一个诱人的开源选项,因为她的许可是简单的,低限制以及不会引导公司走向诉讼的许可。随着GPL v3以及 反 Tivoisation时代的到来,越来越多的迹象显示,未来将会 是迅速的,以设备商为驱动的多元化许可时代。随着FreeBSD逐渐觉察到了那些建立在自己许可之上的商业实体所能带来的巨大利益,对于那些要从GCC以及传统GPL迁移许可方式的合作伙伴来说,他们的将会面临越来越大的压力。

GCC存在的问题:除了许可部分,在使用GCC的过程中 还存在许多比较明显的问题。GCC并没有完全符合已制定规范标准,他的 许多扩展在ISO以及C标准规范中并没有定义。在超过300万行之多的代码中,他仅仅是“ 一个复杂的免费开源软件项目”。其复杂性使得他在发行版发行后再进行修改变成巨大的挑战

技术性的优势: Clang与GCC相比拥有许多技术上面的优势。其显著特点在于 数量众多的错误信息提示以及一个 定义良好的IDE接口。同时他又支持代码重构并且提供代码分析工具。尽管 Clang官网上提出了更有效的编译以及内存管理功能。但是实际 情况却是不同的。GCC在代码方面的表现还是比较优秀的。总之,Clang提供的二进制库比GCC 运行速度更慢
虽然使用LLVM在构建代码的时候比GCC更加迅速...但是在大多数情况下,GCC4.5的二进制类库的变现是好于LLVM-GCC和Clang...在其他的一些测试中,其表现则是接近或者是远远落后。在大多数测试中,Clang的整体二进制库是非常简单的。

总结 这样强有力的编译器并不是一次冒险将一个像FreeBDS这样的大项目改变成一个新的编译器工具链的重要激励。尤其是在二进制运行效果不佳的情况下。然而,这种情况在现实中却是站不住脚的。让你在以下几种情况中做一个选择

1)继续使用过时的GCC,

2)迁移到最新版GCC并被迫使用一个与项目目标不适应的许可,或者

3)干脆迁移到一个支持BSD许可的稳定编译器,这样的选择在现实中似乎是不可避免的。

需要清楚的是:这些情况只应用在基础系统中,并且服务于系统发布;至于其他情况,没有其他任何事情都不能阻止用户在基于FreeBSD的项目中安装和使用一个现代版的GCC

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部