As Rust gains traction for developing safer systems software, a reality check for the microcontroller hardware segment becomes necessary. How ready is the Rust ecosystem for this segment? Can Rust compete with C in practice? This paper reports on an IoT industrial case study that contributes to answering these questions. Two teams concurrently developing the same functionality (one in C, one in Rust) are analyzed over a period of several months. A comparative analysis of their approaches, results, and iterative efforts is provided. The analysis and measurements on hardware indicate no strong reason to prefer C over Rust for microcontroller firmware on the basis of memory footprint or execution speed. Furthermore, Ariel OS is shown to provide an efficient and portable system runtime in Rust whose footprint is smaller than that of the state-of-the-art bare-metal C stack traditionally used in this context. It is concluded that Rust is a sound choice today for firmware development in this domain.
翻译:随着Rust在开发更安全的系统软件领域日益受到关注,对微控制器硬件领域的现实检验变得必要。Rust生态系统对该领域的准备程度如何?Rust能否在实践中与C语言竞争?本文报告了一项有助于回答这些问题的物联网工业案例研究。我们对两个并行开发相同功能(一组使用C语言,另一组使用Rust)的团队进行了为期数月的分析,并就其方法、成果及迭代工作进行了对比分析。基于硬件的分析与测量结果表明,在内存占用或执行速度方面,没有充分理由优先选择C语言而非Rust来开发微控制器固件。此外,Ariel OS被证明能够提供高效且可移植的Rust系统运行时,其内存占用小于该领域传统使用的先进裸机C语言栈。结论是,在当前阶段,Rust是该领域固件开发的合理选择。