Conversation

No, that's not what I've been saying. I think it would be a serious regression to break compatibility with safe implementations by making it correct to be incompatible with them. You want to massively roll back safety and security, especially if you want to remove it by default.
2
1
Systems code benefits from memory and type safety even more than most other code because it's often in a position of trust and privilege. Using a language where unsafety can be contained and quickly wrapped into safe APIs is certainly useful advice for newly written systems code.
1
6
The expectations of software robustness and security have increased a lot, and it's simply not realistic to achieve it while using unsafe tools making it much more difficult to write safe code. Writing something complex like an safe ext4 implementation is C is not very realistic.
1
5
i.e. writing the entire thing with zero memory corruption bugs for an attacker to exploit either via an attacker controlled filesystem or an application. Drivers similarly have to be written treating the hardware and code using them as adversarial. Choice of tools is important.
1
2
This Tweet was deleted by the Tweet author. Learn more
Right. If the storage device* or the fs on it is untrusted, you can't have data whose integrity the security of your system depends on stored on it. It's just being used to import (necessarily untrusted) files or something. * device integrity may not matter with FDE+good driver.
1
Encryption needs to be authenticated encryption to avoid trust in storage though, and current implementations don't do that. Verified boot can avoid trust in storage for the base OS at least (since it avoids trusting the data there, in case an attacker had control in the past).