This directory contains tools used in Theseus's build process or for testing purposes.
copy_latest_crate_objects
: a Rust program that selects the latest version of a compiled crate object file and copies it to the OS image for creating a GRUB image.demangle_readelf_file
: a Rust program that demangles the output ofreadelf
.limine_compress_modules
: a Rust program that takes all object files generated from a Theseus build and compresses them into a single archive.- This is needed when using the
limine
bootloader, which doesn't readily support booting an OS with hundreds of boot modules. - This may also offer performance improvements for GRUB when booting Theseus, but it is not enabled by default.
- This is needed when using the
serialize_nano_core
: A Rust program that creates a serialized representation of the symbols in thenano_core
binary from the output ofdemangle_readelf_file
.grub_cfg_generation
: a Rust program that autogenerates a multiboot2-compliant grub.cfg file for GRUB, specifying which multiboot2 modules should be included in the ISO.theseus_cargo
: a wrapper around cargo that supports out-of-tree builds for arbitrary crates that are cross-compiled against an existing build of Theseus. In the future, it will also perform special "partially-static" linking procedures.
diff_crates
: a Rust program that identifies the differences in crate object files across two different Theseus builds, for purposes of creating a live evolution manifest.receive_udp_messages
: a test tool for receiving messages over UDP. Not really used any more.sample_parser
: a tool for parsing the output of an execution trace of PMU samples.