
Hello, The CHERI Alliance has released a prototype of CHERI-seL4, an experimental version of the seL4 microkernel with CHERI support. This release includes CHERI-Microkit, a lightweight userspace framework, and a set of exercises and tutorials designed to help developers explore CHERI’s potential in a real microkernel environment. The release is aimed at developers who want to build and experiment with memory-safe C/C++ software on seL4. It supports the draft CHERI-RISC-V architecture and runs on QEMU, Codasip’s X730 processor, CHERI-Toooba, and CHERI-CVA6 on FPGA. For those who are unfamiliar with CHERI, CHERI support in seL4 enables memory-safe C/C++ user-level projects and applications without having to (re)write code in languages like Rust. This complement's seL4's strong isolation between different components, enforced by the MMU and seL4's software capabilities. We welcome any feedback. Learn more: https://cheri-alliance.org/cheri-sel4-and-cheri-microkit-released/ Regards, Hesham

Hi Hesham, 2 questions: do you run a modified seL4? is there any real world example of a Rust app running on top of you solution? Best, On Tuesday, July 29, 2025, Hesham Almatary via Devel <devel@sel4.systems> wrote:
Hello,
The CHERI Alliance has released a prototype of CHERI-seL4, an experimental version of the seL4 microkernel with CHERI support. This release includes CHERI-Microkit, a lightweight userspace framework, and a set of exercises and tutorials designed to help developers explore CHERI’s potential in a real microkernel environment.
The release is aimed at developers who want to build and experiment with memory-safe C/C++ software on seL4. It supports the draft CHERI-RISC-V architecture and runs on QEMU, Codasip’s X730 processor, CHERI-Toooba, and CHERI-CVA6 on FPGA.
For those who are unfamiliar with CHERI, CHERI support in seL4 enables memory-safe C/C++ user-level projects and applications without having to (re)write code in languages like Rust. This complement's seL4's strong isolation between different components, enforced by the MMU and seL4's software capabilities.
We welcome any feedback.
Learn more: https://cheri-alliance.org/cheri-sel4-and-cheri-microkit-released/
Regards, Hesham _______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems

Hello Hugo, On Tue, 29 Jul 2025 at 18:26, Hugo V.C. <skydivebcn@gmail.com> wrote:
Hi Hesham,
2 questions:
do you run a modified seL4?
Yes definitely, as mentioned in the blog post. The link to the fork [1] is in the blog post and we’ve submitted a PR [2] upstream for it (also in the blog post).
[1] https://github.com/CHERI-Alliance/CHERI-seL4 [2] https://github.com/seL4/seL4/pull/1469
is there any real world example of a Rust app running on top of you solution?
I’ve built and run Microkit’s Rust hello example on top without any issues. You can also reproduce that if you’d like. Happy to give further instructions if needed. Regards, Hesham
Best,
On Tuesday, July 29, 2025, Hesham Almatary via Devel <devel@sel4.systems> wrote:
Hello,
The CHERI Alliance has released a prototype of CHERI-seL4, an experimental version of the seL4 microkernel with CHERI support. This release includes CHERI-Microkit, a lightweight userspace framework, and a set of exercises and tutorials designed to help developers explore CHERI’s potential in a real microkernel environment.
The release is aimed at developers who want to build and experiment with memory-safe C/C++ software on seL4. It supports the draft CHERI-RISC-V architecture and runs on QEMU, Codasip’s X730 processor, CHERI-Toooba, and CHERI-CVA6 on FPGA.
For those who are unfamiliar with CHERI, CHERI support in seL4 enables memory-safe C/C++ user-level projects and applications without having to (re)write code in languages like Rust. This complement's seL4's strong isolation between different components, enforced by the MMU and seL4's software capabilities.
We welcome any feedback.
Learn more: https://cheri-alliance.org/cheri-sel4-and-cheri-microkit-released/
Regards, Hesham _______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems

