Page 83 - 《软件学报》2020年第10期
P. 83
梁冠宇 等:面向操作系统可靠性保障的开源软件供应链 3059
应链的风险并非静态不变的,因此需要时刻监控以发现风险的发展动向,并作为调整处理策略的依据,由此也可
以看出,风险的监控不仅高度依赖于前 3 项任务的结果,同时也需要具备一定的实时性 [18] .
本文的目标是维护可靠的开源软件供应链,为实现自主构建可靠的开源操作系统提供技术支撑.结合上文
所述的供应链管理方法,以及第 1 节中对开源软件供应链可靠性风险特征的描述,本文将更加关注如何实现开
源软件供应链的可靠性风险管理.在未来的工作中,我们将在风险可控的前提下,提升供应链管理的性能.
2.2 知识图谱
关于知识图谱并没有一个明确的定义,大多数时候它能够与信息科学中的“本体论”这一概念混用 [19] .最早
在 2012 年,Google 公司在其信息检索系统的技术介绍 [20] 中首先使用“知识图谱”这一名词,之后的一系列相关研
究中,“知识图谱”被越来越广泛地使用.一种相对认可度较高的定义是:知识图谱是对实体描述的集合,这些实体
具有内部的关联关系,它们可以是真实世界中的对象、事件、某种具体的情况或者抽象的概念等,其中,(1) 这些
描述必须具有统一的结构,确保能够同时允许人类和计算机以高效且明确的方式对其进行处理;(2) 这些描述
组成了一个网络,且相互补充,使得每个实体都是其相邻实体描述的一部分 [21] .
一般情况下,知识图谱都具备以下组成部分.
• 实体:知识网络中具体的实例或对象;
• 类别:符合某一特征或概念的实体的集合;
• 属性:用于描述实体的特征;
• 关系:类别或者实体间的连接方式;
• 事件:当属性或者关系发生改变时产生.
此外,还具备以下特征.
• 支持结构化查询语言访问;
• 以图的形式维护网状数据;
• 所维护的数据具备形式化语义,支持数据理解和推理;
• 具备逻辑形式化,支持生成新的信息、强制一致性以及进行自动化分析;
• 具备动态性,所维护的数据支持自动或人工的持续集成和持续更新.
本文选择以实体图为起点维护开源软件供应链,不断扩充内容,最终构建成一个开源软件领域专用的知识
图谱,为后续工作奠定基础.
2.3 常见的构建方法和工具
灵活、可定制是开源软件的一大特性,开源操作系统亦是如此.然而,以 Linux 系统为例,开源操作系统的复
杂性使其定制工作的难度大为提升,相应地,也出现了不少开源项目旨在解决这一问题.由于篇幅有限,我们在
本节中将重点介绍两个较为有代表性的项目——LFS 和 Yocto.
2.3.1 LFS
LFS 项目创建的目的,是为用户提供一个从源代码开始,一步一步构建定制 Linux 操作系统的指导,希望在
此过程中能够帮助用户理解系统内部的工作机制.本质上,LFS 可以被看作是一个框架,用户可以根据自己的需
求,添加和删减功能,最终构建出一个压缩度更高且定制性更强的系统.此外,LFS 强大的灵活性也可以帮助用户
加入自定义的安全组件,增强最终构建生成系统的安全性.为了增强整个项目的通用性,LFS 还有其他几个子
项目.
• BLFS(beyond Linux from scratch):以 LFS 为基础,指导用户配置和构建包含更丰富功能软件包的 Linux 系
统,如图形化界面(LFS 构建生成的系统不包含图形化界面);
• ALFS:如前文所述,该项目希望提供一个可扩展的系统构建器和包安装器,以实现系统的自动构建;
• CLFS(cross Linux from scratch):在 LFS 的基础上,指导用户通过交叉编译技术实现面向不同体系架构来
构建 Linux 操作系统.