Comment by snazz

5 years ago

C#, Go, and Java all go in the same category (roughly)—they wouldn't work for kernel code. Rust will be a valid replacement for C++ kernel code in the near future, I'm sure.

Where do you get that? Those have all been used in kernels, they work.

Also on another front Apple seems to have already enabled device drivers in user space: https://developer.apple.com/system-extensions/

  • Yes, you can use them to play around and experiment with OS-level stuff and even have some fun with it.

    But you definitely cannot build a performant and robust kernel from scrtach with these languages.

    • > you definitely cannot build a performant and robust kernel from scrtach with these languages.

      I think this is irrelevant (and less importantly, false). Its's fine to use eg se4l as a foundation, or as a incremental step even just have a safety focused driver runtime inside the kernel proper.

Writing the majority of a kernel in those languages is certainly possible.

  • Possible, perhaps, but feasible? Microsoft certainly had a go at it with the likes of Midori and Singularity, but these were met with the same fate that will likely befall any managed code kernel. While it's an honorable pursuit with certain merit, to produce a fully featured OS in this way -- without serious concessions -- is just not feasible.

    • Those projects died due to management politics from WinDev, nothing to do with capabilities.

      So much that many of the System C# features are now in .NET 5 and other ones will eventually land on .NET 6.