CantripOS 上手7:CantripOS 的 capDL 根服务器应用程序

CantripOS的capDL根服务器应用程序

CantripOS的另一个主要Rust组件是位于projects/capdl/cantrip-os-rootserver中的根服务器应用程序。
这取决于cantrip-os-commoncapdlmodel子模块。
虽然可以使用CMake设置在CAmkES项目的easy-settings.cmake文件中选择cantrip-os-rootserver或基于C的capdl-loader-app;
例如,projects/cantrip/easy-settings.cmake中有:

#set(CAPDL_LOADER_APP "capdl-loader-app" CACHE STRING "")
set(CAPDL_LOADER_APP "cantrip-os-rootserver" CACHE STRING "")

但不建议使用capdl-loader-app,因为它缺少仅在cantrip-os-rootserver中才有的重要功能。

cantrip-os-rootserver和capdl-loader-app之间最重要的区别是:

  • 支持在退出时回收根服务器的内存。
  • 支持CantripOS CAmkES特性(例如MemoryManager、RTReply caps)。
  • 减少内存消耗。

否则,cantrip-os-rootserver应该提供相同的功能,
尽管某些功能未经测试(例如CONFIG_CAPDL_LOADER_STATIC_ALLOC)和/或未经充分测试(例如CONFIG_CAPDL_LOADER_CC_REGISTERS)。

请注意,许多cmake根服务器配置参数没有传递到Rust代码中。您可能需要在cantrip-os-rootserver和/或cantrip-os-model(cantrip-os-common)的Cargo.toml中调整功能。

默认情况下,cantrip-os-rootserver在启动时会打印有关capDL规范的信息。如果您想启用详细日志记录,请在Cargo.toml中启用LOG_DEBUG或LOG_TRACE。

下一章: 依赖CantripOS的Rust crates

感谢分享