兼容性问题一直是应用处于不同操作系统、平台和设备之间的一个难题,openKylin积极探索Linux桌面系统的兼容解决方案,由此引入了KARE。KARE是一种兼容环境,通过模拟目标软件的操作系统环境,确保软件在当前系统上正常运行。
当前,openKylin 2.0版本已预装KARE生态兼容方案,通过KARE,可让用户在openKylin系统上运行适用于其他Linux桌面系统的应用程序,实现1.0系列原生软件在2.0版本上的直接安装运行,“安装+启动”综合成功率达到94%!
openKylin KARE技术原理
在openKylin系统中,KARE当前主要通过容器技术来运行跨系统版本应用。容器技术通过利用操作系统的虚拟化功能(如Linux上的namespace和cgroups)来实现资源的隔离和限制。具体来说,容器技术将操作系统资源划分为独立的命名空间,使得每个容器都具有自己独立的命名空间,从而实现了应用程序之间的隔离。
在容器技术中,容器镜像包含了应用程序及其依赖库的所有文件和配置信息,通常通过类似Docker的工具创建。在运行容器时,容器引擎(如Docker)会将容器镜像加载到隔离的环境中,并启动容器内的应用程序,其核心原理在于利用操作系统提供的虚拟化功能来实现资源的隔离和限制。
openKylin系统中KARE通过实现资源目录的挂载(并做好数据共享和隔离工作)、用户映射和设置容器内环境变量等内容来创建应用兼容运行环境。
openKylin KARE特性介绍
01 高度兼容性
openKylin KARE实现了多发行版支持,能够模拟多种主流Linux发行版的操作环境,如openKylin、银河麒麟、Ubuntu等,使得应用程序在不同发行版的操作系统上无缝运行。用户可以选择自己喜欢或者熟悉的操作系统环境,并且无需担心应用程序的稳定性和可靠性。
02 资源隔离
openKylin KARE通过容器技术实现应用程序之间的资源隔离,容器技术通过多种隔离机制和资源控制手段,提供了一个独立、隔离、稳定的运行环境,这样使应用能够相互独立,互不干扰,并且可以更有效地利用主机资源。
03 灵活配置
用户可以根据需求自由配置模拟环境,这种自由度赋予了用户更多的控制权和定制能力,用户可以根据不同的场景和需求调整容器的配置,包括环境变量、资源限制等等,从而实现个性化的部署和运行环境,满足特定应用的运行要求,提高了应用的可移植性和可维护性。
04 稳定运行
通过模拟目标环境,确保软件在当前系统上稳定运行,避免因兼容性问题导致的崩溃和数据丢失,有效减少软件部署后可能出现的意外情况,提高系统的可靠性和稳定性。
05 数据交互
系统提供共享目录功能。用户可以跨系统版本使用剪切板进行文字的读写操作,同时,系统提供的共享目录满足用户在宿主系统与容器之间共享文件的需要。这种数据交互方式不仅提升了跨系统版本间的无缝互通性,也促进了系统与容器之间的数据交换和协作。
openKylin KARE产品能力
01 跨平台兼容性
openKylin KARE通过构建模拟机制,使得用户能够在当前Linux系统上轻松运行原本为其他Linux桌面系统定制的应用程序。这一创新技术彻底打破了传统Linux发行版之间的壁垒,解决了长期以来困扰用户的跨平台兼容性问题,为用户带来了前所未有的便利。
02 提高软件可用性
openKylin KARE的跨平台兼容性不仅让用户在选择软件时拥有更多自由,更重要的是,它使得原本不兼容的软件能够在不同的Linux系统上顺畅运行。这一功能极大地提升了软件的可用性,使用户不再受限于特定的Linux发行版,享受到了更加丰富的软件资源。
03 增强系统可靠性
openKylin KARE通过精确模拟目标运行环境,确保软件在当前系统上稳定运行。这种技术有效避免了因不兼容而导致的应用崩溃和数据丢失问题,极大地提升了系统的稳定性和可靠性。用户可以放心地运行各类应用程序,无需担心潜在的风险。
04 简化软件迁移
在openKylin KARE的帮助下,用户可以轻松地将应用程序从一个桌面系统迁移到另一个。由于KARE已经解决了兼容性问题,用户无需再担心迁移过程中可能遇到的障碍。这一功能大大简化了软件迁移过程,提高了工作效率。
openKylin KARE使用场景及方法
场景一:构建并安装应用所需的基础环境
openKylin KARE在安装应用前,需要先构建基础环境,基础环境为安装应用所适配系统,比如当前想要在openKylin 2.0上安装openKylin 1.0的应用,使用sudo kare -b openkylin1.0构建基础环境即可。
当前支持构建环境版本以及参数如下:
系统版本 | 参数 |
---|---|
openKylin 1.0 | openkylin1.0 |
银河麒麟 V10 | v10 |
银河麒麟 V10 SP1 | v10sp1 |
Ubuntu 16.04 | ubuntu16.04 |
Ubuntu 18.04 | ubuntu18.04 |
Ubuntu 20.04 | ubuntu20.04 |
Ubuntu 22.04 | ubuntu22.04 |
在openKylin 2.0中执行图示如下:
基础环境构建后,当前可通过sudo kare -e baseOS -i xxx.deb命令安装,当KARE安装应用需要其他依赖时,如果此依赖在源内则会自动下载。以在openKylin 2.0系统中安装openkylin 1.0软件包为例:
场景二:跨版本系统升级
用户通过“跨版本升级”,在升级Linux桌面系统时,KARE将旧系统中的应用程序迁移到新版本系统中。此过程无需用户手动处理复杂的兼容性问题,KARE会自动处理这些工作,确保应用程序在新系统中稳定运行。升级后的应用在运行时除了通过双击桌面图标、单击开始菜单图标、单击任务栏图标实现应用的启动之外,还可以通过右键选项选择以兼容模式打开,如下图所示:
当用户点击以兼容模式打开后,会出现相关选择界面让用户根据实际场景选择对应的运行环境(若系统仅经过一次跨版本升级或换机,则有且仅有一个环境仅供选择),同时支持保留相应配置功能,当用户选择了记住此模式后,双击应用就会以兼容模式和上次勾选的兼容环境启动应用。
场景三:适配openKylin 2.0中的不可变系统
在openKylin 2.0不可变系统中,用户禁止使用dpkg或apt来进行软件包的安装操作,用户可以通过双击.deb包或使用软件商店来安装应用程序。双击.deb包会直接调用麒麟安装器进行安装,如下图所示:
软件商店则会在安装软件包时自动构建所需环境,点击软件包的安装按钮即可,如下图:
用户在整个安装过程中是无感知的,和在正常openKylin系统上安装软件包没有差异,KARE会自动处理这些操作,确保应用程序与当前系统的兼容性。
openKylin KARE后续规划
当前KARE小组致力于openKylin兼容运行环境的规划、维护和升级工作。后续,KARE团队将陆续对以下能力进行升级:
-
提供KARE基础环境图形化管理工具;
-
优化KARE应用的安装、启动速度,减少磁盘空间占用;
-
实现KARE基础环境的导入导出机制。