加入收藏 | 设为首页 | 会员中心 | 我要投稿 宿州站长网 (https://www.0557zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

如何评估一个Linux发行版的总体成本

发布时间:2019-04-10 02:14:02 所属栏目:建站 来源:Amanda Mcpherson, Brian Proffi
导读:副标题#e# 开源之道引言:为什么要翻译十一年前的一份白皮书? (本白皮书发表于 2008 年。)答案很简单,就是要学会算经济账,一个开源项目,尤其是大型的、经过多年开发的,企业利用该项目就要在开始的时候算好一笔经济账,它不是零成本,它像一个快速向

没有完美的方法来估计像 Linux 那样复杂和不断发展的软件项目的价值。虽然我们认为这种方法是最好的方法,但它可能过度计算价值的某些方面,而低估了其他方面。以下是我们认为该方法存在限制的部分:

  • COCOMO 模型是研究封闭式软件开发而设计的。因此,我们认为它低估了开源、协作开发的软件项目(如 Linux)中固有的测试复杂性。由于变更的频繁,且不论大小,而且开发者本身均是分布全球各地,Linux 生态系统参与者的测试负担比专有的独立公司高出一个数量级。
  • 衡量 Linux 发行版价值的另一个困难就是确定开始时包含 Linux 发行版的内容。我们的研究包含了 Fedora 的公共源代码库中所有软件包。但是,Fedora 本身也有不同的版本(例如 LiveCD 版本)。当然还有更大的发行版,例如,Debian GNU / Linux 的代码仓库 13 就比 Fedora 更大。还有大量的开源软件在任何一个发行版中都找不到。开源是一个非常大的宇宙,我们只是以 Linux 发行版为研究单位,尽可能的包含足够多的开源软件罢了。
  • SLOC 分析的最大弱点是它专注于软件项目的净增加。举例来讲,任何熟悉内核开发的人都会意识到,开发过程中最高的人力成本是删除和修改代码的时候。删除和更改代码所花费的精力,并未反映在与此估算相关的值中。因为在协作开发模型中,代码被开发,然后被更改和删除,真正的价值远远大于现有的代码库。聪明的你,想一下内核的开发流程:当几行代码添加到内核时,必须修改更多代码才能与现有的代码兼容。理解依赖关系和结果然后更改代码的工作在本研究中没有得到很好的体现。
  • 协作开发意味着,通常会有多个个人或小组致力于解决相同技术问题的不同方法,其中只有一种方法“获胜”而包含在最终版本中。 由于“失败”方法并未包含在最终的发布版本中,因此该 SLOC 方法未考虑这些方法的开发工作。
  • 由于 Linux 不同的发行版之间,以及同一个发行版的不同版本之间的代码行数是有着巨大差异的,所以将本研究冠以研究 “Linux” 是有点牵强的。 分析内容有很多不同的选择,我们只能选择一种。出于这个原因,我们发现所有发行版共享的离散包的估计值(例如内核)更有意义。
  • 很遗憾的是,我们只能以量来代替研究质。Linux 社区的壮大速度很快,但同时也包含了一些不被经常用到的代码,比如旧的驱动程序。但是,包含此代码非常重要,因为 Linux 中包含特定于体系结构的代码以及驱动程序(与其他操作系统不同)。因此,此数字将大于操作系统本身内不包含这些组件的其他操作系统。
  • 本研究假设所有开发者都来自美国,那么相应的就以美国劳动力的相关成本为基准来计算。尽管事实上,绝大多数的开源软件开发都是全球性的,其劳动力成本也会相应变化。
  • 本研究中反映的数字表示从头开始一款 Linux 发行版,进而计算开发所需的成本。 值得注意的是,这可以估算成本,但不会估算更大生态系统的价值,因为如此广泛使用的核心技术改变将产生巨大而深远的经济影响。

Linux 是如何增长的

本研究还没有考虑逐步更新和扩展 Linux 代码库的年度开发成本。基于这些数字(或任何人对 Linux 发行版的直接经验),很容易看出 Linux 发行版中包含的功能在过去六年中是如何以爆炸般的形式发展的。

(编辑:宿州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!