I read the pull discussion here: https://github.com/seL4/seL4/pull/1469 you say: "This port has been tested with Microkit on Codasip's QEMU and hardware platforms (x730)" is Codasip's QEMU a custom QEMU to support x730? also, this question is for seL4 Foundation: are there plans to formal verify seL4 with this changes? I thing you guys have put together two different Worlds that open a powerful new field: software formally verfied (seL4) + hardware enforced "memory protection". I a real World where very few orgs have the (intellectual) capability of formally verify all the software they use (specifically C/C++), Cheri support on top of seL4 looks very interesting to "CHERI support in Microkit lets you run legacy C/C++ (non-CHERI), memory-safe C/C++ (using CHERI capabilities), and Rust programs in distinct protection domains". And as we already have LionsOS, so we get a third option (old CamkES. LionOS/Microkit, Cheri-seL4). It is not competition, it is evolution just following different valid paths. ANY of those paths is 1000 times better than current OSs/solutions. I love to have different options, all around seL4. I wish you guys collaborate to expand seL4 ecosystem. Best, On Tuesday, July 29, 2025, Hesham Almatary < heshamalmatary@capabilitieslimited.co.uk> wrote:
Hello Hugo, On Tue, 29 Jul 2025 at 18:26, Hugo V.C. <skydivebcn@gmail.com> wrote:
Hi Hesham,
2 questions:
do you run a modified seL4?
Yes definitely, as mentioned in the blog post. The link to the fork [1] is in the blog post and we’ve submitted a PR [2] upstream for it (also in the blog post). [1] https://github.com/CHERI-Alliance/CHERI-seL4 [2] https://github.com/seL4/seL4/pull/1469
is there any real world example of a Rust app running on top of you
solution?
I’ve built and run Microkit’s Rust hello example on top without any issues. You can also reproduce that if you’d like. Happy to give further instructions if needed. Regards, Hesham
Best,
On Tuesday, July 29, 2025, Hesham Almatary via Devel <devel@sel4.systems>
wrote:
Hello,
The CHERI Alliance has released a prototype of CHERI-seL4, an experimental version of the seL4 microkernel with CHERI support. This release includes CHERI-Microkit, a lightweight userspace framework, and a set of exercises and tutorials designed to help developers explore CHERI’s potential in a real microkernel environment.
The release is aimed at developers who want to build and experiment with memory-safe C/C++ software on seL4. It supports the draft CHERI-RISC-V architecture and runs on QEMU, Codasip’s X730 processor, CHERI-Toooba, and CHERI-CVA6 on FPGA.
For those who are unfamiliar with CHERI, CHERI support in seL4 enables memory-safe C/C++ user-level projects and applications without having to (re)write code in languages like Rust. This complement's seL4's strong isolation between different components, enforced by the MMU and seL4's software capabilities.
We welcome any feedback.
Learn more: https://cheri-alliance.org/cheri-sel4-and-cheri-microkit-released/
Regards, Hesham _______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems

Hi Hugo, On Wed, 30 Jul 2025 at 10:07, Hugo V.C. <skydivebcn@gmail.com> wrote:
I read the pull discussion here:
https://github.com/seL4/seL4/pull/1469
you say:
"This port has been tested with Microkit on Codasip's QEMU and hardware platforms (x730)"
is Codasip's QEMU a custom QEMU to support x730?
Yes, it's a QEMU fork that adds a machine (currently called hobgoblin, but will be Codasip Prime in the next release) with CHERI support that's almost exactly the same as X730 hardware; code that runs on it also runs out of the box on X730. You can find it here https://github.com/CHERI-Alliance/qemu/tree/codasip-cheri-riscv_v3
also, this question is for seL4 Foundation: are there plans to formal verify seL4 with this changes?
I thing you guys have put together two different Worlds that open a powerful new field: software formally verfied (seL4) + hardware enforced "memory protection". I a real World where very few orgs have the (intellectual) capability of formally verify all the software they use (specifically C/C++), Cheri support on top of seL4 looks very interesting to "CHERI support in Microkit lets you run legacy C/C++ (non-CHERI), memory-safe C/C++ (using CHERI capabilities), and Rust programs in distinct protection domains".
Exactly. Formal verification works great on a slowly moving delveoplement project such as the seL4 microkernel itself, but once you start building an actual dynamic OS on top of seL4 that'll need to keep rapidly changing and is an order of magnitude bigger in size, formally verifying this C/C++ codebase is really impractical and won't be scalable, let alone having the scarcity of experts to do so. So your options are to 1) (re)write everything in Rust (which also requires a relatively rare intellectual capability), or 2) use something like CHERI which is arguably just "good practice, clean C/C++ code" from an application developer perspective.
And as we already have LionsOS, so we get a third option (old CamkES. LionOS/Microkit, Cheri-seL4). It is not competition, it is evolution just following different valid paths. ANY of those paths is 1000 times better than current OSs/solutions. I love to have different options, all around seL4.
LionsOS/Microkit, CAmkES, or pretty much any C/C++ userspace framework (e.g., sel4test, sel4bench, Kry10 OS, etc) could be ported and run on CHERI-seL4 (the CHERI-enabled microkernel itself). We hope there will be opportunities in the future (especially once we have commercial CHERI processors people can buy) to formally verify the CHERI extensions in the kernel (e.g., the PR we submitted), and we're happy to collaborate on that.
I wish you guys collaborate to expand seL4 ecosystem.
Best,
On Tuesday, July 29, 2025, Hesham Almatary <heshamalmatary@capabilitieslimited.co.uk> wrote:
Hello Hugo, On Tue, 29 Jul 2025 at 18:26, Hugo V.C. <skydivebcn@gmail.com> wrote:
Hi Hesham,
2 questions:
do you run a modified seL4?
Yes definitely, as mentioned in the blog post. The link to the fork [1] is in the blog post and we’ve submitted a PR [2] upstream for it (also in the blog post). [1] https://github.com/CHERI-Alliance/CHERI-seL4 [2] https://github.com/seL4/seL4/pull/1469
is there any real world example of a Rust app running on top of you solution?
I’ve built and run Microkit’s Rust hello example on top without any issues. You can also reproduce that if you’d like. Happy to give further instructions if needed. Regards, Hesham
Best,
On Tuesday, July 29, 2025, Hesham Almatary via Devel <devel@sel4.systems> wrote:
Hello,
The CHERI Alliance has released a prototype of CHERI-seL4, an experimental version of the seL4 microkernel with CHERI support. This release includes CHERI-Microkit, a lightweight userspace framework, and a set of exercises and tutorials designed to help developers explore CHERI’s potential in a real microkernel environment.
The release is aimed at developers who want to build and experiment with memory-safe C/C++ software on seL4. It supports the draft CHERI-RISC-V architecture and runs on QEMU, Codasip’s X730 processor, CHERI-Toooba, and CHERI-CVA6 on FPGA.
For those who are unfamiliar with CHERI, CHERI support in seL4 enables memory-safe C/C++ user-level projects and applications without having to (re)write code in languages like Rust. This complement's seL4's strong isolation between different components, enforced by the MMU and seL4's software capabilities.
We welcome any feedback.
Learn more: https://cheri-alliance.org/cheri-sel4-and-cheri-microkit-released/
Regards, Hesham _______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems

On 30 Jul 2025, at 19:39, Hesham Almatary via Devel <devel@sel4.systems> wrote:
also, this question is for seL4 Foundation: are there plans to formal verify seL4 with this changes?
I thing you guys have put together two different Worlds that open a powerful new field: software formally verfied (seL4) + hardware enforced "memory protection". I a real World where very few orgs have the (intellectual) capability of formally verify all the software they use (specifically C/C++), Cheri support on top of seL4 looks very interesting to "CHERI support in Microkit lets you run legacy C/C++ (non-CHERI), memory-safe C/C++ (using CHERI capabilities), and Rust programs in distinct protection domains".
Exactly. Formal verification works great on a slowly moving delveoplement project such as the seL4 microkernel itself, but once you start building an actual dynamic OS on top of seL4 that'll need to keep rapidly changing and is an order of magnitude bigger in size, formally verifying this C/C++ codebase is really impractical and won't be scalable, let alone having the scarcity of experts to do so. So
That’s a somewhat courageous statement. For one, just because an OS is “dynamic” doesn't mean it’s “rapidly changing” – high assurance OSes certainly don’t, verification or not. Secondly, there’s a lot of work on making verification more of a repeatable engineering process, there’s at least a whole DARPA program committed to this. At UNSW, we’re working on exactly this (and it surely doesn’t mean re-writing everything in Rust). That doesn’t mean that intra-AS safety isn’t a good thing, but please don’t over-claim. Gernot Confidential communication - This email and any files transmitted with it are confidential and are intended solely for the addressee. If you are not the intended recipient, please be advised that you have received this email in error and that any use, dissemination, forwarding, printing, or copying of this email and any file attachments is strictly prohibited. If you have received this email in error, please notify me immediately by return email and destroy this email.

Hello Gernot, On Wed, 30 Jul 2025 at 12:57, Gernot Heiser via Devel <devel@sel4.systems> wrote:
On 30 Jul 2025, at 19:39, Hesham Almatary via Devel <devel@sel4.systems> wrote:
also, this question is for seL4 Foundation: are there plans to formal verify seL4 with this changes?
I thing you guys have put together two different Worlds that open a powerful new field: software formally verfied (seL4) + hardware enforced "memory protection". I a real World where very few orgs have the (intellectual) capability of formally verify all the software they use (specifically C/C++), Cheri support on top of seL4 looks very interesting to "CHERI support in Microkit lets you run legacy C/C++ (non-CHERI), memory-safe C/C++ (using CHERI capabilities), and Rust programs in distinct protection domains".
Exactly. Formal verification works great on a slowly moving delveoplement project such as the seL4 microkernel itself, but once you start building an actual dynamic OS on top of seL4 that'll need to keep rapidly changing and is an order of magnitude bigger in size, formally verifying this C/C++ codebase is really impractical and won't be scalable, let alone having the scarcity of experts to do so. So
That’s a somewhat courageous statement.
For one, just because an OS is “dynamic” doesn't mean it’s “rapidly changing” – high assurance OSes certainly don’t, verification or not.
Understood. By dynamic OS, I didn't necessarily mean high assurance, I mean something like L4Re, Linux or FreeBSD, with many commits, drivers, PRs, changes, features added everyday. Linux and FreeBSD can currently build and run memory-safe on CHERI platforms, and can in the future run on CHERI-seL4 as VMs with hypervisor enabled, when supported.
Secondly, there’s a lot of work on making verification more of a repeatable engineering process, there’s at least a whole DARPA program committed to this. At UNSW, we’re working on exactly this (and it surely doesn’t mean re-writing everything in Rust).
Really looking forward to the outcome of that. Hopefully it'll make the lengthy reviewing and verification process/checks smoother and accessible to system developers with no verification expertise.
That doesn’t mean that intra-AS safety isn’t a good thing, but please don’t over-claim.
It's intra-AS memory-safety to be specific that CHERI mainly offers to existing C/C++ projects (besides software compartmentalisation). As things stand, IMO, I don't think formal verification will be able to keep up with rapidly-changing OSes like Linux or FreeBSD, but I'd be happy to be proven wrong in the future when such tools/solutions exist. Regards, Hesham
Gernot
Confidential communication - This email and any files transmitted with it are confidential and are intended solely for the addressee. If you are not the intended recipient, please be advised that you have received this email in error and that any use, dissemination, forwarding, printing, or copying of this email and any file attachments is strictly prohibited. If you have received this email in error, please notify me immediately by return email and destroy this email.
_______________________________________________ Devel mailing list -- devel@sel4.systems To unsubscribe send an email to devel-leave@sel4.systems
participants (3)
-
Gernot Heiser
-
Hesham Almatary
-
Hugo V.C.