大家好,下面是上周末和CCF合办的线上活动相关幻灯片资料,其中非SHLUG的资料是授权转载,原作者保留所有相关权利:

前面活动通知里面的,人才港的直播的(微信)链接可以用来看活动的录屏。

下面是SHLUG做的分享《上海Linux用户组的过去、现在和未来》整理稿:


上海Linux用户组的过去、现在与未来

摘要

三十多年前,理查德·斯托曼提出“自由软件”的概念并发起了GNU计划,现在广为人知的“开源软件”就是由“自由软件”的概念衍生而来的。由Linux内核和GNU计划的众多软件组成的GNU/Linux操作系统是迄今为止最为重要、最为广泛使用的自由软件之一。九十年代末,作为国内最早接触GNU/Linux系统的地区之一,上海地区有相当数量的GNU/Linux用户,这些用户自发的形成了一个松散的技术社区,即“上海Linux用户组”,简称“SHLUG”。上海Linux用户组通过邮件列表、定期组织线下聚会等方式,交流和推广GNU/Linux及其他自由软件技术。在不同时期,SHLUG服务自由和开源软件用户的方式会有所不同,但不论在过去、现在还是未来,SHLUG将不忘初心,始终致力于服务GNU/Linux用户,推广GNU/Linux技术,传播GNU/Linux精神。

讲稿

大家好,我是喻昌远,来自上海Linux用户组。今天,我想给大家讲一讲上海Linux用户组这个技术社区诞生的背景和历史,说说它的过去、现在,以及未来。

我先给大家介绍一下我自己。

我是一名自由和开源软件的爱好者,关于自由和开源软件的概念,如果大家不了解,我后面会解释。

我还是一名资深的Linux用户,我从04年就开始用Linux系统,绝大部分时间用的发行版是Gentoo,最近几年用的发行版是NixOS。至于什么是Linux系统和Linux发行版,我后面也会介绍。

最后,我是SHLUG的活跃维护者,“SHLUG”是上海Linux用户组的缩写,也就是今天要给大家介绍的技术社区,在社区里面,负责组织活动,维护线上社区,以及进行其他维护社区的活动的人我们称为维护者,英文叫maintainer。这也是为什么由我来给大家介绍SHLUG的原因之一。

下面正式开始吧。

在计算机诞生的早期,软件通常是通过源代码的方式发布的。

作为软件用户,人们可以按照自己的兴趣对软件进行修改,当然,那个时候的软件用户一般也是开发者。人们也乐意分享自己的软件,分享软件在当时完全是允许的。

然而随着时间的推移,到了八十年代,情况发生了变化,软件是通过二进制的形式分发的,当然,除了没有源代码外,还有其他的问题,这类软件称为“专有软件”,现在大多数的软件依然是这种类型。

很显然,专有软件变得对用户不友好了。大家仔细想想,因为软件发行商施加的种种限制,我们作为软件的服务对象,不能对软件进行任何修改。此外,如果软件能帮助邻居或朋友解决问题,我们也不能把软件分享给他们。简而言之,作为软件的服务对象,用户受到了不应该的限制。

对于分享专有软件的行为,有一个专门的词,也就是大家耳熟能详的“盗版”。

当时,在MIT人工智能实验室工作的理查德·斯托曼(Richard Stallman)意识到了这个问题,认为软件限制用户的行为是不道德的。

由此他提出了“自由软件”的概念,也就是尊重用户自由的软件。具体自由软件需要满足以下几个条件: 一、运行的自由,也就是说用户能按照自己的意愿运用软件,无论是为了什么; 二、修改的自由,能自由的对软件进行修改,这意味着用户能访问软件的源代码; 三、分发的自由,能自由的分享软件,无论是免费还是收费; 四,也就是最后一个需要满足的条件,修改后再分发的自由,即能自由的分享修改后的软件,也就是说大家都能因软件的改进而受益;

由于英语中,自由和免费是同一个单词,经常发生误解。

为了减少误解,人们也试图用其他词汇来描述“自由软件”,其中一个突出了前面的第2点,也就是现在广为人知的“开源软件”这个说法。使用“开源软件”这个词,显得更加务实,能访问源代码是自由软件最实在的特点,这也符合很多公司宣传的需要,对商业更友好,因此“开源软件”的概念得到了大力的宣传,对大多数人来说 ,反而比“自由软件”更为有名。

