• 1 Post
  • 69 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle




  • I finally watched the talk today and that wasn’t what I thought he meant. What I thought he was getting at was that the rust parts of the kernel interact with lots of other modules written by people who don’t know rust. When those C modules change their semantics in ways that break the rust code, they can’t go fix it because they don’t know rust. In fact, whenever they make a change, they don’t even know if they broke some rust module, because they don’t understand the rust code well enough. And this is something that everyone is going to have to live with for the foreseeable future, because you can’t force all those other kernel hackers to learn rust.






  • I haven’t seen that paper before. The ones I remember were blogposts or web pages. In fact, this may be what I was remembering: https://www.gnu.org/software/hurd/faq.html Particularly the part about what happened with the port to different microkernels.

    IIRC NeXT and OSX use Mach, but they don’t use it as intended. I think they’re mostly a BSD kernel with Mach functioning as an interface to userspace.

    Hurd actually used Mach as a microkernel, and moved most functionality to userspace daemons. This meant that Mach’s performance issues, at least the ones related to IPC, affected the Hurd a lot more than OSX or NeXT.

    And yeah, I think developer interest was the biggest thing that held it back.












  • Haskell is simple in some ways and complicated in others.

    It doesn’t have optional or named parameters. There are no objects or methods. No constructors. It doesn’t distinguish syntactically between procedures and functions. There are no for loops or while loops. && and || aren’t treated specially. It doesn’t even have functions with more than one argument. Every function takes one argument and returns one result.