2021 软件自由日中国科大站

2021 年(nian) 9 月 25 日(ri),开源社区传(chuan)统活动软件自由日(ri)(Software Freedom Day)于下午 2 点 30 分在西区 3C101 教室如期举行,本次活动我(wo)们(men)(men)邀请(qing)到来(lai)自 TUNA 的(de) Zenithal 同学,以及 18 级(ji)曹嘉琪(qi)、19 级(ji)蔡(cai)智臻同学为我(wo)们(men)(men)带(dai)来(lai)精(jing)彩的(de)演讲(jiang)(jiang)。除此之外(wai),在闪电(dian)演讲(jiang)(jiang)环节中 21 级(ji)新生袁宝杰、科(ke)大校友吴峰光(guang)、以及来(lai)自线上(shang)的(de) Zhou Zhiqiang 三位演讲(jiang)(jiang)者的(de)精(jing)心准备也为我(wo)们(men)(men)带(dai)来(lai)意外(wai)惊(jing)喜(xi)。

得益(yi)于(yu)(yu)第二课堂系(xi)统以及社团游园会的(de)(de)(de)(de)(de)宣传,本次活动在(zai)新(xin)生中的(de)(de)(de)(de)(de)影响(xiang)力空前,大量新(xin)生来到现(xian)场参与本次自由软件(jian)日活动。也(ye)许(xu)对(dui)于(yu)(yu)大部分新(xin)同学而言,演讲的(de)(de)(de)(de)(de)内容对(dui)于(yu)(yu)他们是陌(mo)生的(de)(de)(de)(de)(de),也(ye)无法(fa)通过一(yi)次演讲对(dui)其主 题进行(xing)全面(mian)地了解和深(shen)入的(de)(de)(de)(de)(de)理解,然而演讲的(de)(de)(de)(de)(de)内容仍然可(ke)在(zai)记忆之(zhi)中沉淀,形(xing)成对(dui)技术的(de)(de)(de)(de)(de)认知(zhi)。

3C101-满座

2 点 30 分,简短的活动(dong)(dong)引入环节扼(e)要地介绍(shao)了今日的流程安排和演讲嘉宾后,软件自由(you)日活动(dong)(dong)正式开始。

首(shou)先(xian)由(you)(you)蔡智臻同学(xue)为我们介(jie)绍堪称开源(yuan)界明星的(de)(de)(de) wireguard 组件。只需(xu)寥寥几行配置,活(huo)动(dong)室的(de)(de)(de)机器和(he)演讲(jiang)者(zhe)的(de)(de)(de)主机便处于同一局域网(wang)下,继(ji)承了(le)(le) Unix 哲(zhe)学(xue)一贯的(de)(de)(de)简单(dan)优雅。随(sui)后(hou),蔡智臻同学(xue)深(shen)入介(jie)绍了(le)(le)背后(hou)的(de)(de)(de)逻辑——做为内(nei)核模块工(gong)作时,其将自身模拟为网(wang)络设备,复(fu)用系(xi)统的(de)(de)(de) TCP/IP 路(lu)由(you)(you)表实现网(wang)络的(de)(de)(de)通信与中继(ji)。在(zai)享(xiang)受嵌入内(nei)核模块获(huo)得极致的(de)(de)(de)速度(du)提(ti)升的(de)(de)(de)同时充分(fen)利用了(le)(le)利用已有的(de)(de)(de)路(lu)由(you)(you)配置规则,降低了(le)(le)维(wei)护者(zhe)学(xue)习记忆的(de)(de)(de)成本,与配置复(fu)杂的(de)(de)(de) IPsec 以及在(zai)用户态与内(nei)核态往(wang)复(fu)横跳的(de)(de)(de) OpenVPN 相比在(zai)实际应(ying)用层面上高下立判。其实这一思想正是著名的(de)(de)(de) “一切皆文件” 观点的(de)(de)(de)延续,也(ye)由(you)(you)此(ci)获(huo)得了(le)(le) Linus 的(de)(de)(de)共鸣 —— “state my love”

WireGuard 介绍

