• 5 Posts
  • 167 Comments
Joined 5 years ago
cake
Cake day: January 21st, 2020

help-circle


  • "In kernel development, debugging is very hard for several reasons:

    • Documentation is often hard to find, and BIOS implementations may be flawed (more often than you would think)
    • On boot, the kernel has full access to the memory and is allowed to write where it should not (its own code, for example)
    • Troubleshooting memory leaks is not easy. Tools such as valgrind cannot be used
    • gdb can be used with QEMU and VMWare, but the kernel may have a different behaviour when running on a different emulator or virtual machine. Also, those emulators may not support gdb (example VirtualBox)
    • Some features in the support for gdb in QEMU or VMWare are missing and gdb might even crash sometimes

    All those issues are reasons for using a memory-safe language, to avoid them as much as possible.

    Overall, the use of Rust in the kernel allowed for the implementation of a lot of safeguards. And I believe that it is, to this day, the best decision I have made for this project."