-
Notifications
You must be signed in to change notification settings - Fork 3
Mirror of the Ironclad kernel (https://git.savannah.nongnu.org/cgit/ironclad.git)
Ironclad-Project/Ironclad
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ironclad is a partially formally verified real-time kernel, with a small footprint, for general-purpose and embedded OSes, written in SPARK and Ada. Some of the supported features are: - A familiar POSIX-compatible interface. - True simultaneous multitasking. - Resiliency and small footprint. - Partial gold-level formal verification. - Advanced cryptography and a security-centered architecture, including MAC. - Hard real-time scheduling and real-time oriented features. - Support for severals architectures and boards. For more information about the project, some autogenerated documentation, bug reporting, and development guides, check https://ironclad.nongnu.org -- Building and testing -- The tools needed are: - standard *nix tools including `find` and GNU make. - autoconf and automake when not using a tarball (for `./bootstrap`). - gprbuild for compilation, along with a compatible Ada compiler and assembler. - GNU Info for building the documentation. - highlight for syntax highlighting when building the HTML documentation. - gnatprove for formal verification, if desired. If checking out Git sources instead of building from a tarball, run `./bootstrap` first. For building the project's binaries, a standard configure-make-make install is enough, like the following: ./configure make make check # If desired, will need gnatprove and perl. make install (Replace `make` with `gmake` or similar if necessary, on systems where GNU make is not the default `make`). Several flags are provided in configure for customizing kernel settings, one can check them with ./configure --help. The above would build Ironclad for the architecture of the host system; so for example it would be built for x86_64 on an x86_64 host. In order to cross compile Ironclad for a different architecture, one can use the standard autoconf option `--host=` for `./configure`. For example: `./configure --host=riscv64-linux-gnu` would build Ironclad for RISC-V 64-bit, using the `riscv64-linux-gnu` toolchain. Additionally, the optional `PLATFORM=...` variable can be passed to `./configure` to tell the build system which platform/board to build Ironclad for. So far, the only supported value for `PLATFORM` is `limine`, which is the default. Documentation will be generated and installed with the main executable in the info format, additional formats can be built with `make html` or `make dvi`. -- Contributing -- Thanks for considering contributing to Ironclad, it means a lot. Please check <https://ironclad.nongnu.org/development.html> for information on how to get started, and how to submit patches to the project. ======================================================================== Copyright (C) 2023-2024 streaksu Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the "GNU Free Documentation License" file as part of this distribution.
About
Mirror of the Ironclad kernel (https://git.savannah.nongnu.org/cgit/ironclad.git)
Resources
Stars
Watchers
Forks
Packages 0
No packages published