了解完网(wang)络建(jian)构工具,来自(zi) TUNA 协(xie)会的(de) Zenithal 同(tong)学(xue)(xue)为(wei)(wei)我(wo)们带来镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)联盟计划 —— MirrorZ 项目。Z 同(tong)学(xue)(xue)从镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)的(de)维护(hu)切入主题,先行分享自(zi)己的(de)镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)维护(hu)历程(cheng),让未能经历的(de)同(tong)学(xue)(xue)们一(yi)(yi)窥镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)维护(hu)的(de)琐事。而(er)正是在维护(hu)镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)的(de)过程(cheng)中,Z 同(tong)学(xue)(xue)既看到各(ge)大(da)高(gao)校镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)的(de)蓬勃发(fa)(fa)展,也注意到终端(duan)(duan)用户存在着(zhe)信(xin)息(xi)获取(qu)(qu)困难,镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)选择(ze)(ze)不便等问(wen)题,以(yi)此出发(fa)(fa)发(fa)(fa)起 MirrorZ 项目,并获得(de)各(ge)大(da)高(gao)校镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)的(de)响应。总而(er)言之(zhi),该项目意在完成镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)之(zhi)间(jian)的(de)信(xin)息(xi)整合与接口统(tong)一(yi)(yi)工作,并实现自(zi)动择(ze)(ze)优机(ji)制。各(ge)大(da)镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)将镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)状态(tai)信(xin)息(xi)推送至 MirrorZ 前(qian)端(duan)(duan),实现信(xin)息(xi)的(de)统(tong)一(yi)(yi)呈现。而(er)镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)针对拉取(qu)(qu)镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)请求,根据用户的(de)意愿,基于镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)站(zhan)(zhan)评分为(wei)(wei)用户自(zi)动跳转至最优镜(jing)(jing)(jing)像(xiang)(xiang)(xiang),以(yi)获得(de)最快的(de)镜(jing)(jing)(jing)像(xiang)(xiang)(xiang)下载速度。和大(da)多数开源软(ruan)件一(yi)(yi)样(yang),MirrorZ 受使用过程(cheng)中的(de)不便性(xing)启(qi)发(fa)(fa),以(yi)开源协(xie)作的(de)模式解决问(wen)题,这(zhei)样(yang)一(yi)(yi)个开源项目的(de)动机(ji)与组织形式,值得(de)开源社区的(de)所(suo)有(you)同(tong)仁借鉴。

MirrorZ

身在科(ke)大,自(zi)然当对学术上开源软件留心。曹嘉琪同学为我们带(dai)来科(ke)学计(ji)(ji)算(suan)软件 Maxima 的(de)(de)(de)介绍与(yu)基本操作。Maxima 源自(zi)于 Macsyma,被 Maple 及 Mathematica 等计(ji)(ji)算(suan)机代数(shu)系统所借(jie)鉴。在日常计(ji)(ji)算(suan)任务中(zhong)可(ke)以一定程度上替代商(shang)业(ye)软件 Mathematica。在图(tu)形界(jie)面 wxMaxima 的(de)(de)(de)帮助下,曹嘉琪同学通(tong)过逐条演示的(de)(de)(de)方式(shi),为我们详(xiang)细介绍了(le)常用的(de)(de)(de) Maxima 的(de)(de)(de)常用功(gong)能(neng) —— 符号计(ji)(ji)算(suan)、数(shu)值求(qiu)解、求(qiu)导积(ji)分、作图(tu) ······ 所见即(ji)所得,更直观(guan)地(di)让听众了(le)解到 Maxima 的(de)(de)(de)语言(yan)风格与(yu)使用效果(guo)。

三场演(yan)讲(jiang)结(jie)束,欣赏之余未免有(you)些疲(pi)倦。正值茶歇,同(tong)学们陆(lu)续前来(lai)领(ling)取水(shui)和零(ling)食。由于错误地(di)预(yu)估了(le)参(can)与的(de)(de)(de)人(ren)数,零(ling)食很(hen)快被(bei)瓜分完(wan)毕。按(an)照往年(nian)惯例(li),现场提(ti)(ti)供了(le)印有(you)开源软(ruan)件 logo 的(de)(de)(de)贴(tie)(tie)纸(zhi)(zhi),做为(wei)对(dui)自由软(ruan)件的(de)(de)(de)宣传。贴(tie)(tie)纸(zhi)(zhi)上的(de)(de)(de)符号是(shi)开源文化的(de)(de)(de)一(yi)部分,而使用贴(tie)(tie)纸(zhi)(zhi)往往可以增强对(dui)开源文化的(de)(de)(de)归属感。无论(lun)是(shi)因(yin)为(wei)熟悉(xi)还(hai)是(shi)因(yin)为(wei)好奇(qi),lug 新做的(de)(de)(de)贴(tie)(tie)纸(zhi)(zhi)成功地(di)吸引了(le)一(yi)部分同(tong)学的(de)(de)(de)注(zhu)意(yi),前来(lai)领(ling)取贴(tie)(tie)纸(zhi)(zhi)贴(tie)(tie)在笔记本上。闪电演(yan)讲(jiang)的(de)(de)(de)名单上多出了(le)一(yi)位(wei) 21 级的(de)(de)(de)同(tong)学袁保杰,想对(dui)他所熟悉(xi)的(de)(de)(de)开源终端 ConEmu 做一(yi)番(fan)推荐;一(yi)位(wei)科大校友(you),lug 的(de)(de)(de)老社员吴峰(feng)光也参(can)与进来(lai),希望(wang)向观众介绍 Nix 包管(guan)理器(qi);线上的(de)(de)(de) Zhou Zhiqiang 也提(ti)(ti)前报名,将为(wei)我们带来(lai)混沌工(gong)程(cheng)概念,SFD 的(de)(de)(de)下(xia)半场,足以令人(ren)拭目以待。

