Skip to content
This repository has been archived by the owner on Mar 26, 2021. It is now read-only.

Latest commit

 

History

History
271 lines (167 loc) · 35.6 KB

osm-202007.md

File metadata and controls

271 lines (167 loc) · 35.6 KB

开源爱好者月刊(第 7 期):Linux 与开源

序言

Github 将主分支名称由“master”变成“main”、Chrome 团队将“blacklist / whitelist”变成“allowlist / denylist”...这次的科技企业改名风波是政治正确的过度表现?恰恰相反,这是一种参与的力量,每个人每个组织都可以行动起来——正如“开源精神”一样。

那么什么是“开源精神”?或许这很抽象,但随着本月 opensource.com 上新增的多篇开发者与 Linux 故事开始,我们每个人都能得到自己的答案。本期“微栏”将抛砖引玉 Linux 的故事,看看如今支持着数以万计的大型应用的 Linux 是如何诞生的,这和开源又有什么关系,以及...我们能从 Linux 基金会中学到什么?

本刊从自身对开源的爱好出发,计划先以每月一刊的形式更新。同时,本刊站在众多巨人的肩上,离开这些或许现在会大不相同。本杂志开源(GitHub: ningowood/open-source-magazine),更多动态,欢迎提交 issue,投稿或推荐你的开源内容。

微栏:Linux 与开源

从 1991 年开始,伴随 Linux 的问世,开源对企业的重要性开始凸显,且开源运动被证明为一种更好、更快的核心软件开发方式。后来,开源的基础技术越来越多,开源社区和企业纷纷开始进行商业化尝试。 ——Peter Levine

Linux 出现的开源历史背景?

  • 1950 至 1960 年代:几乎所有软件都是由从事学术的研究人员写作开发的,软件源码一般都会与软件一起提供。此时大学对软件进行的修改也会按照学术原则被公开地分享。
  • 1960 年代末:软件生产费用相对于硬件大幅增加,正在发展的软件产业开始和硬件制造商的捆绑软件进行竞争。此时软件有了更多的限制性许可证从而让更多的软件源码不能被公开。
  • 1980 和 1990 年代:在业余爱好者、黑客的坚持下,非正式的软件共享依旧继续。在因特网被广泛使用之前,依然有很多方法共享代码,比如将部分源码和注释放在书籍、杂志中讨论。理查德·斯托曼的带领下,GNU 宣言、自由软件基金会、GNU通用公共许可证相继推出。
  • 1990 年代后期:随着 .com 时代的到来,自由软件逐渐成为了网络服务器的流行选择,Apache HTTP Server、LAMP 等概念逐步流行。
  • 1997 年:埃里克·雷蒙出版了《大教堂与市集》,他在这本书中分析了黑客社区和自由软件的原则,促使了网景公司在 1998 年将该公司的网络包以自由软件的形式释出,更促使了雷蒙等人开始探索如何将自由软件原则带入商业软件产业中。“开源”一词正式出现!

Linux 的诞生?

  • 项目起源:最初它只是一个 Linus Torvalds 用来访问大学里的大型的 Unix 服务器的虚拟终端,他最后才意识到自己写了一个操作系统内核。1991 年 8 月 25 日,他在发布到新闻组“comp.os.minix.”的 Usenet 上发布了这个系统。
  • 名称渊源:本来想命名为 Freax——“fread”、“free”和“x”(暗指Unix)的合成词;前半年里,文件以文件名“Freax”存储;上传到赫尔辛基工业大学(HUT)的 FTP 服务器后,Torvalds 同事为方便将名字改为 Linux;后来 Linux 被广为认知。
  • 开源协议:Torvalds 先是在它自己的许可下发布 Linux 内核的,即限制它用于商业活动;1992 年 12 月,他在GNU GPL 下发布了 0.99 版。Torvalds 说,“把 Linux 发布在GPL下是我所做过的最好的事”。

Linux 基金会的诞生?

