Conversation

This Tweet was deleted by the Tweet author. Learn more
This Tweet was deleted by the Tweet author. Learn more
This Tweet was deleted by the Tweet author. Learn more
The vast majority of the Linux kernel has no need for memory unsafe code. Rust still offers full low-level control and in fact exposes more low-level features of the hardware than C, where you usually need to use tons of non-portable compiler intrinsics and more inline assembly.
2
You don't need to choose between them, and privilege separation is much weaker when the attack surface exposed between the components is memory unsafe. It's not hard to choose to write code in a memory safe language, and productivity is generally higher anyway. It's easier.
1
For existing code, it's definitely easier to implemented a sandbox than to rewrite it. There are plenty of new drivers and filesystems being written though. We're very likely to move on from filesystems like ext4 and existing drivers anyway, as we've done with most past ones.
1
iOS 12 moved most of the network stack to userspace *largely due to performance reasons*. Their network device drivers are still in the kernel (not ideal) but TCP/IP is implemented in userspace, which moves most of the complexity / attack surface outside of the kernel.
1
2
Show replies