OSS 0.1级疑问 追加回答

background

作业触发: 第一次作业 (看开源的资料,提五个问题)-CSDN社区

上次统一回答 220830 之前提交的同学: 开源软件开发导论课程作业0之回响

发现后来提问的同学, 明显思考的多了些, 在此抽取几个有趣的问题直觉回答一下:

goal

统一给出整体回答

有关大妈自己社区经历, 参考:

同学们有什么问题, 可以直接回复在文章尾部的评注中, 可以针对性进一步沟通.

(PS: 使用 utterances github-issue 来作为容器, 可以长期保存应答...)

MurMur

一名老程序猿的呢喃

8.31

【课程作业】对开源软件开发的疑问_伏罗希洛夫射手的博客-CSDN博客

这位同学, 难得的是多数问题和开源项目工程质量相关; 而且多数有引用文章的链接, 这种习惯就很不简单了;

其中问题4:

作为开源项目的维护者,如何高效地审查提交的代码?小而美的补丁固然好,但也不总是那么容易得到的,尤其对于一些并不热门的开源项目来说。

有点奇怪, 因为, 触发的文章是: 一个补丁迭代了16个版本后被撤,我的 Linux内核之旅!_《新程序员》编辑部的博客-CSDN博客

而其中, 内容正好回答了同学的提问:

  • 吴峰光博士 自身研究方向就是 Linux 内核
  • 因为长期积累, 以及热情, 一次性提交了包含大量代码变更的补丁, 并在社区审核其实, 持续迭代, 越来越大
  • 以致社区领导者被惊动, 直接沟通, 才解除了就会, 转而主动理解社区策略, 开始提交 小而美 的补丁, 进而批量完成补丁接受
    • 其实, 应该还有后续, 最后作者团队变成了 Linux 内核官方成员
    • 也开始一起帮忙审核/测试/合并代码
  • 这一过程, 哪里不高效呢?
    • 关键在 高效 的定义吧, 可能同学感觉, 一个复杂系统的修订, 每个提交都应该在几小时以内完成判定并回绝或是接受, 不应该反复几个月吧
    • 其实, 无论哪个领域效能, 都应该有个标准杆(高尔夫术语)
    • 如果在操作系统领域, 这个标准, 应该是大众最熟悉的 Windows, 那么在 Windows 内核工程中, 一个提交要经过多少环节和时间?
    • 没有对比就没有伤害, 这方面的数据, 就是同学自己值得探查的地方了...
  • 可以感觉到, 这个问题本身包含了一系列偏见/傲慢:
    • 开源项目代码审核并不高效
    • 开源项目小而美的补丁不多
    • 开源项目多数并不热门
    • 只有热门开源项目代码审核才有很多补丁
    • ...
  • 以上偏见, 都是因为并没有深入调查 Linux 内核项目的规模以及代码流程的原因
    • 建立, 在这个问题基础上, 进一步查阅有关文档/图书
    • 然后修订问题, 问到一个全球大学生都应该关注的真正问题上来

9.1

开源软件开发导论第1次作业__LilaS的博客-CSDN博客

这位同学的问题三是罕见的自问自答:

开源软件开发者群体如何盈利?

以下转载于 http://t.csdn.cn/Uaflt

在开源软件领域中,常见的盈利模式一共有7种。

  • 盈利模式之一:多种产品线
  • 如 MySQL 产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本,分别采用不同的授权方式。开源版本完全免费以便更好的推广,而从专业版的许可销售和支持服务获得收入。
  • 盈利模式之二:技术服务型
  • JBoss就是这种模式的典型代表。JBoss 应用服务器完全免费,而通过提供技术文档、培训、二次开发支持等技术服务而获得收入。
  • 盈利模式之三:应用服务托管(ASP)
    • 例如,PHP Live! 就是一种构架于 PHP、MySQL 之上的开源软件,它可为企业用户提供实时交谈服务。目前已经有数十家公开提供 PHP Live! 托管服务的应用服务提供商。
  • 盈利模式之四:软、硬件一体化
    • 比如 IBM HP 等服务器供应商巨头,通过捆绑免费的 Linux 操作系统销售硬件服务器。SUN 公司近期将其 Solaris 操作系统开放源码,以确保服务器硬件的销售收入,也是这种模式的体现。
  • 盈利模式之五:附属品
    • O'Reilly集团是销售开源软件附加产品公司的典型案例,他出版了很多优秀的开放源代码软件的参考资料。
  • 盈利模式之六:品牌战略、服务至上
    • 康比尔公司的 Compiere ERP & CRM 软件是这种模式的典型案例。
  • 盈利模式之七:市场策略
    • 比如微软宣称部分的公开 Office 的源代码,就是执行这种策略。

“Free Software”中的"Free"关乎自由,而不是价格,使指可以付费或者不付费的得到GUN软件

