SPDX-License-Identifier | SPDX-FileCopyrightText |
---|---|
CC-BY-SA-4.0 |
2020 seL4 Project a Series of LF Projects, LLC. |
seL4 is available on 3 major hardware architectures, ARM, RISC-V and x86, for a number of platforms with varying hardware features.
seL4 is formally verified for specific configurations for a subset of these platforms. The depth of the proofs and which properties are verified depend on the platform.
The tables below provide more details.
The tables below list the platforms for which seL4 is available. For each platform, the tables list:
- whether specific features are supported (e.g. Virtualisation, IOMMU/SMMU, etc) and to which degree (where applicable);
- the verification status (see more below);
- who has contributed this platform port;
- who is maintaining this platform port.
The seL4 proofs only hold for specific configurations, as noted in the Verification Status column in the tables, as follows:
- Unverified: this platform is not verified at all and is not scheduled for verification.
- Ongoing: this feature is currently undergoing verification.
- FC: the functional correctness proofs are complete.
- Verified: all proofs for this platform are complete, including functional correctness, integrity and information flow.
More information can be found on the Verified Configurations page.
If the platform, architecture, feature that you are after is not listed on this page, you have several options, listed below. It is important to note however that, as explained in the guidelines linked below, contributing new ports or features will require compelling arguments, discussion with the technical community (including through Request-For-Comments), as well as testing requirements and maintenance/expertise commitment, to a degree depending on the nature of the contribution.
-
You can contact one of the seL4 Foundation Endorsed Services Providers to get commercial support or professional advice to develop such a port or feature (with the implications and expectations detailed in our guidelines for contributing kernel code);
-
You can check the roadmap for any planned contributions, from the seL4 Foundation or larger community, such on any new architecture ports, new large formal verifications, or large or fundamental new features;
-
You can contact the seL4 community through one of our communication channels to ask whether someone is developing such a port or feature already, or whether there is general interest in discussing such a new port or feature;
-
If you are in a position to develop the seL4 port or feature yourself, you should follow our guidelines for contributing kernel code, which details the implications and expectations.
Running seL4 in a simulator is a quick way to test it out and iteratively develop software. Note that feature support is then limited by the simulator. See Running It for how to run seL4 using Qemu.
You can also run seL4 on VMware.
seL4 has support for select ARMv7 and ARMv8 Platforms.
Platform | System-on-chip | Core | Arch | Virtualisation | SMMU | Verification Status | Contributed by | Maintained by |
---|---|---|---|---|---|---|---|---|
{%- assign sorted = site.pages | sort: 'platform' %} | |||||||
{% for page in sorted %} | ||||||||
{%- if page.arm_hardware and page.Maintained != "No" -%} | ||||||||
{{ page.platform }} | {{ page.soc}} | {{ page.cpu }} | {{ page.arch }} | {{ page.virtualization }} | {{ page.iommu}} | {{ page.Status }} | {{ page.Contrib }} | {{page.Maintained}} |
{% endif %} | ||||||||
{%- endfor %} |
We currently provide support for some of the RISC-V platforms. Support for the hypervisor extension is yet to be mainlined.
Platform | Simulation | System-on-chip | Core | Arch | Virtualisation | Verification Status | Contributed by | Maintained by |
---|---|---|---|---|---|---|---|---|
{% for page in sorted %} | ||||||||
{%- if page.riscv_hardware -%} | ||||||||
{{ page.platform }} | {% if page.simulation_target %}Yes{% else %}No{% endif %} | {{ page.soc }} | {{ page.cpu }} | {{ page.arch }} | {{ page.virtualization }} | {{ page.Status }} | {{ page.Contrib }} | {{ page.Maintained }} |
{% endif %} | ||||||||
{%- endfor %} |
We support PC99-style Intel Architecture Platforms.
Platform | Arch | Virtualisation | IOMMU | Verification Status | Contributed by | Maintained by |
---|---|---|---|---|---|---|
PC99 (32-bit) | x86 | VT-X | VT-D | Unverified | Data61 | seL4 Foundation |
PC99 (64-bit) | x64 | VT-X | VT-D | FC (without VT-X, VT-D and fastpath) | Data61 | seL4 Foundation |
Unmaintained platforms are platforms for which code has been contributed, but this code is not or no longer tested and is unlikely to work. We list these here, because bringing an unmaintained platform up may be faster and easier than starting from scratch on a new platform port.
| Platform | System-on-chip | Core | Arch | Virtualisation | SMMU | Verification Status | Contributed by | | - | - | - | - | - | - | - | - | - | {%- assign sorted = site.pages | sort: 'platform'%} {% for page in sorted %} {%- if page.arm_hardware and page.Maintained == "No" -%} | {{ page.platform }} (unmaintained) | {{ page.soc}} | {{ page.cpu }} | {{ page.arch }} | {{ page.virtualization }} | {{ page.iommu}} | {{ page.Status }} | {{ page.Contrib }} | {% endif %} {%- endfor %}