1. 19

  2. 5

    While Jehanne (just like Plan 9) is not based on a microkernel design, the pervasive use of services represented as file systems and served through 9P2000, imposes to the system an higher overhead than the one analyzed here.

    The traditional Plan 9 solution, used in 9front and 9atom too, is to pragmatically keep in kernel those low level services/drivers that observably benefit from the performance boost, and move in userspace those who do not.

    In Jehanne I want to explore the possibility to move more services out of kernel.
    My reasoning is that in a distributed system, these overheads would be irrelevant over network latency.
    Indeed these issues seem a little bongus if you consider that people use GoogleSheet and friends in a browser.

    1. 4

      Good presentation. I’ll add that you can also do live updates. Another thing on the state side is a built-in database that just checkpoints it at a certain granularity. A clean copy can just restore from that. Both KeyKOS and EROS supported built-in persistence. That facilitates updates. Starting with that idea, one might do what the Micro-Restarts paper suggested periodically killing things off which each component or group of them having synced to that database. Then, any accumulated junk inside those partitions goes away if it didn’t reach the database. Mix that with clustering across devices for even higher reliability and maintainability.

      The QNX ecosystem could already implement most or all of that with a reasonable amount of work. The FOSS ecosystems weren’t there yet when I last looked closely at them.