---
title: 安装KSL
description: "本文提供RPM包安装KSL的方法，请在安装后对KSL进行验证。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_ksl_16_0006.html
sourcePath: /source/zh/kunpengboostkithistory/252RC1/accel/kunpengaccel_ksl_16_0006.html
indexId: c24a045a4804302416a63c1187bd238c0bab80aa85dd3c6021817be5375657c476
---
# 安装KSL

本文提供RPM包安装KSL的方法，请在安装后对KSL进行验证。

#### 安装步骤

1. 可选：为阻止缓冲区溢出攻击，建议在安装KSL前开启使用ASLR（Address Space Layout Randomization）。
  ASLR技术通过对堆、栈、共享库映射等线性区布局的随机化，增加攻击者预测目的地址的难度，防止攻击者直接定位攻击代码位置。该技术可作用于堆、栈、内存映射区（mmap基址、shared libraries、vdso页）。

```
echo 2 >/proc/sys/kernel/randomize_va_space
```


2. 按照获取软件包获取到KSL软件包，解压后得到二进制RPM包。
3. 使用root用户安装KSL。
  1 rpm -ivh boostkit-ksl-xxxx.aarch64.rpm

  安装结束后，会自动在环境变量LD_LIBRARY_PATH中添加lib文件夹所在目录即“/usr/local/ksl/lib”。

  上述命令中涉及的xxxx代表版本号。


#### 安装后验证

1. 执行source命令或重新登录终端使环境变量生效。
  1 source /etc/profile

2. 查看环境变量LD_LIBRARY_PATH是否包含KSL的安装路径“/usr/local/ksl/lib”。
  1 env | grep LD_LIBRARY_PATH

  回显结果包含安装路径，说明安装成功，如下所示。

  1 LD_LIBRARY_PATH=/usr/local/ksl/lib:

  安装成功后在安装路径（默认路径是“/usr/local/ksl”）下生成相应文件，其中，“include”文件夹包含子库的头文件，“lib”文件夹包含了系统库的动态库文件，“bin”文件夹包含了KSL_ASN1命令行编译工具。

3. 使用时，请在GCC编译选项中添加动态库所在路径，链接需要使用的动态库文件，编译后用ldd命令检查程序依赖库是否准确链接。
AVX2KI、KQMalloc、HTL、KSL_ASN1、KHSEL、kpglibc子库支持组合使用，组合使用时需要将每个子库单独使能。


  - 若需要使用AVX2KI，请在编译时添加：

    - 当前服务器自适配版本：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lavx2ki
    - NEON指令实现版本：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lavx2neon
    - 256长度SVE指令实现版本：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lavx2sve
    - 512长度SVE指令实现版本：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lavx2sve512

  - 若需要使用KQMalloc请在编译时添加：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lkqmalloc
    KQMalloc库如需在openEuler 20.03上使用，应用层需加上编译选项-ldl。

  - 若需要使用HTL请在编译时添加：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lhtl
  - 若需要使用KSL_ASN1请在编译时添加：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lhiasn1
    KSL_ASN1编译工具hiasn1cli，位于“/usr/local/ksl/bin”下。用户可以使用它来解析ASN.1脚本，并将ASN.1脚本转换为C语言代码的中间文件（包含多个源文件和头文件）。具体使用方法请参见编译工具使用。

  - 若需要使用kpglibc请在编译时添加：-I /usr/local/ksl/include -L /usr/local/ksl/lib -lkpglibc
