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

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