Rust in Production

Rust4Linux with Danilo Krummrich


Listen Later

Bringing Rust into the Linux kernel is one of the most ambitious modernization efforts in open source history. The Linux kernel, with its decades of C code and deeply ingrained development practices, is now opening its doors to a memory-safe language. It's the first time in over 30 years that a new programming language has been officially adopted for kernel development. But the journey is far from straightforward.
In this episode, we speak with Danilo Krummrich, Linux kernel maintainer and Rust for Linux core team member, about the groundbreaking work of integrating Rust into the Linux kernel. Among other things, we talk about the Nova GPU driver, a Rust-based successor to Nouveau for NVIDIA graphics cards, and discuss the technical challenges and cultural shifts required for large-scale Rust adoption in the kernel as well as the future of the Rust4Linux project.
About Rust for Linux
Rust for Linux is a project aimed at bringing the Rust programming language into the Linux kernel. Started to improve memory safety and reduce vulnerabilities in kernel code, the project has been gradually building the infrastructure, abstractions, and tooling necessary for Rust to coexist with the kernel's existing C codebase.
About Danilo Krummrich
Danilo Krummrich is a software engineer at Red Hat and a core contributor to the Rust for Linux project. His fundamental contribution to Rust for Linux is the driver-core infrastructure, the foundational framework that makes it possible to write drivers in Rust at all. This includes both C and Rust code that provides the core abstractions for device drivers in the kernel. Danilo is a maintainer for multiple critical kernel subsystems, including Driver Core, DRM (GPUVM, Rust, GPU Scheduler), GPU drivers for NVIDIA GPUs (Nova, Nouveau), Firmware Loader API, as well as Rust bindings for PCI, DMA, and ALLOC. He is the primary developer of the Nova GPU driver, a fully Rust-based driver for modern NVIDIA GPUs.
Links From The Episode
  • AOSP - The Android Open Source Project
  • Kernel Mailing Lists - Where the Linux development happens
  • Miguel Ojeda - Rust4Linux maintainer
  • Wedson Almeida Filho - Retired Rust4Linux maintainer
  • noveau driver - The old driver for NVIDIA GPUs
  • Vulkan - A low level graphics API
  • Mesa - Vulkan and OpenGL implementation for Linux
  • vtable - Indirect function call, a source of headaches in nouveau
  • DRM - Direct Rendering Manager, Linux subsystem for all things graphics
  • Monolithic Kernel - Linux' kernel architecture
  • The Typestate Pattern in Rust - A very nice way to model state machines in Rust
  • pinned-init - The userspace crate for pin-init
  • rustfmt - Free up space in your brain by not thinking about formatting
  • kunit - Unit testing framework for the kernel
  • Rust core crate - The only part of the Rust Standard Library used in the Linux kernel
  • Alexandre Courbot - NVIDIA employed co-maintainer of nova-core
  • Greg Kroah-Hartman - Linux Foundation fellow and major Linux contributor
  • Dave Airlie - Maintainer of the DRM tree
  • vim - not even neovim
  • mutt - classic terminal e-mail client
  • aerc - a pretty good terminal e-mail client
  • Rust4Linux Zulip - The best entry point for the Rust4Linux community

Official Links
  • Rust for Linux GitHub
  • Danilo Krummrich on GitHub
  • Danilo Krummrich on LinkedIn
...more
View all episodesView all episodes
Download on the App Store

Rust in ProductionBy Matthias Endler

  • 5
  • 5
  • 5
  • 5
  • 5

5

25 ratings


More shows like Rust in Production

View all
Software Engineering Radio by se-radio@computer.org

Software Engineering Radio

271 Listeners

The Changelog: Software Development, Open Source by Changelog Media

The Changelog: Software Development, Open Source

289 Listeners

The a16z Show by Andreessen Horowitz

The a16z Show

1,084 Listeners

Software Engineering Daily by Software Engineering Daily

Software Engineering Daily

626 Listeners

LINUX Unplugged by Jupiter Broadcasting

LINUX Unplugged

268 Listeners

Talk Python To Me by Michael Kennedy

Talk Python To Me

585 Listeners

Soft Skills Engineering by Jamison Dance and Dave Smith

Soft Skills Engineering

288 Listeners

Data Engineering Podcast by Tobias Macey

Data Engineering Podcast

146 Listeners

Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

Syntax - Tasty Web Development Treats

987 Listeners

The Stack Overflow Podcast by The Stack Overflow Podcast

The Stack Overflow Podcast

64 Listeners

Dwarkesh Podcast by Dwarkesh Patel

Dwarkesh Podcast

502 Listeners

Oxide and Friends by Oxide Computer Company

Oxide and Friends

62 Listeners

No Priors: Artificial Intelligence | Technology | Startups by Conviction

No Priors: Artificial Intelligence | Technology | Startups

133 Listeners

Self-Directed Research by OneVariable GmbH

Self-Directed Research

15 Listeners

The Pragmatic Engineer by Gergely Orosz

The Pragmatic Engineer

64 Listeners