神奇的是, 全篇文章讨论的是开源软件, 突然又引用了自由软件 名字;

那么, 俺的得建议了:

  • 开源的这些模式都是怎么形成/摸索出来的?
  • 比开源更加严格的自由软件又有什么商业模式, 又是从哪儿探索出来的?
  • ...推荐挖掘一下 GPL 几个版本许可证的内容, 以及相关故事

其实, 这儿得科普一下自由软件的四个自由: 什么是自由软件? - GNU 工程 - 自由软件基金会

如果一个软件是自由软件,那么它必须为用户提供以下四项基本自由:[1]

  • 自由度0:无论用户出于何种目的,必须可以按照用户意愿,自由地运行该软件。
  • 自由度1:用户可以自由地学习并修改该软件,以此来帮助用户完成用户自己的计算。作为前提,用户必须可以访问到该软件的源代码。
  • 自由度2:用户可以自由地分发该软件的拷贝,这样就可以助人。
  • 自由度3:用户可以自由地分发该软件修改后的拷贝。借此,用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提,用户必须可以访问到该软件的源代码。

而开源软件和自由软件最根本性的不同, 就在取消了第4自由, 即通俗的传染性:

  • 自由软件, 要求基于自己代码修订出来的新软件也必须是自由软件, 以便代码可以永久自由下去
  • 开源软件, 并不强行要求基于自己代码修订出来的新软件也必须开源, 以便可以获得更多商业机会
  • 但是, 自由软件从一开始就没有禁止进行商业服务, 因为:
    • 即便是代码完全自由
    • 但是, 使用/运行/维护/加强/定制/...软件, 都是要专业技能和知识的, 这都是有市场需求的

所以, 开源工程如何赢利, 非常象我们每个计算机系毕业的人, 我们的精力/时间/能力/... 其实都是开源获得的, 但是, 又多数只能通过商业行为, 来获得报酬, 那么, 在普通的就职之外, 有什么可能性, 这才是值得结合开源项目的故事, 进一步探查思考提问的吧...

9.3

开源软件开发导论第一次作业——关于“开源”的疑问_mayfly_strive的博客-CSDN博客

这位同学, 也是罕见的将问题聚集在参与方向上:

  • 2: 个人如何开始开源的路?
  • 3: 开源项目的自由度该如何把握?
  • 5: 个人如何推广开源项目?

三个问题, 都是具体的个人参与/进行/推广开源项目的问题;

不过, 三个问题明显都可以统一回答:

  • 先开始参与, 然后, 在参与过程中积累经验, 持续迭代/改进自己的能力/思想/行为/习惯/资源/经验...
  • 就象游泳, 无论在下水前进行了多少准备, 嘦没有下水开始游, 永远不可能学会游泳
    • 在游泳馆里会了, 不等于在小溪中会游
    • 在小溪里会了, 不等于在大河中会游
    • 在大河里会了, 不等于在大江中会游
    • 在大江里会了, 不等于在近海中会游
    • 在近海里会了, 不等于在大洋中会游
    • ...
    • 必须一步一步实践/积累, 并对应配置合适装备

比如:

..我应该从哪些方面约束我个人的代码,保证我所贡献的代码能够有效率地提交

这很明显就是事先乱担心, 因为每个开源工程, 都为了自身发展, 积累了良好文档, 对补丁的提交, 更加有详细到恶心的文档, 以及丰富到爆炸的工具可以配合, 甚至于和大厂合作, 有海量资源可以自动化协同来完成越来越复杂的测试...

嘦认真参与, 一步步掌握所有知识, 这些问题自然就有了解答, 那么如何开始? 现在就开始.

9.5

【开源软件开发导论作业-1】_yjlintp的博客-CSDN博客

这位同学的问题也比较有趣, 都是和谐性问题;

更加有趣的是问题3:

...我想起了不久前,我因为难以忍受网易云音乐PC端频繁出现的bug,在网上寻找网易云的第三方软件,试图作为替代,然后看到LyricEase等第三方网易云音乐 UWP 应用受到了版权警告,被强制下架...以我从一个开发者兼用户的角度来看,这些软件确实违反了规定...基于破解的开源还是开源吗?这种“开源”是应该鼓励开发者去做的吗?

这个问题其实混合了几种形式, 多种性质的行为, 却统一丢给了开源...

其实, 类似行为, 一直在发生, 有时, 甚至于是反过来的, 大厂抄了开源软件, 用在自己系统中, 被追查出来也死不承认...

