modus
Menu

Commands of kerneltool

All the automation of the project is one program, kerneltool. Run a command with nix develop -c kerneltool <command>. 22 commands.

Read from tools/kerneltool/main.odin.

CommandWhat it does
buildthe modules, the boot image and the boot program, as build/boot/BOOTX64.EFI; one process for each module, as many at once as the processors, or build <processes>
modulemodule <name> with_checks|without_checks measure_run|usual_run: build one module of the table (the parallel build runs this command)
testbuild, start the machine under QEMU, act as the person, check the log, save pictures of the screen; test network, test main, test power, test tcp, test quic, test quic-real, test random, test extended_state: one part only
runbuild, then start the machine under QEMU, with the log of the kernel on this terminal; run without_checks: the measure build
screenshotstest, then copy the pictures to docs/screenshots and to a new folder of ../kernel-devlog
measurebuild, start the machine, run the measures of the locks of the kernel with no other program, and stop: the numbers are in build/test_output_measure.txt; measure scheduler N: the program scheduler N times; measure windows: each window that the interface package draws, alone, and a table of the time of its pictures; measure without_checks ...: the measure build, with no check in the kernel (no lock order check, no check of the frames)
filmbuild, start the machine, film the terminal, and write build/film/terminal.mp4 and a copy in ../kernel-devlog (needs ffmpeg)
fontconvert the BDF file of the font to support/graphics/font.odin
pointersconvert the pointer manifests of resources/pointers to pointer theme files in build/pointers, with the Xcursor folder of POINTER_THEME_SOURCE or of the path after the command; print a table of each theme
vector_fontssubset the vector font candidates of VECTOR_FONT_SOURCES to resources/fonts and draw build/fonts/candidates.png
logodraw the files of the mark of the system from support/mark: resources/logo and .project/image.png; check verifies them; and build/mark_animations.png, every frame of the animations of the mark
portraitconvert programs/temple/portrait.jpg to programs/temple/portrait.pixels
callcall "service.export(arguments)": call an export of a service of the machine that run started, through the program remote, and print the typed result
repeatrepeat <module> <count>: build one module again and again, with no machine, and count the distinct modules, LLVM IR files and objects; repeat all <count> [processes]: every module and the boot program, one row each
cryptography-takecryptography-take <file under the root of Odin> <file of the repository>: copy a file of core:crypto with the listed import changes, and print its line of the manifest
cryptography-system-hashesprint the line of support/cryptography/system_files.manifest for each .odin file of support/cryptography that is not taken from Odin
cryptography-origincheck that each file of support/cryptography/origin.manifest is its origin in Odin with the listed changes only
changelognew <type> <subject> "<text>" (or - and the text on the standard input) | check | assemble | release <release number> | notes <release number>: the fragments of changelog.d and the releases of CHANGELOG.md
newsnew <subject> | check: the news entries of news, dated reports in prose of what a person can now see or use, for the page of the news of the site
sitewrite the site of the system in build/site: the pages from the documents, the code, the news, the pictures and the logs of the last machine tests, an index and one small script for the search, and the feed of the news; no request to another server
release_numberprint the release number of the system: the newest release of CHANGELOG.md
checkodin check -vet and odin test of the host code, changelog check, news check, then test