如果开发过程停留在社区开发阶段,这时的社区发布版虽然已可展示产品的全面性能,但操作尚不稳定,计算效率也未优化,灵活扩展性不够,质量有待提高,产品成熟度也待催化。为了开发出稳定、优化、成熟的产品,必须紧跟着一个后继的企业开发过程,这样才能形成完整的开发过程。在“社区开发”基础上的“企业开发”,主要开发“工程化实现技术”,是具有“自主开发、自主创新”性质的。当然其中也含有“核心技术”。我们要再次强调,只有广泛持续参与社区开发过程并从中积累经验、增长才干,才有可能在企业开发(即工程化实现技术开发)中取得成功。对于这一点也是很多人不明白的。Ubuntu社区的创始人Mark Shuttleworth曾给我写信,Ubuntu的桌面或服务器Linux发布版(产品),虽然源代码是全部开放的(与源代码相应的核心技术自然也是公开的),但它还含有不开放的核心技术,并可以进行技术转让。其所谓“可转让的核心技术”,主要就是体现在“工程化实现技术”中。
我过去就曾多次指出,自由/开源软件的全部技术是由全部开放的源代码所表征的公开性技术和不公开的工程化实现技术(或专有技术、隐性技术、工程经验、测试技术和商业秘密)所构成的共生技术。共生技术的两部分都含有核心技术,一部分是公开的,集体开发、合作创新的;另一部分是不公开的,可进行自主开发,自主创新的。
国外一些Linux企业对其某些自动编译工具,自动缺陷显示工具,在CD盘上软件模块自动集成环境,以及某些自动测试工具,一般也是不开放的。
孤立地推出Linux操作系统(产品)还是不够的,它必须要与IHVs、ISVs、SIs配套、集成,形成生态系统,即在相互连接的界面上要实行兼容、互操作,为最终用户提供共同的技术支持,为此必须让这些配套厂商对Linux操作系统进行严格的“质量认证”(测试工作),从认证测试中发现问题,进一步修改完善设计,这是改进产品性能,提高产品质量必不可少的条件(顺便指出,测试技术是开源产品开发设计的重要手段)。目前,一些国内的Linux厂商正在与国内外有关配套商协同展开这方面工作,但工作展开面还远远不够。
另外,开源软件的产品性能还存在一个不断改进、完善,不断深化、升级的动态过程,因此要持续不断进行“社区开发”与“企业开发”两个相互衔接、互相补充、不断循环的开发过程,要在开发设计的不同阶段开展各种测试(专项测试、开发测试、编译测试、二进制回归测试、社区版测试、产品版测试、用户质量认证和应用测试)和纠错工作,以及不断按生态系统进行集成测试和纠错工作。以便改进、完善、提升开源软件的开发设计。
一些外来的Linux操作系统(产品发布版),由于对中文环境的二次开发不足,在国内本地市场上的适用性也遇到一些问题。 提高国内开源软件开发设计水平,要从大学生的教育培训抓起。近年来,国内已有上百所大学开设了Linux/OSS课程,这是可喜的现象。我看关键是要培养学生的“动手能力”,初步积累“工程经验”。斯坦福大学的做法值得我们借鉴:他们选择一个最小化的Linux操作系统(约100K左右),辅导学生开发设计(一个学期能出成果),目标是要放在PC机上能跑,(而不是在仿真/模拟器上跑)。
总之,自由/开源软件是一种低成本(由于全部源代码开放,构成整个软件的“程序”,以及“文档”,通常是可以免费的)、高透明(可增加用户信任度)的软件;是鼓励全球志愿者广泛参与开发的软件;在自由/开源软件中,存在着公开与不公开的共生技术,存在着“社区开发”和“企业开发”衔接互补的两种机制,具有“集体开发、合作创新”和“自主开发、自主创新”共存的特点。我们要澄清一些概念,理清思路,抓住机遇,明确创新路线,发展开源软件,并推动我国系统软件的自主开发创新。
-- 原文链接: http://soft.yesky.com/info/150/2507650.shtml
|