Skip to content

Latest commit

 

History

History
576 lines (431 loc) · 13.3 KB

File metadata and controls

576 lines (431 loc) · 13.3 KB

Resources & References

Primary Sources

Kernel Documentation

  1. Official Rust Documentation

    • Kernel Rust Docs
    • Quick start guide
    • Coding guidelines
    • Architecture documentation
  2. Rust-for-Linux GitHub

    • Main Repository
    • Source code and development branches
    • Issue tracker
    • Pull requests and discussions
  3. Kernel Mailing Lists

  4. LKML Archives

Official Kernel Resources

  1. Kernel Documentation

  2. Rust-for-Linux Website

Conference Talks

Linux Plumbers Conference

2021 - Initial Presentation

  • "Rust in the Linux Kernel" - Miguel Ojeda
  • First major presentation of the project
  • Community reception and feedback
  • Video

2022 - Progress Update

  • "Rust for Linux: Getting Merged" - Miguel Ojeda
  • Pre-merge status update
  • Technical challenges discussion
  • Community Q&A

2023 - Post-Merge Discussion

  • "Rust for Linux: One Year In"
  • Lessons learned
  • Future directions
  • Driver development experiences

2024 - Growing Ecosystem

  • "Rust Subsystems and Abstractions"
  • New driver implementations
  • Tooling improvements
  • Performance analysis

RustConf

2021 - Kernel Context

  • "Rust in the Linux Kernel: It's Happening!"
  • Why Rust for kernel development
  • Technical challenges
  • Community building

2022 - Deep Dive

  • "Writing Linux Drivers in Rust"
  • Practical driver development
  • Memory safety in kernel context
  • Performance considerations

2023 - Real-World Experience

  • "Production Rust in the Kernel"
  • Case studies
  • Lessons learned
  • Best practices

Other Conferences

FOSDEM

  • Regular Rust and kernel talks
  • Community presentations
  • Developer experience sharing

Kernel Recipes

  • Technical deep dives
  • Implementation details
  • Debugging techniques

Linux Security Summit

  • Security benefits of Rust
  • Vulnerability reduction
  • Memory safety analysis

Blogs and Articles

Technical Blogs

  1. Miguel Ojeda's Blog

    • Project updates
    • Technical insights
    • Development progress
  2. Rust-for-Linux Blog Posts

  3. LWN.net Articles

Corporate Blogs

  1. Google Security Blog

    • Android and Rust
    • Security benefits
    • Real-world deployments
  2. Microsoft Security

    • Memory safety research
    • Rust adoption
    • Industry perspective
  3. Red Hat Blog

    • Enterprise perspective
    • Deployment considerations
    • Training resources

Personal Developer Blogs

  • Gary Guo - Compiler insights
  • Wedson Almeida Filho - Abstractions design
  • Andreas Hindborg - Driver development
  • Benno Lossin - Safe wrappers

Academic Papers

Memory Safety

  1. "Memory Safety for Systems Programming"

    • Formal analysis of Rust's safety guarantees
    • Comparison with C/C++
    • Kernel implications
  2. "Towards a Verified Rust Compiler"

    • Formal verification efforts
    • Safety guarantees
    • Soundness proofs
  3. "Understanding Memory Safety in Rust"

    • Type system analysis
    • Borrow checker semantics
    • Unsafe code patterns

Kernel Security

  1. "Linux Kernel Vulnerabilities: State of the Art"

    • Historical vulnerability analysis
    • Memory safety bug statistics
    • Mitigation strategies
  2. "Safe Systems Programming in Rust"

    • Rust for operating systems
    • Safety vs. performance
    • Case studies
  3. "Redox OS: A Rust-based Microkernel"

    • Alternative OS design
    • Lessons for Linux
    • Architecture decisions

Performance Analysis

  1. "Performance of Safe Systems Programming"

    • Rust vs. C benchmarks
    • Overhead analysis
    • Optimization opportunities
  2. "Zero-Cost Abstractions in Practice"

    • Compiler optimization
    • Code generation quality
    • Real-world measurements

Video Resources

Tutorial Series

  1. "Writing Linux Drivers in Rust"

    • YouTube series
    • Step-by-step guides
    • Practical examples
  2. "Rust-for-Linux Workshop"

    • Hands-on tutorials
    • Development environment setup
    • Common patterns
  3. "Kernel Development with Rust"

    • Comprehensive course
    • Theory and practice
    • Real driver examples

Conference Recordings

  • Linux Foundation YouTube Channel

    • Conference talks
    • Technical sessions
    • Q&A panels
  • Rust YouTube Channel

    • RustConf talks
    • Community presentations
    • Technical deep dives

Books and Documentation

Rust Language

  1. "The Rust Programming Language"

  2. "Rust for Rustaceans"

    • Advanced Rust techniques
    • Unsafe code patterns
    • Performance optimization
  3. "Programming Rust"

    • Comprehensive guide
    • Systems programming focus
    • Practical examples

Kernel Development

  1. "Linux Device Drivers"

    • Classic driver development guide
    • C-based, but concepts apply
    • Hardware interaction
  2. "Linux Kernel Development"

    • Kernel internals
    • Subsystems overview
    • Development practices
  3. "Understanding the Linux Kernel"

    • Architecture deep dive
    • Memory management
    • Process scheduling

Community Resources

Mailing Lists

  1. rust-for-linux@vger.kernel.org

    • Main development list
    • Patch submissions
    • Technical discussions
  2. linux-kernel@vger.kernel.org

    • General kernel list
    • Rust-related threads
    • Community feedback

Chat Platforms

  1. Zulip

  2. IRC

    • #rust-for-linux on OFTC
    • Live developer chat
    • Quick questions
    • Community presence

