一个 no_std Rust环境
这类环境与一个常见的PC环境类似。意味着向你提供了一个系统接口E.G. POSIX,使你能和不同的系统进行交互,比如文件系统,网络,内存管理,进程,等等。标准库相应地依赖这些接口去实现它们的功能。sysroot可能限制你使用RAM/ROM,可能还有一些特别的硬件或者I/O。总之感觉像是在专用的PC环境上编程一样。
就像之前提到的,使用需要一些系统集成,这不仅仅是因为libstd使用了一个公共的方法访问操作系统,它也提供了一个运行时环境。这个运行时环境,负责设置堆栈溢出保护,处理命令行参数,并在一个程序的主函数被激活前启动一个主线程。在一个环境中,这个运行时环境也是不可用的。
* 只有在你使用了 crate 和设置了一个适合的分配器,比如alloc-cortex-m后有效。