Comments by "Mikko Rantalainen" (@MikkoRantalainen) on "Brodie Robertson" channel.

  1. 27
  2. 5
  3. 5
  4. 4
  5. 3
  6. 3
  7. I like both C and Rust and even though I think that writing C code is "easier" than writing Rust (may be a skill issue on my part still) I have to honestly say that writing perfect C code is next to impossible. I think we can all agree that Linux kernel developers are close to most being most skilled C developers in the world. And look at the results: those top of the top developers writing C code that is publicly reviewed on LKML before being accepted in the kernel and we still end up with all kinds of CVEs. If these people are still not skilled enough to even avoid security bugs with C, maybe C is not a good solution in long run. Will the parts written in Rust ever have CVEs? Probably yes, but that will be much much much more rare event than with C. And such CVE would highly probably be about logic errors, not about memory corruption or about thread safety, unlike with CVEs dealing with code written in C. Yes, slowly switching to Rust in Linux kernel would require nearly all kernel developers to learn both C and Rust. I don't consider that too high minimum bar to join kernel developer community. The level of C understanding you currently need is pretty high already and Rust isn't that hard a language to learn if you really put some effort to learn it. That said, I totally understand that NIMBY effect works for software development, too. All the greybeards that have made an entire career with Linux and dealing only with C code will not be happy to hear that their system wouldn't be good enough and that they would need to learn to do something else. In the end, the important question will be "what's acceptable" when it comes to code quality and performance. If writing stuff with Rust is 10x harder, is it worth it if it can cut 90% of all the yearly security bugs? What about if it can cut only 20% of all the bugs?
    3
  8. 2
  9. 2
  10. 1
  11. 1
  12. 1
  13. 1
  14. 1
  15. 1
  16. 1
  17. 1
  18. 1
  19. 1