Rust Porting Begins For Intel's "e1000" Linux Network Driver
Adding to the growing examples and early drivers being worked on for the Linux kernel to showcase the possibilities of using the Rust programming language within the kernel, an early port of Intel's e1000 wired networking driver has started.
The Intel e1000 driver is used by many of the Intel Gigabit wired Ethernet adapters. Thus porting it to Rust would expose it to a lot of systems and in turn see a lot of use. Though at the moment the driver is still incomplete and it doesn't appear Intel is onboard with it yet, so it's not necessarily going to replace the official e1000 C driver.
Developer Fujita Tomonori announced the work today on the Rust-written e1000 driver. At the moment this Rust driver is working within a QEMU virtual environment while further work is needed before it's expected to be running on actual Intel hardware. Given the early state of the Rust kernel code and many kernel abstractions not yet being wired up, this driver is also currently relying on a number of C bindings. At the very least this "rust-e1000" driver is helping to figure out proper Rust PCI / DMA / network abstractions for future Rust NIC (network) drivers.
In any event those wanting to learn more about the early Intel e1000 driver implementation within Rust can see this rust-for-linux thread. The early Rust code can be found on GitHub.
The Intel e1000 driver is used by many of the Intel Gigabit wired Ethernet adapters. Thus porting it to Rust would expose it to a lot of systems and in turn see a lot of use. Though at the moment the driver is still incomplete and it doesn't appear Intel is onboard with it yet, so it's not necessarily going to replace the official e1000 C driver.
Developer Fujita Tomonori announced the work today on the Rust-written e1000 driver. At the moment this Rust driver is working within a QEMU virtual environment while further work is needed before it's expected to be running on actual Intel hardware. Given the early state of the Rust kernel code and many kernel abstractions not yet being wired up, this driver is also currently relying on a number of C bindings. At the very least this "rust-e1000" driver is helping to figure out proper Rust PCI / DMA / network abstractions for future Rust NIC (network) drivers.
In any event those wanting to learn more about the early Intel e1000 driver implementation within Rust can see this rust-for-linux thread. The early Rust code can be found on GitHub.
117 Comments