加入开源基金会的正确姿势:招聘上游贡献者加入公司;鼓励员工为基金会托管的项目做贡献;结合自己的产品,平衡项目的工程开销;增加公司在项目的技术影响;通过基金会提供的平台,了解自身的客户诉求。 ——开源之道,《关于 Linux 基金会的简介》

  • 追溯:1993 年由 Patrick D’Cruze 创建的 Linux 国际邮件列表,即 LI,到 2000 年 LI发展为 OSDL,从一个民间组织转变为非盈利的基金会。在 2003 年,Linux 的创始人 Linus Torvalds 宣布加入了OSDL,人们也再也不同担心 Linus 去哪家公司了。
  • 成立:2007 年,开源码发展实验室(OSDL,推动 Linux 在企业级的应用)与自由标准组织(FSG,推动开放源代码的标准建立)合并,正式成立 Linux 基金会,旨在通过提供开放源码所需的统一资源和服务,与封闭平台能成功的竞争,从而促进、保护和标准化 Linux。
  • 目标:Linux 基金会利用其支持 Linux 社区的经验和专业知识来帮助建立、构建和维护一些最关键的开源技术。它所涵盖的内容到今天已经远远的超越了 Linux,几乎帮助促进了每一个软件栈的创新。目前 Linux 基金会所托管的项目,涉及多个层次,如企业 IT、嵌入式系统、消费电子、云计算、网络等等。

其它知识?

  • Linux 内核:整个 Linux 操作系统家族基于该内核部署在传统计算机平台和各种嵌入式平台中;今天,Linux 内核已接受了超过 1200 家公司的近 12000 名程序员的贡献,其中包括一些知名的软硬件发行商;内核并不是一套完整的操作系统。
  • Linux 发行版:通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由Linux 内核、以及来自 GNU 计划的大量的函数库,和基于 X Window 的图形界面。现在有超过 300 个 Linux 发行版——主要分为 Debian 系、Red Hat 系、其它包格式等。
  • Linux 基金会活动:涵盖开源的各种趋势,包括大数据,云原生应用程序,容器,IoT,网络,安全性等。
  • 林纳斯定律:足够多的眼睛,就可让所有问题浮现。
  • Linux 现状:互联网服务器中高居 95% 的使用量;运行在销售率超过 85% 的安卓系统(基于 Linux 内核);500 强超级计算机全部运行在 Linux 上;全球证券交易市场都运行在 Linux 之上;是超过 75% 的云计算企业主要使用的平台;是支持全球电子商务领导者的首选基础设施。

推荐阅读/参考资料

好文

01、中国开源激荡 20 年:IT 江湖,谁主沉浮?

  • 发布时间:2020-07-30
  • 作者简介:CSDN(ID:CSDNnews) 马超。

去年底,一国外程序员写的《中国的开源项目正在破坏 GitHub 的排行榜》博客引起国内开发者热议,他在博客对中国项目占领 GitHub 趋势榜进行了无奈的吐槽。这样火爆的场面是中国开源事业蓬勃发展的一个侧影。如今越来越多中国年轻程序员投身到开源社区,目前在 GitHub 全球 4000 万注册用户中,中国开发者从数量和贡献度上均位列第二,越来越多的国内企业在国际合作的开源项目中扮演着重要角色。中国的活跃开源项目贡献者,有 40%以上是在 2019 年里加入的,他们大多是 90 后,是年轻程序员的代表。

那么什么是开源软件,中国开源软件的历史上又有哪些故事和传奇?作者找到了中国开源史上的五位代表性人物,他们是 LVS 创始人章文嵩、MiniGui 创始人魏永明、RT-Thread 创始人熊谱翔、TDengine 创始人陶建辉、TiDB 创始人黄东旭,共同畅谈中国开源史,回顾中国开源激荡 20 年的人和事。

  • 开源初识:西方人的集市、中国人的侠义;
  • 开源历程:缘起清华 BBS、发扬于 CSDN;
  • 开源之兴:大厂之崛起;
  • 开源盛世:AIoT 与开源相互成就;
  • 开源可持续发展:保护原创、重视产权才是王道。