再说一点,并不是能访问源代码的软件都是开源软件,是否是开源软件取决于软件使用的许可证,英文叫License。有一个叫“开放源代码促进会”(Open Source Initiative)的组织,对于什么是开源软件进行了定义,官方网站是opensource.org,大家可以看一下网站上的定义,然后就可以发现,开源软件和自由软件的定义是一致的。现在,一般把自由软件和开源软件统一叫做“自由及开放源代码软件”(Free and open-source software),简称FOSS。不过我一般习惯叫“自由和开源软件”。

好的,我们回到自由软件,继续讲理查德·斯托曼的故事。

对于计算机来说,操作系统无疑是最为基础和重要的软件,而当时没有由自由软件组成的操作系统。因此理查德·斯托曼认为当务之急是有一套“自由”的操作系统,因此他发起了GNU计划,其中GNU是“GNU’s Not Unix”的缩写,计划实现一套兼容Unix的操作系统,包括内核,以及命令行解释器、编译器、文本编辑器、邮件处理程序等。

这是GNU的官方网站,默认打开可能是英文的,不过可以切换到简体中文。前面提到的自由软件的定义,在主页就能找到。

很多我们现在常用的软件都是GNU计划的一部分,例如:

  1. Bash,也称为GNU Bash,sh兼容的脚本解释器;
  2. GCC,全称GNU Compiler Collection,最为广泛使用的编译器套件;
  3. Emacs ,也称为GNU Emacs,是非常著名的多功能编辑器;

其中GCC和Emacs早期作者都是理查德·斯托曼。

这里有所有的GNU的软件的列表:https://www.gnu.org/software/ 。

GNU计划实现了很多Unix操作系统上有的工具,当然都是自由软件,但是有意思的是,最核心的内核,却始终没有完成。不过,自由软件的概念以及GNU计划的实施,影响了一大批人,也因此涌现了一大批优秀的自由软件,其中最著名的就是Linux内核。GNU的工具加上Linux内核,即可组成完整操作系统,这样的系统,通常被称为Linux系统或Linux发行版。不过,由于GNU的软件在整个系统中占了相当的比例,因此更准确的叫法应该是GNU/Linux系统。

长期以来,计算机用户有用户组传统,即围绕某种计算机相关技术形成俱乐部,是一种以技术为核心的松散的社区。围绕GNU/Linux相关技术,全球各地的也形成主要以地域划分的Linux用户组

上世纪九十年代末,作为国内最早接触GNU/Linux系统的地区之一,上海已经有了相当数量的用户,也就自然在上海地区形成了Linux用户组,即“上海Linux用户组”,简称“SHLUG”。

SHLUG社区最初是在PCHOME(irc.pchome.net)的#unix频道形成的,社区开始也并非叫“上海Linux用户组”,而是叫“geekbone”,并建立了一个网站geekbone.net,这个网站于05年迁移到了www.shlug.org这个网址。

当时,SHLUG社区的活动包括日常在线交流和定期组织的线下活动。在线交流依然是在PCHOME IRC的#unix和#geekbone频道,线下活动则是每年举办几次技术聚会,在聚会上分享GNU/Linux、自由软件相关的技术,部分线下活动的资料可以在存档的geekbone网站上找到。

由于原来geekbone网站已经不维护了,所以我们保留了一个存档,绝大多数资料都能访问到。

除了社区的线上和线下交流活动,当时SHLUG最重要的工作是维护了一个Debian在国内的镜像站,即mirror.geekbone.org。Debian是非常知名GNU/Linux发行版,Ubuntu以及国内的深度Linux就是Debian衍生出来的,本次会议议程之一的UOS,就是基于深度Linux的。和其他的操作系统相比,由于是自由软件,GNU/Linux系统一直有通过网络分发的传统,例如,Debian系统支持网络安装,即先下载一个很小的网络安装ISO,通过这个ISO启动计算机,然后联网完成后续的安装过程。Linux系统在日常的系统升级或添加其他软件包时,一般也需要通过网络进行下载。由于巨大的网络下载量,Linux发行版一般通过在世界各地建立镜像站点的方式,来实现降低网站负载,提高用户下载速度的目的。因此一个地区的镜像站对于该地区Linux的发展具有举足轻重的作用。

