看完感觉跟没看一样,学习笔记就直接把课件CV一份,好歹也是看了
开源软件定义
非盈利组织 Open Source Initiative(OSI)极力倡导,任何开源软件都必须遵循如下标准
- 可以被免费进行二次分发。
- 源代码应当公开、可用。
- 可以与原始软件不同的格式进行修改和分发。
- 软件本身不应歧视任何个人或团体。
- 软件本身不应限制其他软件的使用或调用。
开源不仅仅意味着源码开放,同时还需要支持衍生物发行、符合传播规范、满足非歧视原则等要求OSI让开源具有了教育和倡导开放式开发流程的优势。(社会价值)
开源软件提供了一种与潜在的软件用户和开发人员相互动的宝贵方法。通过一个具有互动参与性的社区大家可以创建新的或改进原有的源代码。(项目价值)
自由软件 & 开源软件 & 免费软件
- 所谓“Free Software”中的“free”-词强调的是自由,而不是价格上的免费。
- 自由软件有比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。
- 免费软件就是不要钱的软件,但“不要钱”的定义往往是模糊的:是指人们取得该软件时无需付费,还是说人们在使用的过程中都无需付费,亦或是指该软件的发行者不从中获取利益?实际情况往往是复杂而黑暗的。
开源软件的意义
从软件分发而言
- 任何人可以修改源代码,以满足使用需求
- 打破专有软件垄断,根据许可证要求再分发
- 降低软件总拥有成本,促进软件行业快速发展
从行为动机而言
- 礼物文化:付出热情、智慧和努力,得到认可
- 行动中学习,教与学的过程,例如 Code Review
从技术发展而言
- 标准化快速落地,打破软件烟囱,技术生态繁荣发展
- 沟通协作和技术场景复杂,促进代码和架构的模块化
- 开源引领技术创新,成为新技术的摇篮
从组织管理而言
- 打造开放式组织,最大化知识工作者的效益
- Private Collective Model,即成员私有投入,产出公开可见
- 民主与决策,Communityovercode 下的社区治理实践