Maybe we should revisit microkernels

(notes.hella.cheap)

6 points | by morkin 4 hours ago

2 comments

  • vsgherzi 3 hours ago
    Errors in the code potentially mean killing the liveness of the system or worse corrupting the system in a poor state. Think the networking stack getting corrupted because of bad business logic.

    Also very hard to debug

    • vsgherzi 1 hour ago
      Edit omg… I was thinking of unikernels…
  • theamk 3 hours ago
    > The overhead was too high because computers in the 80s didn't have a way for a userspace process to directly access a particular hardware device.

    Eh, no, author mixed things up. To access a hardware device, you need ioperm, which is at least 20 years old. (Well, not today, but it was sufficient back then...). IOMMU is completely optional.

    The microkernel overhead was too high because any operation (even the one that does not need access to hardware, like reading file from file cache) required a context switch. This does not change with IOMMU. And while having multiple cores helps, you are trading context switch to intra-core cache invalidation and extra scheduling overhead (because no modern system can just have a single core spinning forever).