Geekbone镜像站是2003年2月开始上线的,03年的年初的线下聚会后,部分社区成员提出了建立一个Debian镜像的倡议,并得到了大家的支持。镜像的整个生命周期中,从最开始的硬件,到中间硬件的更新换代、维护等,都是通过社区成员捐款捐物的方式实现的,而服务器的日常维护工作,也是社区成员自主完成的。

03年前,Debian在国内仅有Linux论坛的一个镜像,从03年开始一直到2010年,Debian在国内的镜像站始终保持只有两三个左右的情况,其中就包括geekbone镜像站。因此,对于国内的Debian用户来说,这段时期geekbone的存在具有很大的意义,对于国内Linux的发展来说,也是非常重要的。

2011年以后,包括清华、中科大等大学,以及网易、阿里巴巴等互联网公司,陆续都推出了Debian的镜像站,无论从硬件性能还是带宽资源上,geekbone都不如这些新的镜像站,因此geekbone镜像站在2012年停止了运行,完成了它的历史使命

2010年后,SHLUG社区发生了一些变化,并一直持续到现在。首先是线下引入了Hacking Thursday的活动,简称H4,每周四定期定点举行线下聚会,时间一般是在晚上7点到10点左右,地点一般是在市中心的咖啡厅,方便大家前往。聚会一般以聊天或讨论的为主,讨论话题也比较随意,不设讨论固定话题,但大家一般都会交流一些自由与开源软件、操作系统、编程技术或其他计算机技术的内容。大家总能在聚会上听到,当时最新最热门的一些IT相关的话题。此外,很多同学会带笔记本电脑过去,可以在交流的时候用来说明碰到的问题或展示自己的想法。

其次,加大了技术分享活动的频度,每月举办一次比较正式的讲座,我们称之为月度分享或月度讲座。当然,由于场地和人员的不确定性,活动并非每个月都能举行。讲座的主题一般是比较热门的自由和开源软件技术,或者大家比较关心的一些实用技巧,或者其他符合极客精神的内容。这些年来,SHLUG的月度讲座覆盖了相当多的领域,例如热门的IT技术,包括大数据、函数式编程、深度学习、分布式技术、容器、深度学习、区块链等;Linux系统底层的相关技术,诸如ZFS文件系统、发行版软件打包、内核代码的阅读等,以及偏向硬件方向的,涉及嵌入式系统、智能家具等。

前面提到的是社区线下的活动,线上的内容也发生了变化,首先是网站进行了改版,然后在16年再次进行了改版,网站迁移到了GitHub,并完全开源。前面提到的Hacking Thursday活动和月度分享活动的通知以及相关资料都可以在网站上找到。

其次,线上讨论,由IRC也转移到了邮件列表。邮件列表上有想当多的高质量讨论,也有很好的交流的氛围。最近几年,由于国内微信的普及,微信群组也逐渐取代邮件列表,成为SHLUG社区主要的线上交流渠道。

前面我给大家介绍了SHLUG社区的诞生的背景,它的过去和现在。我作为目前SHLUG社区的主要活跃maintainer之一,想说一说社区未来发展的思路。首先,SHLUG作为LUG,要做好LUG应该做的事情,就是帮助本地的Linux用户,维护一个良好的交流环境,以及传播自由软件和极客精神;其次,作为一个松散的社区,要为大家提供一种轻松愉快的氛围,减少社区内部的摩擦与矛盾;最后,作为一个区域性线下技术社区,则要体现和其他线上社区的差异,为本地的计算机技术爱好者,以及对自由软件和开源技术感兴趣的人提供一个交流的平台。上海Linux用户组这20多年来,始终不忘初心,一直在以不同的方式为广大Linux用户服务、为自由和开源软件爱好者服务、为热爱计算机技术的人服务。在未来,我相信,SHLUG也一定会继续服务好大家,为大家提供一个优质的技术交流平台。