首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux基础>经验技巧>正文

Gentoo版Linux操作系统的前世今生

http://www.oklinux.cn  2006-01-01  来源: 赛迪网技术社区  pinkfire   会员收藏  游客收藏  【 】 

编译器的艺术

在我们尝试解决glibc 线程问题的时候,我给Ulrich Drepper发了封email(他是Cygnus的一员并且在glibc的开发中举足轻重)。我在e-mail中提到了我们碰到的POSIX线程问题和我们在Enoch中使用pgcc来获得优化的性能。在他的回信中他这样提到(我解释一下):“我们自己的包含在CodeFusion中的编译器制作的可执行代码比其他的一些编译器、比如pgcc编译出来的代码执行速度更快速。”显然我对测试测试Cygnus那帮家伙开发的神秘的“turbo”编译器非常有兴趣。

因此我申请拿到了一个Cygnus Codefusion 1.0的demo拷贝以便我可以对它的性能做一个测试。Omegadan和我对测试的结果很吃惊,它同Ulrich提到的那样出色。x86的后端提高了 90%的有关cpu-intersive的可执行文件的执行效率(比如bzip2)。几乎每一个程序都能从中获得至少10%的真实世界的性能提升,而我们所作的仅仅是换了一个编译器。Enoch的速度也因此获得了30%-40%的提升。同时性能也提高了不少,提升的幅度超过了我们以前把编译器从gcc切换到pgcc时提高的幅度。显然,在对这个编译器的测试后,我们很希望把这个编译器包含在Enoch中,有点幸运的是CodeFusion CD中的包含的源代码遵循的是GPL,这样在Enoch中使用这个编译器已经可以算是已经得到了完全的认可了..........,至少我们是这么想的。

异常事件的发生

为了能在Enoch中使用这个编译器,我给Cygnus的市场部主管发了一封电子邮件,但是期望中的“哦,拿去用好了,感谢使用我们的编译器!”这样的回复并没有收到,取而代之的是一句“虽然在技术上我们许可使用Cygnus的编译器,但是我们强烈建议不要在在Enoch中使用该编译器或是包含它的源代码。接着在我的回复中我问了他们这样一个问题:“既然不愿意让别人使用它的源代码,为什么还在以GPL的许可条例来发布它的源代码?”作为一个猜测,我觉得他们事实上是不想以GPL的方式来发布他们的源代码的,但是由于这个编译器是源自egcs(以GPL方式发布的),他们除了以GPL方式发布之外别无选择。

这是当某一个公司想使用开源的代码来生产私有产品这样的情况时,GPL如何阻止这样的事情发生的一个很好的例子。我比较有根据的一个猜测是 Cygnus担心我们使用这个编译器后将会打击到他们整个产品框架的销售,更加奇怪的是不管是他们的行销方案还是InfoWorld的预览中都没有提及包含在CodeFusion中的那个新的编译器,因为CodeFusion销售的是一套“development IDE”而不是一个编译器。

为了缓解一下他们那种偏执的态度,我提出了个建议,就是在我们的Enoch主页上放置上CodeFusion的签注文件并加上一个链接来刺激 CodeFusion的销售。从我个人的观点来说,我不认为一个“turbo”的Enoch会影响到CodeFusion(虽然它是一个IDE产品)的销售情况。但是我还在想方设法的令到他们愉快,比如告诉他们这个IDE的组件是一个商业化的产品,我们也并没希望或者有什么意图用Enoch来发行它。

我把这个(大方的)请求用电子邮件的方式发给了Cygnus,但是收到的确实另一个奇怪的回复。他们想得到所有我们关于“市场元素”方面的具有权威的权利(显然,这也包括了我们网站上的内容),真是太令人震惊了。Cyguns的营销团队似乎对Linux社区和GPL的运作一无所知,事到如今我终于决定终止与Cygnus彼此间的联系,因为再这样下去事情会变得怎么样谁都不知道。与此同时,我们为Enoch准备了两个版本,一个是内部的 “turbo”版,一个是公开的“non-turbo”版,其实就是把决定留在将来再去做。

但是几个月之后,他们就把CodeFusion x86的backend换成了gcc 2.95.2,现在不只是那些知道包含在CodeFusion CD中的“隐秘的GPL编译器”的这群人可以获益,几乎每一个人都可以从这个新的优秀的backend中获益了。然后我们还是决定继续前行,尽量使用 gcc来替代CodeFusion的编译器。在gcc 2.95.2已经越来越成熟的情况下,我们已经可以放开Cygnus了(同时,RedHat却为购买这个CodeFusion而花费了比较冤的一笔钱了。)(注:新的x86版本gcc 2.95.2的backend为新的Linux发行版提供了一开始我们提到的很重要的速度提升,它也为FreeBSD 4.0相对3.3.6版本速度上提升做出了很大的贡献。你注意到这两个提升的不同点吗?)

共10页: 上一页 [1] [2] [3] [4] [5] 6 [7] [8] [9] [10] 下一页

上一篇:Linux下程序开发:QT中使用图形库   下一篇:Linux操作系统的声音设备编程实例


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Linux操作系统的声音设备编程实例
·Linux下程序开发:QT中使用图形库
·Linux操作系统的X86汇编程序设计
·Linux操作系统的编程环境详细介绍
·Linux进程间通信:管道及有名管道
·Linux下程序开发:QT的信号与槽机制
·Linux VS Unix你的真命天子到底是谁
·Linux下程序开发:使用QT制作Skin
·Linux程序开发:QT中的多线程编程
·Linux下程序开发:用QT创建新风格
·Linux上实现Socket的多进程实时通信
·开发Linux操作系统后台服务进程详解
·流氓软件猖獗使Linux到最佳推广时期
·Linux系统下广播程序制作介绍(上)
·Linux系统PDA软件开发环境的构建
·难得一见十大经典Linux系统当机画面
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·成功升级到红旗Linux6.0 SP1经验分享
·Ubuntu游戏之平行球的安装
·Ubuntu与Windows双系统使用时的注意事
·Ubuntu下安装矩阵实验室Matlab
·Ubuntu 7.10下wine-0.9.57的中文配置
·Linux初学指南 Ubuntu下rpm包的安装方
·Fedora 8正式版下载地址分享
·惠普笔记本6510B中安装Fedora 8成功例
·Fedora 8 下JDK 6.0 配置技巧
·Ubuntu 3D桌面特效展示!超绚目(图)
·解析Linux系统下GRUB故障修复
·Linux终端模式下查看电脑的硬件配置情
  阅读排行
·Linux爱好者入门教程
·Linux操作系统下的串口通信学习笔记
·从硬盘安装RHEL 5(Red Hat Enterprise
·Vim实用技术第一部分:实用技巧
·Vmware Workstation 5.0.0使用说明
·VM中Linux虚拟机下安装VMware Tools
·新手看招:调试工具GDB基本知识全接触
·Linux进程间通信:管道及有名管道
·如何在Linux/FreeBSD下玩模拟器游戏
·探索Linux 操作系统内存模型和管理
·Linux系统中用ALSA驱动声卡流程详解
·并不绝对安全:Linux下安全十二法则
·Linux创建文件及挂载系统流程详解
·将Linux代码移植到Windows的简单方法
·Linux操作系统网络驱动程序编写详解
网摘收藏: