软件架构

XWOS的软件架构以及源码结构

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文档生成配置