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.
| Command | What it does |
|---|---|
build | the 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> |
module | module <name> with_checks|without_checks measure_run|usual_run: build one module of the table (the parallel build runs this command) |
test | build, 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 |
run | build, then start the machine under QEMU, with the log of the kernel on this terminal; run without_checks: the measure build |
screenshots | test, then copy the pictures to docs/screenshots and to a new folder of ../kernel-devlog |
measure | build, 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) |
film | build, start the machine, film the terminal, and write build/film/terminal.mp4 and a copy in ../kernel-devlog (needs ffmpeg) |
font | convert the BDF file of the font to support/graphics/font.odin |
pointers | convert 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_fonts | subset the vector font candidates of VECTOR_FONT_SOURCES to resources/fonts and draw build/fonts/candidates.png |
logo | draw the files of the mark of the system from support/mark: resources/logo and .project/image.png; check verifies them |
portrait | convert programs/temple/portrait.jpg to programs/temple/portrait.pixels |
call | call "service.export(arguments)": call an export of a service of the machine that run started, through the program remote, and print the typed result |
repeat | repeat <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-take | cryptography-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-hashes | print the line of support/cryptography/system_files.manifest for each .odin file of support/cryptography that is not taken from Odin |
cryptography-origin | check that each file of support/cryptography/origin.manifest is its origin in Odin with the listed changes only |
changelog | new <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 |
news | new <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 |
site | write 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_number | print the release number of the system: the newest release of CHANGELOG.md |
check | odin check -vet and odin test of the host code, changelog check, news check, then test |