以网易云音乐的开源替代为例, 对等的, 其实是 N 年前, 开源 Linux 版本 QQ 事件:

  • 腾讯公司一直不发布 QQ linux 版本
  • 于是, 有技术高人通过网络嗅探技术, 查明 QQ 所有通讯协议, 然后, 自行编写了 Linux 版本发布
    • 后果是被告上法庭关了起来
  • 先不论 腾讯 公司这种行为是否合理, 值得推广
  • 在类似事件中, 开源软件诞生的动力都是相同的: 缺少一个满意的软件, 就自己动手了
    • 这种开端没有问题
    • 通过努力, 完成了软件, 没有拿来获利, 只是为了更多人使用而开源, 这也没有问题
    • 因为开源, 越来越多的人发现新软件, 并开始进一步完善/宣传/使用/... 这当然也没有问题
  • 唯一的问题在: 原厂商不高兴了
    • 不高兴的原因很简单: 超出了控制
    • 无论是渠道/流量/版权/协议/....一切自己原本认为机密的东西, 竟然被开放出来了, 当然不高兴
    • 先不说原本以为是自己的, 其实是否真的应该是
  • 核心冲突在什么是 破解 ?
    • 不拓展到其它破解行为, 在开源 网易云音乐 这个场景中
    • 如果: 网易云音乐 原有通讯协议是专利产品, 又在专利保护期以内, 这算非法破解, 否则, 不算破解, 顶多算猜测成功
    • 如果: 网易云音乐 原有数据加密是专利产品, 又在专利保护期以内, 这算非法破解, 否则, 不算破解, 顶多算猜测成功
    • 如果: 网易云音乐 原有数据解密是专利产品, 又在专利保护期以内, 这算非法破解, 否则, 不算破解, 顶多算猜测成功
    • ...
  • 而播放的内容, 又是另外一组 "破解" 了:
    • 播放的音乐数据来源是网易云音乐, 并大于20秒, 这就涉及了版权内容侵权
    • 但是, 如果想播放网易云音乐, 必须登录对应帐号, 这就不涉及版权内容侵权, 而涉及广告流量清洗
    • 简单说, 凡是 网易云音乐 原本用以获利的资源, 被 "开源", 这就是资源盗用, 不是知识开源领域了, 和开源无关
  • 当然, 明白了这些后, 照样可以通过技术手段进行绕过, 从而达到解决根本问题:
    • 网易云音乐 本身不好用, 用户又有个性化音乐需求
    • 嘦这种天然需求没有被满足, 就一定有新的工具/厂商/服务/...涌现

所以, 在这个问题域, 值得进一步探查/思考, 给出什么样的鼓励是最有效的问题, 这其中, 很可能包含本来创业时的根本思考技巧.

9.7

《开源软件开发导论》作业1_dedsecezio的博客-CSDN博客

这位同学很习惯大哉问, 动不动问世纪工程般问题;

不过, 最后一个问题才是所有课程同学, 应该一直扪心自问的:

5.对我们学生来说开源应该算什么?

就象数字 : 0 就是经典代表:

  • 外延最小
  • 内涵最大

开源也是: 定义异常简单, 比自由软件还少了个自由度, 但是, 在各种精英探索下, 变成越来越热门的 抓手/handle 可以和万事万物结合, 变成各种关键工程中的关键因素;

不过, 简单点儿可以这么开始我们的偏见:

  • 无论开源是什么, 开源已经存在了42+年, 而且发展越来越快, 证明有其道理
  • 无论开源是什么, 开源已经积累了42+年, 其中包含的资源, 值得关注/理解
  • 无论开源是什么, 开源已经发展了42+年, 涉及领域几乎包含人类所有方向, 可以和自己任何一种兴趣结合
  • 无论开源是什么, 开源已经生长了42+年, 证明其内在机制是可持续的, 值得参与体验
  • 无论开源是什么, ...

也就是说, 开源就象哈佛博士学位, 古老/丰富/艰难/稀缺/... 想完全掌握, 当然困难, 但是, 世界上有什么事儿是完全没有困难的呢?

就算是日常呼吸, 随便一个 COVID-19 都将社会生活折腾成这样, 不难嘛?

从中国大学角度, 开源:

  • 是超越中国教育资源的空间, 可以帮助我们提前进入世界关键思想空间
  • 是超越中国网络资源的文化, 可以帮助我们合理进入中国企业难以触达的人物
  • 是超越中国技术体系的渠道, 可以帮助我们提前接触世界级组织
  • 是超越中国...

又是免费的, 值得抽出一定时间来深入, 反正不亏.

refer.

有关链接 如何成为一名黑客

logging

  • 220911 ZQ init.+pub

Comments


大妈的多重宇宙 - YouTube

全新自媒体系列...科学幻想,读书,说故事...
支持一下
额外理由:

蟒营®编程思维提高班Python版

**2021.01.11** 因大妈再次创业暂停定期开设, 转换为预约触发:
  • + 任何问题, 随时邮件提问可也:
    askdama@googlegroups.com

Copyright 2001-2023 by Zoom.Quiet
Content licensed under the Creative Commons attribution-noncommercial-sharealike License.
Contact me via , mail ,github or gitlab . Tip me via || (ATOM)