沐鸣娱乐


        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑–)

        2020 年,借鉴沙箱/容器的技术方案 ,玲珑原型的核心开发悄然完成;

        2022 年,作为 deepin 发行版未来的核心特性,玲珑随 deepin v23 预览版共同发布,初步具备可用性;

        2023 年,我们将玲珑项目代码、玲珑官网 、玲珑商店等资产捐赠给开放原子开源基金会 ,欲汇聚更多产业力量,携手推动玲珑发展,加速生态建设……

        那么到底何为“玲珑”?它从哪里来 ?又要到哪里去?接下来,此文为你一一揭秘 。

        前言 :软件包管理器的演进

        Linux 操作系统一直以其开源性质和灵活性而闻名 ,而要使 Linux 系统能够顺利安装并运行所需的软件,最关键的部分就是软件包管理器。

        顾名思义,Linux 软件包管理器是一种在 Linux 操作系统上用于安装、更新和卸载软件包的工具。它的历史可以追溯到上世纪 90 年代,此时 Linux 正处于起步阶段,软件的安装必须手动下载源代码并编译,这对非技术用户来说是一项繁琐且困难的任务。

        这种情况下,先后催生了 dpkg 和 rpm ,然而由于不能自动解决依赖关系,其使用起来依旧不便。

        直到 Debian 的 apt 、Red Hat 的 up2date 的发布,包管理器可用性有了很大的提升 。它们采用了一种被称为“依赖关系解决器”的算法,能够自动解决软件包之间的依赖关系,从而简化软件的安装和升级过程。但这在另一方面大大增加了复杂度 ,维护者们需要非常谨慎小心地处理,稍有不慎就会陷入“依赖地狱”,导致软件包系统发生故障 。

        此外 ,还有许多其他的软件包管理器 ,如 yum、portage 和 pacman 等。包管理器的多样性给用户带来了更多选择 ,但缺点也十分显著:它们的软件包无法互通,这意味着一款软件要在其他发行版上使用,可能需要被重复打包 。

        随着 Linux 内核对容器的支持、Docker的诞生,Snap 、Flatpak 等一批容器思想的包管理器也开始崭露头角。这类格式的软件包与系统环境几乎完全解耦 ,不再依赖系统上的库文件(AppImage 也是如此) ,应用分发开始逐步变得简单起来 。但磁盘、内存占用较高 ,启动时间被不断延长等问题也随之而来 ,至今仍未被解决 。

        探索:“玲珑”应运而生

        deepin 自 2015 年放弃基于 Ubuntu 作为上游 ,选择 Ubuntu 的非商业上游社区 Debian 作为研发的基础起,我们便收到了众多用户关于软件包管理上的问题反馈 ,常见的有:

        • 系统上能用的应用太少 ,可用的应用版本太老;
        • 系统更新后,某些应用无法正常使用;
        • 从其他来源获取某些应用软件安装后,包管理器无法正常工作 ,甚至系统无法继续使用。

        以上这些问题有一个共性原因:依赖关系绑定太强。因系统底层库的关系,应用无法随意更新 ,在底层库有接口变动时,应用需要重新适配才能正常工作 。

        在意识到这些问题后,我们开始尝试使用新的软件包管理器。

        • 在 deepin 上适配 Snap:由于 Snap 在除 Ubuntu 系统环境外有诸多兼容性问题 ,遂放弃 。
        • 将部分自研应用转化为 AppImage:AppImage 有着不错的可移植性,这些应用可以很轻松地在其他发行版上使用。但它没有集中的仓库存储和软件包管理功能,也不提供 Snap、Flatpak 同一级别的沙箱,安全性无法保障,不适合作为操作系统的默认软件包管理方式。
        • 2017年,deepin 对 Flatpak 格式进行了跟进,完成了 100 的软件包构建工作 ,后因其应用体积较大,磁盘占用过多 、Bug 修复缓慢等各种原因没有继续适配 。

        在经历过种种“折腾”后 ,基于对各类包管理器的了解 ,我们决定自己设计一套软件包管理系统。

        在经过 3 个多月的技术调研,1 年多的原型验证、技术方案完善和产品打磨后 ,最终一套先进的解决方案——“玲珑”应运而生。

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        顶层组件关系图

        • 应用沙箱 (ll-box) :按照 OCI 标准设计的应用沙箱运行环境 ,利用内核 Cgroup、Namespace 特性将应用与宿主机环境隔离,限制系统资源的使用。
        • 应用管理服务 (ll-service/ll-cli) :提供应用沙箱环境创建,系统兼容性问题处理等功能 。完成对应用的安装状态/运行状态管理。
        • 权限管理代理服务 (ll-dbus-proxy/ll-fuse-proxy) :提供权限管理功能,包括 DBus 接口以及文件接口。
        • 应用构建工具(ll-builder) :提供容器化的应用构建环境,方便开发者在不同的环境上构建出一致性的应用。
        • 单独打包格式(uab/AppBundle):Uniontech Application Bundle,应用包封装格式,提供可直接运行的二进制包格式。
        • 仓库系统(ll-repo-server):提供包上传、下载、信息统计、查询等功能 ,底层存储使用 OSTree。

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        运行视图

        成果:解决兼容性问题 、性能大幅提升

        此前,国内软件生态建设尚不成熟,软件兼容性、安全性问题频出,在面向不同的操作系统进行应用打包和分发时  ,会额外耗费大量的时间和资源。

        而玲珑的出现,无疑为解决这一难题提供了新思路 。玲珑的隔离技术可以将应用与系统进行完全解耦,从而彻底解决系统与应用 、应用与应用之间因升级引起的兼容性问题  ,同时减少不同操作系统下分发时的打包次数 。

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        传统架构 Vs 玲珑架构

        当前,玲珑的基础设施已较为完善,衍生出了 5 个项目 ,共 9 个组件 。

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        项目组件概述

        相比其他类似软件包格式 ,玲珑在启动速度 、资源占用方面具有许多优势:

        • 使用非全量运行时(宿主系统 Runtime) ,整体体积较小;
        • 由于复用宿主系统上的库,可以使用到部分已经加载到内存中的库文件 ,启动速度会更快,同一应用在玲珑下启动速度提升显著;
        • 提供开发库托管服务,类似NuGet ,方便开发者进行开发;
        • 支持Rootless(无特权)沙箱。

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        软件包大小统计

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        软件包启动耗时统计

        在最新版本 deepin v23 上 ,已预装十多款左右玲珑格式自研应用。玲珑网页商店内 ,常用应用已上架 120 余款,如QQ、微信、网易云音乐、迅雷等,累计下载量当前已达 40w 。

        未来:助力操作系统软件包生态健康发展

        未来 ,我们将从权限管控、用户交互及可用软件数量等方面着手 ,对玲珑进行进一步加强优化。

        1、权限管控

        当前玲珑文件访问文件的权限较为单一,只能在应用启动前处理目录的挂载,未挂载的目录无法被启动后的应用访问到。

        未来将会支持文件访问权限的动态管控,无论应用启动与否均可管理,同时控制中心会同步适配玲珑的权限管控,提供应用权限管理界面 。

        2 、用户交互

        目前玲珑应用的更新需要用户手动命令行更新,需要一定的 Linux 基础。且当软件包出现问题时 ,无法直接查询到构建源头的信息,如 git 项目的 hash 值。

        未来,应用商店将支持玲珑应用更新。同时支持溯源,对开发者来说能快速查询到软件包使用的源文件 hash 值 ,更容易追踪和解决问题。

        3 、软件包生态

        生态建设需要大家共同发力 ,我们目前已在着手开发相关软件包转换工具,可以将现有的 deb、appimage 等格式软件包轻松地转换成玲珑应用。同时也在推动已有合作软件厂商对玲珑的适配 。

        与其踽踽独行,不如结伴而行 ,生态建设需要大家共同努力 。此前,deepin 开源社区已和北京航空航天大学开展暑期共建开源生态合作,已有众多北航学子参与到生态共建中来。

        我们衷心希望玲珑能够解决多发行版应用分发困难的问题,同时也期待更多的感兴趣的朋友加入我们,共建应用分发体系 ,为操作系统软件生态健康发展贡献力量。

        你对玲珑的未来有哪些期待或建议呢 ?欢迎在公众号评论区留言 ,留言点赞数前三的参与者 ,将获得 deepin 社区文化周边一份~

        何为“玲珑”,它从哪里来又要到哪里去?- 文末有福利(玲珑--)

        (温馨提示 :留言点赞截止时间为2023 年 9 月 1 日18:00 。活动结束后,我们将联系中奖者送出惊喜!)


        内容来源 :深度操作系统公众号

        原文链接:https://mp.weixin.qq.com/s/XUnWNi6CZaJBf944Ge94Uw

        文字来源 :kamiyadm

        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图