SFD 进(jin)入到下半场,首先(xian)由袁保杰同(tong)学介(jie)绍 Windows 平台(tai)可定(ding)制化终端 ConEmu,其提供了终端背景(jing)定(ding)制,多窗口,并集(ji)成(cheng)了文件管理器等(deng)其他组件,可以在(zai)一定(ding)程度上缓解 Windows 自(zi)带终端对(dui)双(shuang)眼造成(cheng)的不(bu)适(shi)。其易于上手(shou)的特性对(dui)于新人(ren)来(lai)说更加(jia)友好。

一(yi)(yi)味(wei)(wei)小菜过(guo)后,吴峰光校友为(wei)我们带来 Nix —— 一(yi)(yi)个(ge)(ge)(ge)包(bao)(bao)管(guan)理(li)器,或者一(yi)(yi)种依赖(lai)管(guan)理(li)思(si)想(xiang),该(gai)思(si)想(xiang)正(zheng)是 “share everything” 和 “share nothing” 的(de)(de)(de)(de)(de)(de)折衷,即(ji) “share when possible”。Nix 完(wan)(wan)全按照版(ban)(ban)本(ben)依赖(lai)要求安(an)装被依赖(lai)方的(de)(de)(de)(de)(de)(de)对应版(ban)(ban)本(ben),将不(bu)同版(ban)(ban)本(ben)的(de)(de)(de)(de)(de)(de)软(ruan)(ruan)件(jian)视为(wei)不(bu)同的(de)(de)(de)(de)(de)(de)软(ruan)(ruan)件(jian),以(yi)(yi)哈希值决定不(bu)同版(ban)(ban)本(ben)的(de)(de)(de)(de)(de)(de)访问(wen)路径。这意味(wei)(wei)着其(qi)(qi)以(yi)(yi)完(wan)(wan)全违反 Linux 所(suo)规(gui)定的(de)(de)(de)(de)(de)(de)目录结(jie)构为(wei)代价,获得软(ruan)(ruan)件(jian)包(bao)(bao)依赖(lai)的(de)(de)(de)(de)(de)(de)绝对正(zheng)确(que)。理(li)解了其(qi)(qi)基本(ben)思(si)想(xiang)后,演讲者顺势(shi)引入 Nix 语言与 Nix 包(bao)(bao)配(pei)置格式(shi)(shi)(shi),Nix 的(de)(de)(de)(de)(de)(de)包(bao)(bao)管(guan)理(li)方式(shi)(shi)(shi)由此展现(xian)出一(yi)(yi)个(ge)(ge)(ge)巨大的(de)(de)(de)(de)(de)(de)优(you)势(shi),即(ji)在 Nix 包(bao)(bao)管(guan)理(li)系(xi)统下,可(ke)以(yi)(yi)让一(yi)(yi)个(ge)(ge)(ge)系(xi)统整体对应唯一(yi)(yi)的(de)(de)(de)(de)(de)(de)配(pei)置文(wen)(wen)(wen)(wen)件(jian),环(huan)境的(de)(de)(de)(de)(de)(de)复现(xian)将通过(guo)该(gai)统一(yi)(yi)配(pei)置文(wen)(wen)(wen)(wen)件(jian)的(de)(de)(de)(de)(de)(de)迁(qian)移实现(xian)。正(zheng)如(ru)刘(liu)紫檀同学在讨论过(guo)程中(zhong)所(suo)说(shuo),Nix 与 Docker 的(de)(de)(de)(de)(de)(de)目标是一(yi)(yi)致的(de)(de)(de)(de)(de)(de),该(gai)配(pei)置文(wen)(wen)(wen)(wen)件(jian)扮演 dockerfile 的(de)(de)(de)(de)(de)(de)角色(se)。随(sui)后是对 Nix 应用的(de)(de)(de)(de)(de)(de)介绍:通过(guo)使用 NixOS,所(suo)有软(ruan)(ruan)件(jian)及内核均在 Nix 版(ban)(ban)本(ben)控(kong)制(zhi)之下,可(ke)以(yi)(yi)用于(yu)嵌(qian)入式(shi)(shi)(shi)、云(yun)端(duan)部(bu)署领(ling)域批量(liang)化(hua)部(bu)署等应用场景。虽然(ran) Nix 仍然(ran)是一(yi)(yi)个(ge)(ge)(ge)新兴技术,其(qi)(qi)由于(yu)文(wen)(wen)(wen)(wen)档稀少(shao)、社区(qu)小众造(zao)成的(de)(de)(de)(de)(de)(de)入门困难一(yi)(yi)定程度上限制(zhi)了其(qi)(qi)普及速度,其(qi)(qi)镜像的(de)(de)(de)(de)(de)(de)庞大复杂也为(wei)镜像站提供(gong)服(fu)务造(zao)成困难,但 Nix 的(de)(de)(de)(de)(de)(de)未来仍然(ran)值得期待。

