In a different article, he said he had issues with the ext4 maintainer who was acting high and mighty about C despite being responsible for a number of huge CVEs from code that he wrote.
That being said, I don’t really see the benefit of rewriting modules in Rust.
Technically, it’s still not a 1:1 replacement because Rust will many times not generate the exact same machine code as C, which does result in a small loss of speed (and in some small cases, vice versa).
It’s acceptable for anything new, but unless there’s a notoriously painful part of the kernel, there’s no pont in redoing existing parts and even core userspace binaries.
C quite literally makes you manipulate memory like a caveman holding a machine gun, but that’s important because it’s exactly what the machine is doing, which is required when you need to maximize efficiency. In Rust, you’d have to abstract some of that to the compiler to handle your logic which doesn’t match what a machine is doing. There is no such thing as “borrowing” and “ownership” in machine code.
Rust: Everything from the bottom of this cliff to the acacia tree there is ours. Make sure you ask permission before you take something, take nothing you are not permitted to take. We don’t go beyond that tree; and if you even think about the elephant graveyard beyond it; I’ll kill you myself.
C: Everything the sun touches is yours. I caution you to not venture into the shadows; but I will not stop you, for you are a king, and nothing a king can do is unnecessary if it is for his people.
In a different article, he said he had issues with the ext4 maintainer who was acting high and mighty about C despite being responsible for a number of huge CVEs from code that he wrote.
That being said, I don’t really see the benefit of rewriting modules in Rust.
Technically, it’s still not a 1:1 replacement because Rust will many times not generate the exact same machine code as C, which does result in a small loss of speed (and in some small cases, vice versa).
It’s acceptable for anything new, but unless there’s a notoriously painful part of the kernel, there’s no pont in redoing existing parts and even core userspace binaries.
C quite literally makes you manipulate memory like a caveman holding a machine gun, but that’s important because it’s exactly what the machine is doing, which is required when you need to maximize efficiency. In Rust, you’d have to abstract some of that to the compiler to handle your logic which doesn’t match what a machine is doing. There is no such thing as “borrowing” and “ownership” in machine code.
(As if spoken by the King to Simba:)
Rust: Everything from the bottom of this cliff to the acacia tree there is ours. Make sure you ask permission before you take something, take nothing you are not permitted to take. We don’t go beyond that tree; and if you even think about the elephant graveyard beyond it; I’ll kill you myself.
C: Everything the sun touches is yours. I caution you to not venture into the shadows; but I will not stop you, for you are a king, and nothing a king can do is unnecessary if it is for his people.