- Report this article
Joshua Karisa
Joshua Karisa
CyberSecurity Validation Engineer
Published Nov 2, 2023
+ Follow
The debate around incorporating Rust code into the Linux kernel has been heating up recently. As a system administrator who cares deeply about security, I have mixed feelings on the matter.
On one hand, Rust offers some clear security benefits over C, the main language currently used in the Linux kernel. Rust is designed to be memory-safe, preventing entire classes of bugs like buffer overflows that have led to vulnerabilities in C code. The ownership and borrowing system in Rust also makes it harder for developers to introduce other types of errors like use-after-free. For a critical system component like the kernel, building more reliability and security into the codebase is extremely attractive.
However, rewriting or porting a significant portion of the kernel from C to Rust would be an enormous undertaking. The Linux kernel codebase stretches over 20 million lines of code that has been developed and refined for decades. Introducing a new language like Rust in a piecemeal fashion may create more problems than it solves, at least in the short term. There is a risk of introducing new bugs any time major changes are made to complex, interconnected systems.
As a system administrator, stability and reliability are some of my top concerns. While I'm eager for improvements to security, I'm hesitant about changes that could temporarily destabilize systems that are currently running smoothly. Of course, software has to evolve and improve over time, but my preference would be for a cautious, incremental approach to adopting Rust rather than a rapid rewrite of core components.
Recommended by LinkedIn
I also have some concerns about the impact on the contributor community. C has been the primary development language for the kernel for a long time, and many of the top contributors are C experts. Rust has a learning curve that may discourage participation from some veteran developers. Maintaining a healthy, active contributor base is crucial for the long-term sustainability of an open-source project like Linux.
That said, integrating some Rust components carefully and strategically could be a good path forward. For instance, it may make sense to use Rust for newer subsystems and self-contained components rather than recoding central kernel functions. Allowing Rust and C to coexist for some time while the community gains more experience with Rust may be the safest approach.
As a system administrator, I see the clear benefits of Rust but also understand the risks of rapid change to this mission-critical software. My preference would be to take a balanced, incremental approach so we can enhance security without jeopardizing stability or community participation. I'm optimistic that Linux will continue to evolve and improve safely over time through the combined efforts of its maintainers and contributor community.
Like
Celebrate
Support
Love
Insightful
Funny
8
2 Comments
Tony Axtell
Systems and Network Administrator
6mo
- Report this comment
Great article. Rusting looks promising to me, but I also know the security of memory isn't even half the battle.
1Reaction 2Reactions
See more comments
To view or add a comment, sign in
More articles by this author
No more previous content
- Cloud Server Security: More Important Than Your Grandma's Secret Recipe Sep 19, 2023
- Beyond Coding: Why Being a Software Tester Can Launch Your Career in Tech Jun 4, 2023
- African Industrial Minerals: Powering the World's Technological Revolution! May 22, 2023
- From Fiction to Reality: How Wakanda's Vision is a Prophecy for Africa's Future in Tech May 17, 2023
- The Future of African Tech Workforce May 17, 2023
No more next content
Insights from the community
- Business Operations How can you transition to Linux from another operating system smoothly?
- Operating Systems How do you choose between static and dynamic linking for a C/C++ program on Linux?
- GNU/Linux What are the benefits and drawbacks of using snap, flatpak, or appimage for package management in Linux?
- DevOps How do you scale and deploy docker alpine or ubuntu containers across multiple servers or clouds?
- System Administration How can you manage system logs in Linux?
- Business Strategy How do you determine the best Linux distro for your specific needs?
- Business Intelligence What strategies can you employ to troubleshoot common Linux command line errors?
- Software Development How do you use the 'chown' command to change file ownership in Linux?
- GNU/Linux What are the benefits and challenges of running docker on Linux versus other platforms?
- GNU/Linux How do you install and remove software packages in Linux using different package managers?
Others also viewed
- GNU Linux-libre and Standard Linux Kernels Adeolu Oluade 2mo
- Red Hat Enterprise Linux 9.0- What is new!! Chandrakant Prasad. 3w
- A simple guide to set up a Kubernetes Cluster(s) Environment on local machine Thathsara Raviraj 1y
- You don't need to struggle with Docker - A beginner's guide tbuilding a Node.js 'Hello World' Application with Docker Palaash Atri 3y
- Containers fail to start after RedHat upgrade Ron Jagannathan 5y
- Easily migrate CentOS 8 to CentOS Stream Linux TechLab 3y
- Use docker with RancherOS and RancherUi Aurélien Husson 7y
- Linux kernel modules for newbies Tunga M. 4y
- What Happenned to CentOS Linux? Kaan Sonal 3y
Explore topics
- Sales
- Marketing
- IT Services
- Business Administration
- HR Management
- Engineering
- Soft Skills
- See All