开源之争即标准之争、入口之争和全栈之争。

02、教师们的开源终极指南

  • 发布时间:2020-07-16
  • 作者简介:Lauren 是 Opensource.com 的策略师和编辑。她对开源原则如何帮助解决各种类型的问题着迷,特别是涉及地方政府和公民参与的问题。当她不去研究数据时,她喜欢与家人和德国牧羊犬救援犬 Quailford 一起冒险。

每个人都应该获得高质量的教育,开源是公共教育的最佳选择。开源并不仅适用于计算机程序员和 IT 专家。所有年龄段,主题和学校环境中的教师和教育工作者都有权在其教室中使用开源。在探讨可供教师使用的开放源代码工具之前,首先可以了解开放源代码的原理以及如何将其应用于教育。

开源的原则是什么?

  • 透明度:开学的第一天教师设置规则;家长了解到在学年开始时在见面会期间教室的运行情况;将教室视为一个安全的空间,并鼓励学生对自己的感受保持透明也可能会产生影响;
  • 合作:开放式合作意味着教育不是一条单向的街道。它正在从“舞台上的圣人”模式转变为拥抱教师可以学习与学生一样多的机会。师生在学习过程中进行协作时会经历共同学习。
  • 社区:培养学生的归属感将使他们在出门在外时更加放心。社区可以以多种形式形成。随着越来越多的虚拟学校,教育工作者可以从开源社区中学到很多东西,以建立一种新的社区意识。
  • 激励:鼓励人们参与,并赞赏伟大的想法,无论它们来自何处。为了使精英管理制度能够在实践中发挥作用,建立包容性的课堂环境至关重要。
  • 尽早发布:反馈不应保留给报告卡。在整个学年中,学生应该放心地要求反馈。要求反馈是参与和渴望学习的标志。

开源世界提供了众多的资源和工具,非常适合教室环境。如:如何使用 Linux 为孩子设置远程学校环境;如何将 Hugo 用于教室的开源 CMS;为教室设置并运行 WordPress;使用 Reveal.js 和 Git 创建网络教程;使用 EduBlocks 轻松学习 Python 编程;虚拟教室的 6 种开源教学工具等等...

03、为什么人工智能的未来是开源的?

  • 发布时间:2020-07-24
  • 作者简介:Charles Simon, BSEE, MSCs 是国家认可的企业家和软件开发人员,他在工业界具有多年的计算机经验,包括 AI 的开拓性工作。Simon 先生的技术经验包括创建两个独特的人工智能系统以及用于成功的神经系统测试设备的软件。将 AI 开发与生物医学神经信号测试相结合,给了他独特的见识。

Artificial general intelligence (AGI) 是人工智能的下一阶段,在此阶段,计算机将达到并超过人类的智能,几乎可以肯定它是开源的。AGI 致力于解决智能人类可以解决的广泛问题。这与狭窄的 AI(涵盖当今大多数 AI)形成鲜明对比,后者在特定问题上力求超越人类的能力。简而言之,AGI 是实现 AI 的所有期望。

至少有四种创建 AGI 的方法:结合当今狭窄的 AI 功能和巨大的计算能力;通过模拟新皮层的 160 亿个神经元来复制人脑;复制人脑并从扫描的人脑上传内容;通过定义“认知模型”并使用过程语言技术来实现模型来分析人类智能。

AGI 可能很快就会出现,但在时间安排上尚未达成共识。考虑到大脑的结构是由人类基因组的一小部分(也许是10%)定义的,总共约有 750MB 的信息。这意味着仅开发 75MB 的程序就可以完全代表具有完全人类潜能的新生儿的大脑。这样的项目完全属于开发团队的范围。我们尚不知道该如何发展,但是在任何时候,神经科学的突破都可以绘制人类神经瘤的地图。(已经有一个 Human Neurome 项目。)Human Genome Project 刚开始时看上去异常复杂,但是比预期的要早完成。在软件中模拟大脑可能同样简单。

