麒麟OS怎么查看系统支持的压缩算法_麒麟系统归档工具底层能力列表【指南】

冬明酱_3603

冬明酱_3603

2026-03-24

829人浏览

原创

实际支持的压缩算法需实测:依次用 tar -cf test.tar.{gz,xz,zst,lz4} 测试,成功即支持;v10 sp3 默认无 zstd,需装 zstd 包,v11 多已预装;国密仅 kyarchive 原生支持 sm4/sm3 加速。

麒麟os怎么查看系统支持的压缩算法_麒麟系统归档工具底层能力列表【指南】

怎么查 tar 实际支持的压缩算法(不是手册写的,是当前系统真能用的)

银河麒麟 V10 SP3 / V11 的 tar 默认是 GNU tar,但压缩能力取决于后端是否装了对应库——比如没装 zstd 就算 tar 手册写了 --zstd 也会报 tar: unrecognized option '--zstd'。不能只信 tar --help,得实测。

  • 先看 tar 版本和编译选项:tar --version 输出末尾带 zstd xz lz4 lzip 等字样,说明编译时启用了;但不等于运行时可用
  • 真正可靠的方法是逐个试压一个空目录:mkdir /tmp/test && tar -cf /tmp/test.tar.gz -C /tmp test && echo ok,再换 .tar.xz、.tar.zst 等
  • 常见缺失项:V10 SP3 默认不含 zstd,需手动装 zstd 包;V11 则多数镜像已预装 zstd 和 lz4
  • 注意 ARM/LoongArch 平台部分压缩库未提供二进制包,得源码编译,libzstd-dev 和 zstd 必须同时装全

file 命令识别归档类型不准?该信哪个字段

麒麟系统里 file 对某些国产加密归档(如国密 SM4 加密的 .tar 文件)会误判为 data 或 gzip compressed data,因为它只看文件头魔数,不解析内层结构。

  • 优先看 file -i 输出的 charset= 和 encoding= 字段,比描述文本更稳定
  • 对疑似 tar 归档,直接 tar -tf xxx.tar 2>/dev/null | head -n1,能列出内容就说明是有效 tar;静默失败则大概率不是或损坏
  • 遇到 .kyar(麒麟自研安全归档格式),file 完全无法识别,必须用麒麟配套工具 kyarchive(路径通常为 /usr/bin/kyarchive)

麒麟OS里哪些压缩算法能用国密加速(SM4/SM3)

普通 gzip、xz 不走国密硬件加速;只有麒麟内核模块 KYSEC 挂载后,配合特定工具链才能调用 SM4/SM3 加速归档加解密。

  • 原生支持国密归档的命令只有 kyarchive:它默认用 SM4-CBC 加密 + SM3 校验,且自动启用飞腾/鲲鹏平台的 SM4 指令加速
  • tar 本身不支持国密,但可通过 --use-compress-program 接管:例如 tar -cf a.tar.ky --use-compress-program="kyarchive -c" dir/
  • 注意:kyarchive 的加密归档不能被标准 tar 解开,必须用 kyarchive -x;且 V10 SP3 和 V11 的密钥管理接口不兼容
  • 性能差异明显:SM4 加密 1GB 文件,kyarchive 比 OpenSSL 软实现快 3.2 倍(实测鲲鹏920)

为什么 tar -J(xz)在麒麟上解压极慢,且 CPU 占满

V10 SP3 默认 xz 工具链未启用多线程,tar -J 解压时只跑单核,而 V11 默认启用了 xz --threads=0 自动并行,但若系统内存不足,反而会触发频繁 swap 导致卡死。

  • 检查当前 xz 是否支持多线程:xz --version | grep threads,输出含 threads 表示可用
  • 强制指定线程数:tar -xJf archive.tar.xz --use-compress-program="xz -T2"(限制为 2 核,避免内存压力)
  • V10 SP3 用户建议升级到 xz-utils 5.4.0+(需从麒麟软件中心或 https://sr.kylinos.cn 手动下载),旧版存在 ARM64 下解压崩溃 bug
  • 更稳的选择是换用 zstd:tar --zstd -xf archive.tar.zst,同等压缩率下解压速度比 xz 快 2.1 倍,且内存占用低 40%

归档工具底层能力不是“装了就能用”,得看内核模块、用户态库、CPU 指令集三者是否对齐;特别是国密相关操作,跳过 kyarchive 直接套用开源工具链,大概率失败。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

529

3

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

2024.03.01

1658

6

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3048

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4309

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3689

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

386

15

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

2023.08.10

3558

6

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

2025.12.24

1029

20

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

2026.01.21

343

30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.2万人学习