ax-libc 技术文档
路径:
os/arceos/ulib/axlibc类型:库 crate 分层:ArceOS 层 / ArceOS 用户库层 版本:0.5.0文档依据:当前仓库源码、Cargo.toml与 未检测到 crate 层 README
ax-libc 的核心定位是:ArceOS user program library for C apps
1. 架构设计分析
- 目录角色:ArceOS 用户库层
- crate 形态:库 crate
- 工作区位置:子工作区
os/arceos - feature 视角:主要通过
alloc、defplat、epoll、fd、fp-simd、fs、irq、multitask、myplat、net等(另有 4 个 feature) 控制编译期能力装配。 - 关键数据结构:可直接观察到的关键数据结构/对象包括
MemoryControlBlock、CTRL_BLK_SIZE。
1.1 内部模块划分
utils:通用工具函数和辅助类型fd_ops:内部子模块(按 feature: fd 条件启用)fs:文件系统、挂载或路径解析逻辑(按 feature: fs 条件启用)io_mpx:内部子模块(按 feature: select, epoll 条件启用)malloc:Provides the corresponding malloc(size_t) and free(size_t) when using the C user program. The normal malloc(size_t) and free(size_t) are provided by the library malloc.h, and sys_…(按 feature: alloc 条件启用)net:网络栈、socket 或协议适配(按 feature: net 条件启用)pipe:内部子模块(按 feature: pipe 条件启用)pthread:内部子模块(按 feature: multitask 条件启用)
1.2 核心算法/机制
- 内存分配器初始化、扩容或对象分配路径
2. 核心功能说明
- 功能定位:ArceOS user program library for C apps
- 对外接口:从源码可见的主要公开入口包括
e、MemoryControlBlock。 - 典型使用场景:主要作为仓库中的专用支撑 crate 被上层组件调用。
- 关键调用链示例:该 crate 没有单一固定的初始化链,通常由上层调用者按 feature/trait 组合接入。
3. 依赖关系图谱
3.1 直接与间接依赖
ax-posix-apiax-errnoax-feataxio
3.2 间接本地依赖
ax-arm-pl011ax-arm-pl031axaddrspaceax-allocax-allocatoraxbacktraceaxconfigax-config-genax-config-macrosax-cpuax-displayax-dma- 另外还有
62个同类项未在此展开