因此,相信我们应该寻求 AGI 的开放源代码策略,该策略应包含多种方法,并努力:公开发展;在同一页面上获取有关限制 AGI 风险的 AI / AGI 社区;让大家知道项目的状态;让更多的人认识到 AGI 可能很快会出现;进行合理的讨论;将保障措施纳入代码;开放的开发过程是我们实现这些目标的唯一机会。

04、开源项目如何赚钱?

  • 发布时间:2020-07-09
  • 作者简介:Vishal Chawla 是《 Analytics India》杂志的资深技术记者,撰写有关 AI,数据分析,网络安全,云计算和区块链的文章。Vishal 还主持了 AIM 的名为 Simulated Reality 的视频播客,其技术领导者,AI 专家和印度的创新创业公司都在这里。

如今,开源软件开发已在许多项目中使用,甚至有一种说法是开源正在吞噬软件世界。许多伟大的开源项目使代码在社区中更加透明,可靠和活跃,增加了创新,并降低了企业和开发人员的开发成本。

另一方面,通过开源项目获利总是具有挑战性的。团队和个人很难长期维护和迭代开源项目。开源与商业化并不矛盾,而是相辅相成的。

  • 建立一个开源社区:通过开源和开放的精神,公司可以降低用户使用新软件的机会。如果该项目可以帮助用户解决某些问题,那么社区将变得越来越大,带来更多的需求和产品功能。这样,软件产品将具有更少的错误和更多的功能,可以满足新的需求。
  • 在使用产品的过程中提供需要商业的技术支持:包括高级版本功能以及付费订阅项目的额外功能。在商业实践中,一种方法是不加保留地打开所有源代码,并帮助用户解决问题。这样,用户可能愿意为此付费并导致更好的商业化过程。一个完美的例子是红帽企业的 Linux。
  • 将其与开源生态系统中的其他项目集成:开源企业还应该确定其项目的边界。一旦确定了项目的边界,就可以更好地将其集成到开源生态系统中。程序员在项目上工作时必须束缚万能的想法,设置边界,并允许项目更好地与整个开源生态系统集成和协作。此外,对于选择项目,控制项目的代码质量以及在功能上进行更敏捷的迭代,项目的关键是项目的运营。
  • 使用开源项目作为了解用户需求的武器:最好的开源项目从第一天开始就接近用户需求。该项目的白皮书,蓝图和源代码向整个社区开放,允许用户使用它并参与社区讨论。在此之前,可能是程序员或团队来决定开发的方向,但是在拥有开源之后,您应该从用户的需求入手,并请他们为项目提供建议。如果您想进行一个开源项目,则应该以开放的心态与用户和社区进行交流,并让整个社区慢慢地领导项目的开发。

05、我的 Linux 故事:通过开源打破语言障碍

  • 发布时间:2020-07-14
  • 作者简介:Anirban Mitra 博士是一位开源爱好者和业余印刷者,他是专业医生。他曾在GNU / Linux Bengali / Bangla 本地化项目中工作,并在 Bengali 中处理了几种开源 OpenType 字体。

2000 年,正在攻读医学的研究生学位的作者实现了自高中以来的梦想——购买一台很难买到也很贵的 Windows 98 PC。接下来遇到了各种各样的计算机问题,如输入法问题、字体问题、语言问题等,逐步开启了自己对开源的贡献之路。

作者说道:开源项目可以消除语言障碍和其他障碍,从而帮助改变世界。加入开源运动很容易。主动做一些对自己有用的事情,然后考虑如何对他人有用。关键是使它免费可用,并且可以为世界增加不可估量的价值。

06、更多文章推荐

快讯

MySQL、Linux Kernel 等取消项目中的 Master-Slave 等词汇,以更好地支持 BLM 运动。[07-06]