最后(hou),Zhou Zhiqiang 通(tong)过(guo)线上(shang)会(hui)议的(de)(de)(de)(de)方(fang)式(shi)加入(ru)现场,为(wei)(wei)(wei)(wei)我们带来“混(hun)(hun)沌(dun)工程(cheng)”这样一(yi)(yi)个(ge)较为(wei)(wei)(wei)(wei)陌(mo)生的(de)(de)(de)(de)话题。根据演讲(jiang)者(zhe)(zhe)的(de)(de)(de)(de)介绍,所谓(wei)混(hun)(hun)沌(dun)工程(cheng),即(ji)是在实验(yan)(yan)环境中加入(ru)各种(zhong)具(ju)有破(po)坏性(xing)的(de)(de)(de)(de)运行干扰(rao),如以一(yi)(yi)定频(pin)率加入(ru)延时,篡改目录,假报(bao)硬盘故障,切断网络,乃至从集群中离线单节(jie)点(dian)等(deng),构造一(yi)(yi)个(ge)“稳(wen)(wen)定产生不(bu)稳(wen)(wen)定因素(su)”的(de)(de)(de)(de)系统(tong)(tong)。演讲(jiang)者(zhe)(zhe)以 chaos mesh 平台为(wei)(wei)(wei)(wei)例,从平台的(de)(de)(de)(de)架构解析混(hun)(hun)沌(dun)系统(tong)(tong)的(de)(de)(de)(de)一(yi)(yi)种(zhong)实现方(fang)式(shi),又以一(yi)(yi)个(ge)简单的(de)(de)(de)(de)混(hun)(hun)沌(dun)实验(yan)(yan),展示了实验(yan)(yan)过(guo)程(cheng)中设置的(de)(de)(de)(de)主(zhu)要参数(shu)。随后(hou),演讲(jiang)者(zhe)(zhe)选取了文件(jian)系统(tong)(tong)错误注(zhu)入(ru),细致地讨论了如何通(tong)过(guo) hook 系统(tong)(tong)调用,随机性(xing)篡改函数(shu)参数(shu)并将错误原封(feng)返回,达到模拟错误的(de)(de)(de)(de)目的(de)(de)(de)(de)。混(hun)(hun)沌(dun)系统(tong)(tong)可(ke)以为(wei)(wei)(wei)(wei)开源(yuan)软(ruan)件(jian)的(de)(de)(de)(de)安全性(xing)、稳(wen)(wen)定性(xing)提供可(ke)行的(de)(de)(de)(de)基准测试方(fang)案(an),为(wei)(wei)(wei)(wei)确保(bao)开源(yuan)软(ruan)件(jian)的(de)(de)(de)(de)质(zhi)量做(zuo)出贡(gong)献。

由(you)于时(shi)(shi)间(jian)原因(yin),两位(wei)本(ben)来(lai)报(bao)名了闪电演讲(jiang)的(de)同学(xue)未能演讲(jiang),着(zhe)实遗憾(han)。但分享(xiang)自(zi)由(you)的(de)时(shi)(shi)光总(zong)是短暂,同学(xue)们陆续扫码签退,离开会场。原定的(de)聚餐(can)环节由(you)于第二天将(jiang)有更多 lug 老成员前来(lai)临时(shi)(shi)更改了日(ri)期,所(suo)以做(zuo)完善后(hou)工作后(hou),几位(wei)熟悉的(de)同学(xue)在食堂相聚,为今年的(de) SFD 做(zuo)上小(xiao)结。

分类:

更新时间: