CantripOS的另一个主要Rust组件是位于projects/capdl/cantrip-os-rootserver中的根服务器应用程序。
这取决于cantrip-os-common的capdl和model子模块。
虽然可以使用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。