陆首群:坚持开源软件创新之路 走双重模式_MySQL
文/中国开源软件推进联盟主席 陆首群
为了发展开源软件,提高其市场竞争力,必须坚持走开源软件独特的创新之路。
两种共生技术
人们常常陷于一个思维误区:“开源软件是由全球志愿者集体开发的,遵循开源许可协议,其全部源代码是开放的,任何人均可自由获得”,而“全部源代码的开放也表示其全部技术是公开的。”他们不明白,开源软件不能再停留在其早期的自由的“理想王国”里,仅供“黑客”、“玩家”们当“玩艺”;开源软件要取得持续发展,必须探索并形成自己的商业模式,惟有具备商业模式的开源软件才是成熟的,才能处理好如下矛盾,即:既不违反开源许可协议,公开全部源代码;又能不公开自己的专有技术,保守自己的商业秘密。事实上,具有商业模式的开源软件,其技术创新并不完全表现于开放的源代码之中,它还表现在与源代码无关的工程化实现技术(即专有技术和商业秘密)之中。这就是说,开源软件的全部技术是由:以开放源代码所表征的公开化技术,与不公开的工程化技术两部分组成;或者说由这两部分技术组成开源软件的共生技术。所谓工程化技术,是在开源软件已完成了其公开技术(即全部源代码或全部技术性能)的开发过程的基础上,服务于产品化或商业应用,尚需解决的后续技术,它主要关注于:改善操作稳定性,优化计算效率,增强灵活扩展性,提高产品质量,催化产品成熟度。工程化技术是一种实现技术、优化技术、隐性技术,主要表现为技术诀窍(Know-How)或熟练技巧(Skill)、工程经验、系统底层技术的把握等隐性知识方面。
开源软件的工程化技术主要由两部分构成:(1)在开发过程中,有些与设计思想、原理、实现机制(包括算法)有关的隐性设计技术;与各软件模块之间的协同、耦合、调用等相互依赖关系有关的实现技术(包括实现细节);开源企业(服务商)的“内核分支”发行版的源代码与由Linus Torvalds负责开发和监护的官方(Official)“内核主线”版本的源代码之间偏差程度的把握能力。IT评论家Matt Asay指出,人们可以得到Red Hat公司企业级Linux发行版的全部源代码,但它直接交付用户使用的二进制版本(即所谓“ready to go”版本)并不是这些源代码编译的结果,其中存在着一些差异(关键要把握差异的程度),这就是商业秘密。(2)在产品化或应用过程中,为增强开源软件的增值效应,对各软件模块进行包装/配置/集成,以及剖析并改进相应的软件系统(Profile)所涉及的隐性技术。
举国外开源软件“Ubuntu”的例子来分析:Ubuntu作为Linux386个发行版之一(有桌面版,也有服务器版)是非常优秀的。发展迅猛,受人欢迎,其开发创新机制确有过人之处。Ubuntu为何发展如此之快,干得如此出色呢?我认为其中一个重要原因是Ubuntu利用了国际上最大的非盈利的开源社区Debian的人才和资源。所以有人说“Ubuntu是基于Debian开发的版本”,“Ubuntu是Debian的副产品”,确是如此。但Ubuntu认为“Debian的过于宽广庞杂”,它在Debian资源上进行剪裁、移植和再创新,达到“少而精”的目的。现在随着Ubuntu的发展,它并不想与Debian兼容,也不愿参加Debian的联合体。
最近Ubuntu自己认承:Ubuntu的发布版在产品稳定性等性能方面尚有待于改进,它还未通过用户认证。这使我联想到Ubuntu的开发创新机制可能还存在一些问题,他们中不少人具有“崇尚自由开放,摒弃封闭专权的理想主义”,因此他们“集体开发”开放技术的能力可能有余,而“自主开发”工程化技术的能力可能不足。
很多执行双授权许可协议模式的开源软件,在其层次结构(Stack)中可能嵌入某个层次的闭源软件,或可能附加某些闭源的组件模块,这些闭源软件实际上就是私权软件,其中全部技术(不光是工程化技术)都是不公开的,并将完全依赖于自主开发创新。
双重创新模式
与一般企业的私权软件创新模式不同,开源软件首先采用由志愿者进行“集体开发”、“合作创新”的新模式,这种创新模式实行“源代码开放”、“技术公开”;但是仅靠这种模式还不足以开发出开源软件的全部共生技术(即不能开发不公开的工程化技术),也不足以向市场推出优质高效、操作稳定、技术更趋成熟、竞争力更强的开源软件产品。实际上,开源软件针对开发工程化技术,还需要另一种:“自主开发”、“自主创新”、“具有自主知识产权”的创新模式来跟进和补充。开源软件的双重创新模式,即“集体开发”、“合作创新”与“自主开发”、“自主创新”两种模式是互补的、互相衔接的、不可分割的;也可看作开源软件开发创新过程的两个阶段。
近年来国内企业开发并向市场推出一批开源软件产品,取得了长足进步;但某些企业还沿袭旧的封闭的开发模式和机制,他们在“社区版”上进行剪裁、移植或者进行简单修改,属于自主开发创新的成果还不多,他们基本上还处于学习、模仿阶段。国际开源社区曾多次反映,国人在开源软件“集体开发”、“合作创新”活动中,向社区提交自己修改、创新的源程序代码行(到被吸纳)尚属凤毛麟角,以致有人认为:国人尚未能大量进入这个开发创新模式的核心圈之内,而且从这个衡量开发创新人员资质水准的统计数据来看,国人尚有差距。
两种开发机制
为了加快中国开源软件的发展,需要建立开源社区,形成社区开发和企业开发两种互相支持、互为补充的开发机制,社区开发主要是创新,企业主要开发工程化技术,促使产品更加稳定、优化。
在开源社区,具有“集体开发”、“合作创新”、“技术公开”特征的创新体系,是建立在自由开放的互联网平台上的,很多创意通常自下而上来自底层志愿者。在这个创新体系中,能够广泛吸收全球广大志愿者的智慧,经常产生大量思维碰撞,并往往撞出不少耀眼的思想火花,经常迸发出创新点子,在技术上有所突破,但也常常伴随着不够系统、不够稳定、不够成熟的现象。开源社区的创新活动需要有开源领袖(或大师)以及一批核心骨干的支撑,他们在社区负责对志愿者提交的软件包,进一步作“选包、打包、集成、测试”循环的创新活动并实施资源管理。在开源社区创新体系之外,还需一个后续的企业创新体系与之互为补充,企业创新体系具有“自主开发”、“自主创新”、“自主知识产权”(技术不公开)的特征,它是建立在企业内部开发部门或企业局域网平台上的,其创新的任务是向市场推出满足用户需求的产品,计划通常自上而下,开发者是企业专业技术队伍,企业的创新活动需要有经验丰富的资深人士(包括系统架构师)及一批核心骨干的支撑(最好具有参与社区开发创新的经历并与之保持良好的互动接口)。他们在利用开源社区创新成果的基础上,重点做工程化、产品化、系统化、完善化、稳定性和性能优化的创新工作,在攻克工程化技术方面进行自主创新。
产品平台和生态系统
对于开源软件,孤立地开发或推出一个产品(发行版)是不够的,必须形成围绕该产品平台的生态系统,即要把大量软件(特别是应用软件)移植到这个产品平台上来;该产品要能预装到一些必要的硬件体系结构中去;要能与众多外围设备匹配衔接。而移植、预装、匹配是需要做大量测试、修改以及“再开发”工作的,涉及成百上千个企业协同工作,需耗费大量人力、物力、财力和时间。为做到这一点,首先必须开发出在全球能进入“主流”的产品,否则要吸引全球广大企业、社区的支持,共同来营造一个生态系统是不可能的。当然在营造生态系统过程中,不能用纯技术观点来看待这个问题,在争取广大企业、社区支持时,特别要争取拥有丰富资源和影响力的跨国公司的支持,为此我们要做好协调工作。
还必须指出,“分散的低水平重复”很难使开发出来的开源软件在全球能够占居“主流产品”的地位,为此加强国内联合、国际合作是十分重要的。
开源架构和开源产品链
开源软件的LAMP架构(即L-Linux操作系统,A-Apache开源服务器或其他开源中间件,M-MySQL或Postgre开源数据库,P-PHP或Perl、Python脚本语言)具有简易性、低成本和执行灵活性等特点,当“在线交易进程(OLTP)”在LAMP架构的解决方案中取得成功,有力地推动了这个架构的发展。LAMP架构的崛起,与IBM、SUN主导的J2EE架构(Java编程语言)和微软主导的.Net架构(C#编程语言)形成了三角鼎立的竞争态势。
针对各种信息化应用解决方案,在开源软件LAMP架构上形成的开源产品链,需进行集成、测试、优化的开发创新活动;从实际需求出发,有时我们也要推出开源和闭源产品混生的产品链,而在推出这样的产品链之前也需要进行相应的开发创新活动。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

图像标注是将标签或描述性信息与图像相关联的过程,以赋予图像内容更深层次的含义和解释。这一过程对于机器学习至关重要,它有助于训练视觉模型以更准确地识别图像中的各个元素。通过为图像添加标注,使得计算机能够理解图像背后的语义和上下文,从而提高对图像内容的理解和分析能力。图像标注的应用范围广泛,涵盖了许多领域,如计算机视觉、自然语言处理和图视觉模型具有广泛的应用领域,例如,辅助车辆识别道路上的障碍物,帮助疾病的检测和诊断通过医学图像识别。本文主要推荐一些较好的开源免费的图像标注工具。1.Makesens

文本标注工作是将标签或标记与文本中特定内容相对应的工作。其主要目的是为文本提供额外的信息,以便进行更深入的分析和处理,尤其是在人工智能领域。文本标注对于人工智能应用中的监督机器学习任务至关重要。用于训练AI模型,有助更准确地理解自然语言文本信息,提高文本分类、情感分析和语言翻译等任务的性能。通过文本标注,我们可以教AI模型识别文本中的实体、理解上下文,并在出现新的类似数据时做出准确的预测。本文主要推荐一些较好的开源文本标注工具。1.LabelStudiohttps://github.com/Hu

CrystalDiskMark是一款适用于硬盘的小型HDD基准测试工具,可以快速测量顺序和随机读/写速度。接下来就让小编为大家介绍一下CrystalDiskMark,以及crystaldiskmark如何使用吧~一、CrystalDiskMark介绍CrystalDiskMark是一款广泛使用的磁盘性能测试工具,用于评估机械硬盘和固态硬盘(SSD)的读写速度和随机I/O性能。它是一款免费的Windows应用程序,并提供用户友好的界面和各种测试模式来评估硬盘驱动器性能的不同方面,并被广泛用于硬件评

CrystalDiskInfo是一款用来查看电脑硬件设备的软件,在这款软件中我们可以对自己的电脑硬件进行查看,例如读取速度、传输模式以及接口等!那么除了这些功能之外,CrystalDiskInfo怎么使用,CrystalDiskInfo究竟是什么呢,下面就让小编为大家整理一下吧!一、CrystalDiskInfo的由来作为电脑主机三大件之一,固态硬盘是电脑的存储媒介,负责电脑的数据存储,一块好的固态硬盘能加快文件的读取速度,影响消费者使用体验。当消费者收到新设备时,可通过第三方软件或其他固态硬盘

人脸检测识别技术已经是一个比较成熟且应用广泛的技术。而目前最为广泛的互联网应用语言非JS莫属,在Web前端实现人脸检测识别相比后端的人脸识别有优势也有弱势。优势包括减少网络交互、实时识别,大大缩短了用户等待时间,提高了用户体验;弱势是:受到模型大小限制,其中准确率也有限。如何在web端使用js实现人脸检测呢?为了实现Web端人脸识别,需要熟悉相关的编程语言和技术,如JavaScript、HTML、CSS、WebRTC等。同时还需要掌握相关的计算机视觉和人工智能技术。值得注意的是,由于Web端的计

我们在使用Edge浏览器的时候有时候会出现不兼容的软件尝试一起加载,那么这是怎么回事?下面就让本站来为用户们来仔细的介绍一下一个不兼容的软件尝试与Edge加载怎么解决吧。 一个不兼容的软件尝试与Edge加载怎么解决 解决方案一: 开始菜单搜IE,直接用IE访问即可。 解决方案二: 注意:修改注册表可能会导致系统故障,谨慎操作。 修改注册表参数。 1、运行中输入regedit。 2、找到路径\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Micros

向大家介绍一个最新的AIGC开源项目——AnimagineXL3.1。这个项目是动漫主题文本到图像模型的最新迭代,旨在为用户提供更加优化和强大的动漫图像生成体验。在AnimagineXL3.1中,开发团队着重优化了几个关键方面,以确保模型在性能和功能上达到新的高度。首先,他们扩展了训练数据,不仅包括了之前版本中的游戏角色数据,还加入许多其他知名动漫系列的数据纳入训练集中。这一举措丰富了模型的知识库,使其能够更全面地理解各种动漫风格和角色。AnimagineXL3.1引入了一组新的特殊标签和美学标

即使在“请勿打扰”模式下接听电话也可能是一种非常烦人的体验。顾名思义,请勿打扰模式可关闭来自邮件、消息等的所有来电通知和警报。您可以按照这些解决方案集进行修复。修复1–启用对焦模式在手机上启用对焦模式。步骤1–从顶部向下滑动以访问控制中心。步骤2–接下来,在手机上启用“对焦模式”。专注模式可在手机上启用“请勿打扰”模式。它不会让您的手机上出现任何来电提醒。修复2–更改对焦模式设置如果对焦模式设置中存在一些问题,则应进行修复。步骤1–打开您的iPhone设置窗口。步骤2–接下来,打开“对焦”模式设