CNCF 正在寻求增加组成云原生生态系统的开源项目的数量。在 2008 年开始的经济衰退之后,更多的 IT 组织采用了“开源优先”的方法来实现这一转变。随着目前由 COVID-19 大流行所带来的经济衰退的加深,人们对开源软件的偏好很可能只会在未来的几个月和几年里增加。[07-08]

Linux 基金会举办有史以来第一次虚拟开源峰会。其成功很可能为开源参与的新水平树立了标准。[07-13]

2020 第十五届“开源中国开源世界”高峰论坛在云端盛大举行。大会邀请到国内外近 30 位开源领域专家学者,围绕“新技术、新生态、新变革”主题,深入分享了开源在人工智能、区块链、数字货币、云原生与微服务等多领域的融合与创新。[07-15]

GitHub 将其开源软件代码保存在北极深处,以供子孙后代使用。Github 已经将网站上存储的所有开源软件代码的副本交给了北极世界档案馆的一个数据仓库。北极世界档案馆是一个长期的档案设施,埋在北极山的永久冻土层中 250 米深。为了表彰数百万为开源软件做出贡献的开发者,GitHub 还创建了一个新的徽章,该徽章将显示在每个用户个人资料的突出显示部分。[07-16]

Red Hat 将 IBM 带回到开源 OpenStack 云平台。IBM 并不是开源 OpenStack 云平台最有力的支持者,但随着 Red Hat 的出现,这种情况正在发生变化。[07-19]

开源和卫生领导人携手抗击冠状病毒:Linux 基金会发起了一项新的倡议——Linux 基金会公共卫生计划,以帮助当局(PHA)对抗 COVID-19。(腾讯作为创始成员加入 Linux 基金会公共卫生计划)。[2020-07-20]

OASIS 推出基金会即服务计划。想要启动创新的、开源的项目的团体常常被从头开始的非营利性组织以及随之而来的日常管理所吓倒,OASIS 的 Foundation-as-a-Service 提供了一种新的选择。该计划简化了基金会的形成和运作过程,让团体独立运作,同时享受 OASIS 非营利性公司结构和专业知识的好处。[07-21]

乘风破浪,NDN勇探开源之路。作为一个以区块链驱动的新一代互联网底层通信基础设施,NDN在项目初期就积极参会开源生态社区的建设。[07-29]

许可证:GPL

GNU 通用公共许可协议(英语:GNU General Public License,缩写 GNU GPL 或 GPL),是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。许可证最初由自由软件基金会的理查德·斯托曼为 GNU 项目所撰写,并授予计算机程序的用户自由软件定义(The Free Software Definition)的权利。GPL是一个 Copyleft 许可证,这意味着派生作品只能以相同的许可条款分发。这与宽松自由软件许可证有所区别 ,如 BSD 许可证和 MIT 许可证就是其中被广泛使用的例子。GPL是第一个普遍使用的 Copyleft 许可证。

GPL授予程序接受人以下权利,或称“自由”,或称“copyleft”:

  • 基于任何目的,按你的意愿运行软件的自由(自由之零)。
  • 学习软件如何工作的自由,按你的意愿修改软件以符合你的计算的自由(自由之一)。可访问源代码是此项自由的先决条件。
  • 分发软件副本的自由,因此你可以帮助你的好友(自由之二)。
  • 将你修改过的软件版本再分发给其他人的自由(自由之三)。这样可以让整个社区有机会共享你对软件的改动。可访问源代码是此项自由的先决条件。

项目

01、macintosh.js:虚拟 Apple Macintosh

这是 Mac OS 8,在 Electron 应用程序中运行。这完全是用 JavaScript 编写的,因此请调整你的期望。该虚拟机正在模拟 1991 年的带有 Motorola CPU 的 Macintosh Quadra 900,Apple 在 1990 年代中期切换到 PowerPC架构(Apple / IBM / Motorola)之前就使用了它。

02、tsunami-security-scanner:通用网络安全扫描程序

Tsunami 是具有可扩展插件系统的通用网络安全扫描程序,用于以高置信度检测高严重性漏洞。

