From C to Rust? The Real Story Behind GNU Coreutils

00:00 Intro 10:49 Rust: Myth and Reality – What It Really Means to Rewrite the Coreutils 10:54 1. There’s No Real Problem to Solve 12:04 2. POSIX Compatibility Is Sacred 12:44 3. Maintenance Cost Increases, Not Decreases 13:29 4. Rust Adds Abstraction Where Transparency Is Needed 14:24 5. Performance Isn’t the Point 15:09 Conclusion Let’s dive into the history of Coreutils, and end with a few honest reflections. References and Sources GNU Project and Coreutils *"The GNU Manifesto" (1985)* Author: Richard Stallman Link: https://www.gnu.org/gnu/manifesto.html Original motivation for creating GNU *GNU Coreutils Documentation* Maintainers: Jim Meyering, Pádraig Brady, Paul Eggert Link: https://www.gnu.org/software/coreutils/ Official documentation and project history *"Gnulib: The GNU Portability Library" (2007)* Author: Bruno Haible Details on POSIX portability POSIX Standard *IEEE Std 1003.1-2017 (POSIX.1-2017)* Link: https://pubs.opengroup.org/onlinepubs... Standard that governs coreutils behavior *"The Single UNIX Specification"* The Open Group Cross-platform compatibility Security and CVE *National Vulnerability Database (NVD)* Link: https://nvd.nist.gov/ Search: "GNU coreutils CVE" Specific examples: CVE-2016-2781 (chroot) CVE-2017-18018 (sort) CVE-2019-1010024 (basename) Demonstrates that bugs exist but are rare and quickly corrected Memory Safety and Rust *"Rust: A Language for Safe Systems Programming" (2015)* Authors: Aaron Turon, Nicholas D. Matsakis Original motivations for Rust *"Is Rust Used Safely by Software Developers?" (2020)* Authors: Ana Nora Evans et al. Published in: ICSE 2020 Empirical analysis of Rust usage *"Fearless Concurrency: Memory Safety without Garbage Collection" (2015)* Authors: Aaron Turon et al. Rust is designed for concurrency, not simple programs Temporal Robustness and Maintainability *"Technical Debt: From Metaphor to Theory and Practice" (2012)* Authors: Carolyn Seaman, Yuepu Guo Maintenance costs over time *"The Long-Term Maintenance of Software Systems" (2016)* Author: Diomidis Spinellis Temporal robustness of legacy systems *"Software Aging" (1995)* Author: David Lorge Parnas Published in: ICSE 1995 Why some software ages well and others don't Benchmark and Performance *"Performance Analysis of Linux Utilities" (various)* uutils benchmark repository Link: https://github.com/uutils/coreutils/t... Direct comparisons GNU vs uutils *"Understanding I/O Performance Bottlenecks" (2019)* Authors: Various (Linux kernel documentation) Demonstrates that I/O is the bottleneck, not the language POSIX Compatibility *"POSIX Compliance Testing" (2018)* The Open Group Requirements for POSIX compliance *uutils POSIX compliance tracking* Link: https://github.com/uutils/coreutils/i... Documents existing differences --- *GNU and Coreutils:* https://www.gnu.org/gnu/manifesto.html https://www.gnu.org/software/coreutils/ *POSIX Standard:* https://pubs.opengroup.org/onlinepubs... *Security Database:* https://nvd.nist.gov/ *Rust Project:* https://github.com/uutils/coreutils *Benchmark Repository:* https://github.com/uutils/coreutils/t... *POSIX Compliance Tracking:* https://github.com/uutils/coreutils/i...