Social Media

  1. Twitter/X

    • @RustForLinux
    • Developer accounts
    • News and updates
  2. Mastodon

    • Rust and Linux communities
    • Technical discussions
    • Blog post sharing

Development Tools

Essential Tools

  1. rust-analyzer

  2. bindgen

  3. Clippy

Debugging Tools

  1. GDB with Rust Support

    • Debugging kernel modules
    • Stack traces
    • Variable inspection
  2. KGDB

    • Kernel debugging
    • Rust support growing
    • Remote debugging
  3. BPF Tools

    • Dynamic tracing
    • Performance analysis
    • Rust module profiling

Example Code and Projects

Kernel Samples

  1. samples/rust/

    • In-tree examples
    • Simple modules
    • Basic patterns
  2. Rust-for-Linux Examples

Out-of-Tree Projects

  1. Rust Driver Examples

    • Community-developed drivers
    • Real-world examples
    • Learning resources
  2. Experimental Projects

    • Research implementations
    • Proof-of-concept code
    • Advanced techniques

Research Institutions

Active Research Groups

  1. Google

    • Android security
    • Kernel development
    • Funding and support
  2. ARM

    • Driver development
    • Platform support
    • Hardware integration
  3. Universities

    • MIT: Formal verification
    • Stanford: Memory safety
    • Cambridge: Security analysis

Standards and Specifications

Language Specifications

  1. Rust Reference

  2. Unsafe Code Guidelines

Kernel Standards

  1. Linux Kernel Coding Style

Chronological Links (Major Events)

2020

  • April 2020: Initial LKML discussions about Rust
  • July 2020: Miguel Ojeda begins serious infrastructure work
  • October 2020: First RFC patches posted

2021

  • April 2021: RFC v1 with basic infrastructure
  • July 2021: Linux Plumbers Conference presentation
  • October 2021: RFC v2 with improved abstractions
  • December 2021: RFC v3 addressing feedback

2022

  • April 2022: RFC v4 nearing merge-ready state
  • September 2022: Final merge preparations
  • October 2022: Rust support merged for 6.1
  • December 2022: Linux 6.1 released with Rust

2023

  • February 2023: Linux 6.2 with improvements
  • April 2023: Linux 6.3 continued development
  • June 2023: Linux 6.4 expanding support
  • August 2023: Linux 6.5 with more abstractions
  • October 2023: Linux 6.6 new driver examples
  • December 2023: Linux 6.7 refinements

2024

  • January 2024: Linux 6.7 released
  • March 2024: Linux 6.8 with expanded subsystem support
  • May 2024: Linux 6.9 continued growth
  • July 2024: Linux 6.10 more real-world drivers
  • September 2024: Linux 6.11 DRM subsystem support
  • November 2024: Linux 6.12 enhanced abstractions

2025-2026

  • Ongoing: Rapid maturation of Rust ecosystem
  • Production use: Multiple drivers in production
  • Community growth: Expanding contributor base
  • Tool improvements: Better IDE support and debugging
  • Enterprise interest: Growing industry adoption

Learning Paths

For Kernel Developers Learning Rust

  1. Start with "The Rust Programming Language"
  2. Study rust-for-linux.com quick start
  3. Read samples/rust/ code
  4. Build simple driver
  5. Join community on Zulip/IRC
  6. Submit first patch

For Rust Developers Learning Kernel

  1. Study Linux Device Drivers book
  2. Learn kernel build system
  3. Understand kernel memory model
  4. Read existing Rust drivers
  5. Build kernel with Rust enabled
  6. Experiment with simple modules

For Researchers

  1. Read academic papers on memory safety
  2. Study Rust-for-Linux design decisions
  3. Analyze vulnerability statistics
  4. Measure performance characteristics
  5. Publish findings
  6. Contribute insights back

Staying Up to Date

Regular Reading

  • LWN.net weekly: Kernel news
  • LKML archives: Latest discussions
  • Rust blog: Language updates
  • Rust-for-Linux blog: Project news

Monitoring Development

  • GitHub watch: Rust-for-Linux repo
  • Mailing list subscription: rust-for-linux@vger.kernel.org
  • Zulip notifications: Important discussions
  • Twitter/Mastodon: Developer accounts

Community Participation

  • Attend conferences: Linux Plumbers, RustConf
  • Join discussions: Mailing lists, Zulip
  • Contribute code: Start small, grow gradually
  • Help others: Answer questions, write docs

Contribution Opportunities

Documentation

  • Improve existing docs
  • Write tutorials
  • Create examples
  • Translate resources

Code

  • Fix bugs
  • Add features
  • Write drivers
  • Improve abstractions

Testing

  • Test on hardware
  • Report bugs
  • Verify patches
  • Performance benchmarking

Community

  • Answer questions
  • Review patches
  • Mentor newcomers
  • Organize events

Conclusion

The Rust-for-Linux ecosystem has extensive resources:

  • Official documentation for getting started
  • Conference talks for deep insights
  • Academic papers for theoretical foundation
  • Community channels for support
  • Development tools for productivity

The key is to start with the basics and gradually build up knowledge through practice and community engagement.

Quick Reference Links

Resource URL
Official Docs https://docs.kernel.org/rust/
GitHub Repo https://github.com/Rust-for-Linux/linux
Mailing List https://lore.kernel.org/rust-for-linux/
Zulip Chat https://rust-for-linux.zulipchat.com/
Project Site https://rust-for-linux.com/
Rust Book https://doc.rust-lang.org/book/
LWN Coverage https://lwn.net/Kernel/Index/#Rust

Last Updated: January 2026

This document is a living resource. Contributions and updates are welcome!