当攻击者积极利用安全漏洞或错误配置时,组织需要快速做出反应,以保护潜在的易受攻击资产。随着攻击者越来越多地投资于自动化,对新发布的高严重性漏洞做出反应的时间范围通常以小时为单位。对于具有成千上万甚至数百万个互联网连接系统的大型组织,这构成了巨大的挑战。在这样的超大规模环境中,必须检测安全漏洞并以完全自动化的方式进行补救。为此,信息安全团队需要具有在很短的时间内大规模实施和推出针对新型安全问题的检测器的能力。此外,重要的是检测质量始终很高。为了解决这些挑战,Google 创建了 Tsunami——一种可扩展的网络扫描引擎,用于以未经身份验证的方式高可信度地检测高严重性漏洞。

  • Tsunami 支持一组手动修复的小漏洞;
  • Tsunami 检测到严重的,类似于RCE的漏洞,这些漏洞经常在野外被积极利用;
  • Tsunami 产生的扫描结果具有很高的置信度和最低的假阳性率。;
  • Tsunami 探测器易于实施;
  • Tsunami 易于扩展,执行速度快并且可以进行非侵入式扫描。

03、alacritty:跨平台,GPU 加速的终端仿真器

Alacritty 是现有最快的终端模拟器。使用 GPU 进行渲染可以实现优化,而没有它就无法实现。Alacritty 当前支持 macOS、Linux、BSD 和 Windows。

品牌

**01、[公司] **NASA 开源

NASA 开源开发计划旨在提高公众参与其任务的能力。NASA 提供奖项竞赛、众包和公民科学机会,以开源思想和创新,并与来自世界各地的创新者合作,帮助应对挑战。

**02、[基金会] **自由网络基金会

自由网络基金会(Libre Space Foundation)促进和开发网络,并提供免费和开源技术以培养有关太空探索的知识。他们目前正在建立一个地面卫星站的开源网络,该网络可以与太空飞船,空间站和卫星进行通信。UPSat 项目旨在成为第一个发射的完全开源卫星,这是他们帮助支持的程序。OpenSpace Project 等其他资源提供了可视化工具来探索整个已知的宇宙。

**03、[非盈利] **OASIS Open

OASIS Open 是世界上最受尊敬的非营利标准机构之一,它为项目(包括开源项目)提供了标准化和法律批准的途径,以供国际政策和采购参考。OASIS 拥有广泛的技术议程,包括网络安全、区块链、隐私、加密、云计算、物联网、城市移动性、应急管理、内容技术。实际上,任何开发代码、API、规范或参考实现的计划都可以在 OASIS 找到。

荐书:《生产开源软件》

LAMP基础技术(Linux,Apache,MySQL 和 PHP)的最新成功证明,企业市场现在正在拥抱前所未有的免费“开源”软件。每一个都是众多开发人员之间公开协作过程的结果,这些开发人员自愿投入时间和精力来开发更好的软件。然而事实是,绝大多数免费软件项目都失败了。为了帮助用户克服困难,O'Reilly 整理了 Producing Open Source Software(生产开源软件)一本指南,该指南建议了已尝试的真实步骤,以帮助自由软件开发人员共同努力实现共同目标。本书不仅针对正在考虑开始自己的自由软件项目的开发人员,还将为希望参与任何级别流程的人员提供帮助。

该书通过将其分解为易于理解的部分来解决这个非常复杂的主题。从项目管理的基础开始,它详细介绍了在自由软件项目中使用的特定工具,包括版本控制、IRC、错误跟踪和 Wiki。以在 CVS 和 Subversion 方面的工作而著称的作者 Karl Fogel 提供了有关如何设置和使用各种工具以及开放式邮件列表和归档的实用建议。他还提供了几章,内容涉及招聘和激励开发人员的要领,以及如何为的用户项目赢得急需的宣传。

订阅

本刊每月底择机发布,以 Github 为中心、微信公众号(@ningowood)、语雀知乎为同步平台,任何想法和新内容的推荐欢迎以 Github Issue 的形式进行交流与知识共享。