Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/riscv/riscv-cheri
This repository contains the CHERI extension specification, adding hardware capabilities to RISC-V ISA to enable fine-grained memory protection and scalable compartmentalization.
https://github.com/riscv/riscv-cheri
capabilities compartmentalization memory-safety
Last synced: 1 day ago
JSON representation
This repository contains the CHERI extension specification, adding hardware capabilities to RISC-V ISA to enable fine-grained memory protection and scalable compartmentalization.
- Host: GitHub
- URL: https://github.com/riscv/riscv-cheri
- Owner: riscv
- License: cc-by-4.0
- Created: 2024-01-05T21:33:43.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-29T08:55:30.000Z (3 months ago)
- Last Synced: 2024-10-29T10:03:32.734Z (3 months ago)
- Topics: capabilities, compartmentalization, memory-safety
- Language: Python
- Homepage: https://jira.riscv.org/browse/RVG-148
- Size: 1.13 MB
- Stars: 50
- Watchers: 19
- Forks: 29
- Open Issues: 45
-
Metadata Files:
- Readme: readme.adoc
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
= RISC-V Specification for CHERI Extensions
This repository contains the CHERI extension specification, adding hardware capabilities to the RISC-V ISA to enable fine-grained memory protection and scalable compartmentalization.
The latest draft HTML version can be accessed at https://riscv.github.io/riscv-cheri and the latest PDF snapshot can be downloaded from https://github.com/riscv/riscv-cheri/releases.
== License
This work is licensed under a Creative Commons Attribution 4.0 International License (CC-BY-4.0). For details, see the link:LICENSE[LICENSE] file.
== Contributors
The list of contributors to this specification is maintained in the link:src/contributors.adoc[contributors] file.
For guidelines on how to contribute, refer to the link:CONTRIBUTING.md[CONTRIBUTING] file.
== Building the Document
=== Prerequisites
To build the document, you'll need the following tools installed on your system:
* Make
* asciiDoctor-pdf, asciidoctor-bibtex, asciidoctor-diagram, and asciidoctor-mathematical
* Docker
* Python3=== Cloning the Repository
```shell
git clone --recurse-submodules https://github.com/riscv/riscv-cheri.git
```=== Building the Documentation
To start the build process, run:
```shell
cd ./riscv-cheri && make all
```The link:Makefile[] script will check the availability of Docker on your system:
* If Docker is available, the documentation will be built inside a Docker container using the image riscvintl/riscv-docs-base-container-image:latest. This ensures a consistent build environment across different systems.
* If Docker is not available, the documentation will be built directly on your system using the installed tools.The documentation is generated from the AsciiDoctor source files in your project. The primary source file is specified by the `HEADER_SOURCE` variable in the Makefile.
The build process utilizes several options, including theming and font settings, and generates a PDF document as output.
=== Cleaning up
To clean up the generated files, run:
```shell
make clean
```This will remove the generated PDF file.
== Enabling pre-commit checks locally
The repository has some basic commit checks set up with https://pre-commit.com/[pre-commit] that will be enforced by the GitHub CI.
To ensure these checks are also run in the local repository while making changes the following command can be run:
[source,shell]
----
pip3 install pre-commit && pre-commit install
----When enabling additional checks https://pre-commit.com/#plugins[by editing .pre-commit-config.yaml], it is recommended to run to newly added check on all files in the repository. This can be done with the following command:
[source,shell]
----
pre-commit run --all-files
----