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能否在实践中与C竞争?本文报告了一项有助于回答这些问题的物联网工业案例研究。分析了两支团队在数月内并行开发相同功能(一组使用C,另一组使用Rust)的过程,并对其方法、结果及迭代工作进行了比较分析。基于硬件的分析与测量表明,在内存占用或执行速度方面,没有充分理由在微控制器固件开发中优先选择C而非Rust。此外,Ariel OS被证明能在Rust中提供高效且可移植的系统运行时库,其占用空间小于传统上在此领域使用的先进裸机C栈。结论是,在此领域的固件开发中,Rust目前是合理的选择。