创建仓库

This commit is contained in:
2025-12-11 07:24:36 +08:00
commit 0d81c1792d
128 changed files with 15104 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
---
tags:
date created: 星期三, 十一月 19日 2025, 8:00:42 晚上
date modified: 星期三, 十一月 19日 2025, 8:01:00 晚上
---
# 1.5.1 系统运行时与 ABI 基线 (System Runtime & ABI Baseline)
**1. C++ 标准库 ABI 边界 (C++ StdLib ABI Horizon)**
- **关键性****P0**
- **信息解析**
- **当前版本**`GLIBCXX_3.4.24`
- **对应编译器****GCC 7.3.0**。
- **工程约束**
- **C++ 标准**:完美支持 **C++14**
- **C++17 风险**:尽管 GCC 7.3 宣称支持 C++17`std::filesystem` 等特性此时仍位于 `std::experimental` 命名空间,且 ABI 与 GCC 8/9GLIBCXX\_3.4.26+)不兼容。
- **第三方库选型**:在引入预编译的第三方库(如 TensorRT, Arrow必须下载 **CentOS 7 / Ubuntu 18.04** 兼容版本,严禁使用依赖 GCC 9+ 的新版库,否则必报 `version 'GLIBCXX_3.4.26' not found`
- **探测依据**
```bash
strings /usr/lib64/libstdc++.so | grep "GLIBCXX" | tail -n 1
GLIBCXX_3.4.24
ls -l /usr/lib64/libstdc++.so
… -> libstdc++.so.0.24
```
**2. 系统基础 C 运行库 (System Glibc)**
- **关键性****P0**
- **信息解析**
- **版本****glibc 2.28**。
- **评价**:这是 Kylin V10 SP1 的出厂标配。相比 CentOS 7 的 glibc 2.17,它提供了更好的 `memcpy` 性能和更现代的 syscall 封装,足以支撑绝大多数现代雷达信号处理中间件。
- **探测依据**
```bash
ldd --version
ldd (GNU libc) 2.28
```
**3. 安全与压缩基础设施 (Security & Compression Infra)**
- **关键性****P1**
- **信息解析**
- **OpenSSL**:版本 **1.1.1f** (LTS)。支持 TLS 1.3。这是构建安全数据链路(如 HTTPS, Secure gRPC的基石且版本未过时无需手动升级。
- **Zlib**:版本 **1.2.11**。标准且稳定,用于 HDF5 或 Log 压缩无压力。
- **探测依据**
```bash
openssl version
OpenSSL 1.1.1f 31 Mar 2020
```
**4. 全局库冲突检测 (Global Conflict Detection)**
- **关键性****P2**
- **信息解析**
- **状态****Clean (无污染)**。
- **解读**:在 `/usr/local` 下未发现“私藏”的 `libstdc++.so` 或 `libc.so`。这意味着系统加载器Loader不会因为搜索路径顺序问题加载到错误的运行时库极大地降低了调试难度。
- **探测依据**
```bash
find /usr/local -name "libstdc++.so*" …
(Empty Result)
```

View File

@@ -0,0 +1,51 @@
---
tags:
date created: 星期三, 十一月 19日 2025, 8:01:59 晚上
date modified: 星期三, 十一月 19日 2025, 8:10:41 晚上
---
# 1.5.2 Host 端信号处理与数学库 (Host Signal Processing & Math Libs)
**1. 快速傅里叶变换库 (FFTW3)**
- **关键性****P0**
- **信息解析**
- **版本****3.5.8**。这是 FFTW3 系列非常稳定的版本。
- **精度支持**
- `libfftw3f.so` (单精度 float):用于处理雷达原始 IQ 数据(通常为 float 或 int16
- `libfftw3.so` (双精度 double):用于高精度后处理算法。
- `libfftw3l.so` (长双精度 long double):用于极端精度需求(较少用)。
- **并行能力**:提供了 `_omp` (OpenMP) 和 `_threads` (Pthreads) 版本。建议在代码中优先链接 `libfftw3f_omp` 以利用多核优势。
- **探测依据**
```bash
ls -l /usr/lib64/libfftw3f.so
… libfftw3f.so.5.8
```
**2. 线性代数加速库 (OpenBLAS)**
- **关键性****P0**
- **信息解析**
- **版本****0.3.10**。
- **架构优化**OpenBLAS 0.3.x 系列对 ARMv8 (Cortex-A57/A72 等微架构) 有良好的支持,能自动检测并使用 NEON 指令集。这对于 CPU 端波束合成(矩阵乘法)至关重要。
- **头文件**`/usr/include/openblas/cblas.h` 已就绪,可直接使用标准 CBLAS 接口。
- **探测依据**
```bash
ls -l /usr/lib64/libopenblas.so
… libopenblas-r0.3.10.so
```
**3. C++ 矩阵模板库 (Eigen3)**
- **关键性****P1**
- **信息解析**
- **状态****Installed**。
- **特性**Eigen 是纯头文件库Header-only无需编译链接。它能自动检测并调用后端的 BLAS 库(如 OpenBLAS进行加速是现代 C++ 算法开发的首选。
- **探测依据**
```bash
ls -d /usr/include/eigen3
/usr/include/eigen3
```

View File

@@ -0,0 +1,56 @@
---
tags: []
date created: 星期三, 十一月 19日 2025, 8:16:48 晚上
date modified: 星期三, 十一月 19日 2025, 8:17:14 晚上
---
# 1.5.3 通信、存储与基础设施中间件 (Comm, Storage & Infra Middleware)
**审计综述**
Host 端数据基础设施已经补齐。我们确认 Protobuf 编译器已安装可支持控制协议的开发ZeroMQ 和 HDF5 库均已正确链接到系统库,数据传输和落盘能力已具备。
**1. 通信与协议中间件 (Comm & Protocols)**
- **关键性****P0**
- **信息解析**
- **Protobuf 编译器**`protoc` (v3.14.0) 已就绪。这使得开发者可以编译最新的 `.proto` 文件,用于控制指令或数据结构的版本化管理。
- **ZeroMQ (ZMQ)**:库文件 `libzmq.so.2.4` 存在。这是构建雷达后端实时数据发布/订阅Pub/Sub消息总线的核心传输层。
- **评估**ZeroMQ (v5.x) 和 Protobuf (v3.x) 均为现代版本Host 端具备高性能数据通信能力。
- **探测依据**
```bash
protoc --version
libprotoc 3.14.0
ls -l /usr/lib64/libzmq.so*
lrwxrwxrwx … /usr/lib64/libzmq.so -> libzmq.so.2.4
```
**2. 数据存储中间件 (Storage Middleware)**
- **关键性****P0**
- **信息解析**
- **HDF5 编译器**`h5cc` 已就绪。`h5cc` 是 HDF5 库的专用编译器 Wrapper它的存在证明 HDF5 的头文件和开发库已正确安装。
- **用途**HDF5 是存储雷达高维原始回波数据IQ Data的首选标准格式。
- **探测依据**
```bash
which h5cc
/usr/bin/h5cc
ls -l /usr/include/hdf5.h
-rw-r--r-- 1 root root 2561 … /usr/include/hdf5.h
```
**3. 日志与配置设施 (Logging & Config Infra)**
- **关键性****P1**
- **信息解析**
- **日志 (Glog)**`libglog.so.0.0` 存在。Glog 提供了高性能的线程安全日志、VLOG 分级和断言机制,有助于雷达后端代码的稳定运行和故障排除。
- **配置 (YAML)**`libyaml-cpp.so.6.3` 存在。YAML 是比 JSON 更适合人工维护的配置文件格式,常用于存储复杂的雷达波位表或系统参数。
- **探测依据**
```bash
ls -l /usr/lib64/libglog.so*
… /usr/lib64/libglog.so.0.0
ls -l /usr/lib64/libyaml-cpp.so*
… /usr/lib64/libyaml-cpp.so.6.3
```