Why did you write a new RTOS for CHERIoT?

(cheriot.org)

19 points | by todsacerdoti 4 hours ago ago

4 comments

  • NotBoolean an hour ago

    Always interesting to see new RTOSs. However, I’m not sure CHERIoT is, I read the about section I’m still not too sure. Can anyone give me a ELI5?

    • magicalhippo an hour ago

      CHERI is an instruction set extension[1], which is aimed at increasing security:

      The CHERI memory-protection features allow historically memory-unsafe programming languages such as C and C++ to be adapted to provide strong, compatible, and efficient protection against many currently widely exploited vulnerabilities.

      These features enable new software constructs that are incrementally deployable within existing software ecosystems.

      So while it's possible to add CHERI to existing projects, to get the full benefits they decided they needed to go all-in, hence CHERIoT.

      [1]: https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/

      • wahern 9 minutes ago

        And one of the unique things the CHERI-based architecture permits is a single, flat, shared address space:

        > CHERIoT was designed to provide both spatial and temporal safety, both enforced efficiently in the hardware. As such, we can rely on a shared heap, even in situations where you need to provide mutual distrust.

        This means you can pass pointers directly between processes. A pointer isn't just an address, it's a capability, similar to a file descriptor in that you cannot forge one, but can only acquire it from the kernel or another process.

        This means there's no need for virtual address space mappings, which could in theory provide some significant performance gains, similar to unikernels but without sacrificing hardware-enforced memory protections. Though, capability pointers have their own costs--in memory, in the need to garbage collect old pointers--so it remains to be seen what the net cost would be in a system fully optimized for these abilities.

    • steveklabnik an hour ago

      CHERI: https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/

      > CHERI extends conventional hardware Instruction-Set Architectures (ISAs) with new architectural features to enable fine-grained memory protection and highly scalable software compartmentalization. The CHERI memory-protection features allow historically memory-unsafe programming languages such as C and C++ to be adapted to provide strong, compatible, and efficient protection against many currently widely exploited vulnerabilities.

      CHERIoT is work towards bringing similar things to RISC-V for IoT use-cases.