软件架构
XWOS的软件架构以及源码结构
Categories:
少于1分钟
XWOS在设计初期就充分考虑了代码的复用性、移植性以及与第三方软件的兼容性。
代码被架构成多层结构:构建系统、BSP、操作系统内核、中间件和应用。
XWOS架构图
Photo: xwos.tech / CC-BY-SA-4.0
构建系统
xwbs: 用户集成第三方软件时,只需在xwmo.mk中设置源码列表、头文件路径、编译选项。
BSP
xwcd: 编译器、CPU、SOC、外设驱动相关的代码xwcd/ds: 玄武设备栈。XWOS的驱动框架xwcd/perpheral: 基于玄武设备栈,实现的各种外设驱动,代码可被不同SOC共享xwcd/soc: 不同SOC的XWOS移植实现层的代码
xwbd: 不同电路板的工程配置、调试脚本、链接脚本、驱动与应用。
操作系统内核
XWOS内核架构图
Photo: xwos.tech / CC-BY-SA-4.0
xwos: 内核xwos/osal: 操作系统抽象层。它统一了单核与多核内核的API。xwos/ospl: 操作系统移植层。其中定义了内核提供给BSP的函数,以及需要BSP提供实现给内核的虚函数。xwos/lib: 基本C函数库。包括原子操作库、位操作库、数据结构等xwos/mm: 内存管理xwos/mp: 多核(mp)内核xwos/up: 单核(up)内核
中间件
xwmd: 中间件xwmd/isc: 系统间的通讯机制xwmd/isc/xwcq: 线程间的循环队列xwmd/isc/xwmq: 线程间的消息队列xwmd/isc/xwssc: SOC与SOC间的点对点通讯协议xwmd/libc: 标准C库的适配代码xwmd/xwrust: XWOS RUST框架
xwem: 第三方开源软件xwem/fs: 各种开源的文件系统xwem/serializing: 序列化与反序列化xwem/serializing/nanopb: protocol-buffer
xwem/vm: 解释型语言的虚拟机xwem/vm/lua: Lua语言
应用
xwam: 参考代码以及应用代码
文档
xwxr: API文档生成配置