Skip to content

Metal is a research project on "bare metal" software engineering.

License

Notifications You must be signed in to change notification settings

pedrolamarao/metal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9e7f73a · Nov 25, 2023
Oct 17, 2023
Nov 25, 2023
Oct 5, 2023
Oct 17, 2023
Nov 25, 2023
Nov 25, 2023
Nov 25, 2023
Nov 25, 2023
Nov 25, 2023
Nov 25, 2023
Oct 8, 2023
Sep 9, 2021
Nov 25, 2023
Feb 27, 2020
Oct 17, 2023
May 3, 2016
Oct 8, 2023
Oct 5, 2023
Oct 4, 2023
Sep 16, 2023
Nov 25, 2023

Repository files navigation

project metal

ubuntu windows

summary

Welcome to project Metal!

Metal is a research project on "bare metal" software engineering.

For more information on this project’s mission, ambitions and aims, see GOAL.

prepare

Metal is built with an LLVM based toolset.

JDK 17 or newer is required in either environment JAVA_HOME or PATH.

The following tools are required in gradle property metal.path or environment PATH.

  • CMake 3

  • GNU grub 2

  • LLVM 16 or newer

  • Ninja

  • QEMU 6.0 up to 7.2

For more information, see TOOLS.

build

Metal is built by Gradle Metal.

To assemble everything for host: ./gradlew build This task shall compile and run modules and unit test programs.

To assemble everything for target i686-elf: ./gradlew build -Pmetal.target=i686-elf This task shall compile and run modules and QEMU emulated system test programs.

Currently, only targets host and i686-elf are supported. We expect to include target x86_64-elf very soon.

To clean everything: ./gradlew clean

verify

Metal is verified by automated tests.

For more information, see TEST.

The check task runs all verifications, and the test task runs test programs.

About

Metal is a research project on "bare metal" software engineering.

Topics

Resources

License

Stars

Watchers

Forks

Languages