内核的基本数据类型
弧
为内核实现了一个定制的Arc(infra/src/tinyarc.rs)。与alloc::sync::Arc相比,差异不大,只是它仅有strong_count因而减小了体积,对嵌入式设备更友好。此外其内存布局对blueos_infra是已知的,因此我们的侵入式列表可以轻松与之协作。
侵入式列表
blueos_infra的ilist(infra/src/list/typed_ilist.rs)是类型化且不安全的。它类似于C风格的ilist,但我们建议开发者不要直接使用它,而是使用智能指针。我们在上述提到的Arc基础上实现了ArcList,并保证了安全性。